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

Reply via email to