------- Comment #29 from dave at hiauly1 dot hia dot nrc dot ca 2009-03-20 01:30 ------- Subject: Re: [4.4 Regression] Revision 144529 miscompiled libcpp/expr.c
> I'd say first try to add noinline attribute on all callers of num_positive, if > it fails even with those, add also __attribute__((__optimize__(0))) to them > one > by one. If the noinline attribute to those makes the miscompilation go away, > search one by one which one it is and retry with all callers of that function. With todays, head, it seems the miscompilation is related to the inlining of check_promotion. Adding noinline attribute makes the ICE go away. Adding __attribute__((__optimize__(0))) or __attribute__((__optimize__(1))) also makes the ICE go away. Removing either half of the "if (op->value.unsignedp)" also makes the ICE go away. However, I haven't been able to spot the actual miscompilation yet. Dave -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39355