------- Comment #4 from kazu at gcc dot gnu dot org 2006-05-08 18:55 ------- Reduced to a C testcase:
extern void bar (int c); int b; int foo (int c1, int c2, int c3) { int plus = c1 == c2; if ((plus || c1 == c3) && ! b) bar (plus); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27477