------- Comment #2 from rguenth at gcc dot gnu dot org  2007-03-16 21:45 -------
  # cnt_67 = PHI <27(13)>
<L22>:;
  D.1796_118 = &time_14(D)->mon[27];
  ivtmp.56_8 = (unsigned int) D.1796_118;
  D.1797_117 = &iov[27];
  ivtmp.59_7 = (unsigned int) D.1797_117;

  # ivtmp.59_76 = PHI <ivtmp.59_112(17), ivtmp.59_7(14)>
  # ivtmp.56_62 = PHI <ivtmp.56_61(17), ivtmp.56_8(14)>
  # cnt_105 = PHI <cnt_60(17), 27(14)>
<L18>:;
  D.1671_51 = MEM[index: ivtmp.56_62, offset: 0x0ffffff98];
  if (D.1671_51 != 0B) goto <L19>; else goto <L21>;

The proper way to warn about &time_14(D)->mon[27] (even if it's invalid C
and arguably invalid IL) is to look at the possible dereference sites.

Of course a MEM without base but using (unsigned int)&time_14(D)->mon[27]
as index and a negative offset doesn't make this easy.

This looks related to PR26726.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rakdver at gcc dot gnu dot
                   |                            |org
  BugsThisDependsOn|                            |26726
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2007-03-16 21:45:23
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31227

Reply via email to