http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57806
Bug ID: 57806 Summary: Waste work in propagate_nothrow() Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: pchang9 at cs dot wisc.edu CC: nistor1 at illinois dot edu The problem appears in revision 200588 in version 4.9. In method "propagate_nothrow()" in gcc/ipa-pure-const.c, the loop on line 1432 should break immediately after "can_throw" is set to "true". All the iterations after "can_throw" set to "true" do not perform any useful work, at best they just set "can_throw" again to "true".