------- 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