------- Comment #2 from rguenth at gcc dot gnu dot org 2009-04-23 13:46 -------
We fold it to
return (int) MAX_EXPR <(unsigned int) exp, 2>;
which is obviously bogus. 4.3 produced
return NON_LVALUE_EXPR <MAX_EXPR <exp, 2>>;
which is correct (well, but has likely mismatched types if the 2 is still
unsigned).
Confirmed.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu dot
| |org
Status|UNCONFIRMED |NEW
Component|c |middle-end
Ever Confirmed|0 |1
Keywords| |wrong-code
Last reconfirmed|0000-00-00 00:00:00 |2009-04-23 13:46:39
date| |
Target Milestone|--- |4.4.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39867