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

--- Comment #3 from davidxl <xinliangli at gmail dot com> 2011-08-25 00:13:00 
UTC ---
Caused by differences in FE generated code:

46:


        D.6887 = (int) D.6886;
        D.6888 = custom_constant_add<signed char>::do_shift (D.6887);
        D.6889 = (unsigned char) D.6888;
        result.8 = (unsigned char) result;
        D.6891 = D.6889 + result.8;
        result = (signed char) D.6891;
        n = n + 1;


trunk:


        D.6938 = (int) D.6937;
        D.6874 = custom_constant_add<signed char>::do_shift (D.6938);
        D.6939 = (int) result;               <-- promoted to int
        D.6940 = (int) D.6874;               <---promoted to int
        D.6941 = D.6939 + D.6940;
        result = (signed char) D.6941;
        n = n + 1;

Reply via email to