[Bug debug/39355] [4.4 Regression] Revision 144529 miscompiled libcpp/expr.c

dave at hiauly1 dot hia dot nrc dot ca gcc-bugzilla@gcc.gnu.org
Fri Mar 20 01:30:00 GMT 2009



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



More information about the Gcc-bugs mailing list