------- Comment #2 from pinskia at gcc dot gnu dot org 2007-01-04 10:23 ------- (In reply to comment #1) > Is it really a middle-end issue? Yes because fold is part of the middle-end that is most likely causing this being translated into "a + b - 40".
And this is the reason why the way wrote it the second way works is because fold does not see the full expression so it does not do the folding. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30364