public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "dberlin at dberlin dot org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/30252] [4.2 regression] miscompilation of sigc++-2.0 based code with -fstrict-aliasing Date: Tue, 05 Jun 2007 22:44:00 -0000 [thread overview] Message-ID: <20070605224406.23157.qmail@sourceware.org> (raw) In-Reply-To: <bug-30252-7958@http.gcc.gnu.org/bugzilla/> ------- Comment #40 from dberlin at gcc dot gnu dot org 2007-06-05 22:44 ------- Subject: Re: [4.2 regression] miscompilation of sigc++-2.0 based code with -fstrict-aliasing On 5 Jun 2007 19:59:32 -0000, rguenther at suse dot de <gcc-bugzilla@gcc.gnu.org> wrote: > > > ------- Comment #39 from rguenther at suse dot de 2007-06-05 19:59 ------- > Subject: Re: [4.2 regression] miscompilation of sigc++-2.0 > based code with -fstrict-aliasing > > On Tue, 5 Jun 2007, dberlin at dberlin dot org wrote: > > > ------- Comment #38 from dberlin at gcc dot gnu dot org 2007-06-05 19:07 ------- > > Subject: Re: [4.2 regression] miscompilation of sigc++-2.0 based code with > > -fstrict-aliasing > > > > On 5 Jun 2007 18:24:54 -0000, matz at gcc dot gnu dot org > > <gcc-bugzilla@gcc.gnu.org> wrote: > > > > > > Now, regarding where to fix it properly: if you say that solution_set_add() > > > is not the right place (and I don't buy that yet, because something is wrong > > > with it no matter what, e.g. looking for subfields starting from the things > > > in the pt set, which themself might be subfields feels wrong) > > You keep thinking the solver knows anything about types or structures > > or fields or programming languages or fields. > > It doesn't. > > The only thing it knows is that constraint variable + 5 is some other > > constraint variable. > > But there are cases there is no constraint variable for p + 5. Like > the problem with the empty bases that we take the address of but don't > generate constraint variables for. Or consider > > int p[2]; > void *q = p; > int *p2; > q = q + 1; > q = q + 1; > q = q + 1; > q = q + 1; > p2 = q; > *p2 = 1; > > which is a valid way to store into p[1]. We obviously don't have > constraint variables for q + 1 -- we have one for &p[0] and one > for &p[1], but we cannot represent q + 1 exactly. q_2 = q_1 + 1 q_3 = q_2 + 1 q_4 = q_3 + 1 q_5 = q_4 + 1 p2 = q_5 Will become the set of constraints q_2 = q_1 q_2 = q_1 + 1 q_3 = q_2 q_3 = q_2 + 1 q_4 = q_3 q_4 = q_3 + 1 q_5 = q_4 q_5 = q_4 +1 Hmmm. You are right, we should give up here and collapse the variable. Sigh. Well, we can always just make it give up on all direct pointer arithmetic, rather than try to handle it at all :) > Somehow it > doesn't cause problems to "fall back" to &p[0] for &p[0] + 1B, > but it would be nice to have some more confidence in that parts :) TBQH, the only way i'll ever have confidence in these parts is if we make it stop trying to come up with everything a pointer to a structure could deref. Note that this also prevents us from doing cool things. In particular, because we say a pointer to struct p points to all it's members, we can never simply propagate the object it does point to if it points to a single object. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30252
next prev parent reply other threads:[~2007-06-05 22:44 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2006-12-18 15:56 [Bug tree-optimization/30252] New: [4.2/4.3 " belyshev at depni dot sinp dot msu dot ru 2006-12-18 15:57 ` [Bug tree-optimization/30252] " belyshev at depni dot sinp dot msu dot ru 2006-12-18 18:24 ` pinskia at gcc dot gnu dot org 2006-12-18 19:04 ` pinskia at gcc dot gnu dot org 2006-12-19 11:11 ` [Bug tree-optimization/30252] [4.2 " belyshev at depni dot sinp dot msu dot ru 2006-12-27 16:18 ` rguenth at gcc dot gnu dot org 2006-12-27 20:19 ` belyshev at depni dot sinp dot msu dot ru 2007-02-19 20:52 ` mmitchel at gcc dot gnu dot org 2007-04-29 7:02 ` pinskia at gcc dot gnu dot org 2007-04-29 8:58 ` belyshev at depni dot sinp dot msu dot ru 2007-04-30 2:25 ` bangerth at dealii dot org 2007-04-30 14:16 ` pluto at agmk dot net 2007-04-30 14:29 ` pluto at agmk dot net 2007-04-30 14:43 ` bangerth at dealii dot org 2007-05-01 1:11 ` giovannibajo at libero dot it 2007-05-01 1:39 ` bangerth at math dot tamu dot edu 2007-05-01 7:59 ` pluto at agmk dot net 2007-05-01 12:35 ` rguenth at gcc dot gnu dot org 2007-05-01 13:01 ` rguenth at gcc dot gnu dot org 2007-05-01 13:05 ` [Bug c++/30252] " rguenth at gcc dot gnu dot org 2007-05-02 20:59 ` mmitchel at gcc dot gnu dot org 2007-05-13 0:43 ` ismail at pardus dot org dot tr 2007-05-13 10:34 ` rguenth at gcc dot gnu dot org 2007-05-13 12:02 ` rguenth at gcc dot gnu dot org 2007-05-14 19:04 ` dberlin at gcc dot gnu dot org 2007-05-14 21:26 ` mmitchel at gcc dot gnu dot org 2007-05-15 7:59 ` rguenth at gcc dot gnu dot org 2007-06-04 15:28 ` rguenth at gcc dot gnu dot org 2007-06-04 15:45 ` rguenth at gcc dot gnu dot org 2007-06-05 9:27 ` rguenth at gcc dot gnu dot org 2007-06-05 12:05 ` rguenth at gcc dot gnu dot org 2007-06-05 15:01 ` rguenth at gcc dot gnu dot org 2007-06-05 15:57 ` rguenth at gcc dot gnu dot org 2007-06-05 16:20 ` dberlin at dberlin dot org 2007-06-05 16:30 ` rguenther at suse dot de 2007-06-05 17:45 ` dberlin at dberlin dot org 2007-06-05 18:25 ` matz at gcc dot gnu dot org 2007-06-05 19:07 ` dberlin at dberlin dot org 2007-06-05 19:59 ` rguenther at suse dot de 2007-06-05 22:44 ` dberlin at dberlin dot org [this message] 2007-06-06 8:50 ` rguenther at suse dot de 2007-06-06 15:52 ` dberlin at dberlin dot org 2007-06-19 9:24 ` rguenth at gcc dot gnu dot org 2007-06-19 9:46 ` rguenth at gcc dot gnu dot org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20070605224406.23157.qmail@sourceware.org \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).