------- Comment #2 from pinskia at gcc dot gnu dot org 2008-09-28 18:37 ------- Reduced testcase: static int func_18 (void) { return 1; } int func_37 (int p_38) { return (func_18 () >= 1 ^ (div_rhs (1) || 0) || 0); }
--- CUT --- Before VRP we have: D.1584_5 = 1 ^ D.1583_4; which is wrong, it should have been D.1583_4 ^ 1; I don't know why ccp did not create D.1581_4 ^ 1 but it created 1 ^ D.1581_4; -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pinskia at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Component|c |tree-optimization Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2008-09-28 18:37:03 date| | Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37662