------- Comment #1 from pinskia at gcc dot gnu dot org  2006-05-13 21:38 -------
-  D.30091 = __dynamic_cast (a.85, &_ZTI1A, &_ZTI1B, 0);
-  if (D.30091 != 0B) goto <L3>; else goto <L4>;
+  D.30521 = __dynamic_cast (a.82, &_ZTI1A, &_ZTI1B, 0);
+  D.30522 = (bool) D.30521;

- is 4.1 and + is 4.2.
That is interesting.

I am thinking D.30521 is at this point a&0xFF == 0 so we get the bug.
D.30521 is a void* here.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |wrong-code
   Last reconfirmed|0000-00-00 00:00:00         |2006-05-13 21:38:34
               date|                            |
            Summary|dynamic cast failure        |[4.2 Regression] dynamic
                   |                            |cast failure
   Target Milestone|---                         |4.2.0


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

Reply via email to