------- Comment #1 from rguenth at gcc dot gnu dot org 2008-06-13 08:14 ------- Confirmed. We do not create a EH region in the first place even though fprintf and fputs could throw. When CCP folds fputs to fputc it hits the propagator assert
if (tree_could_throw_p (new_stmt)) { eh_region = lookup_stmt_eh_region (stmt); /* We couldn't possibly turn a nothrow into a throw statement. */ gcc_assert (eh_region >= 0); where /* We couldn't possibly turn a nothrow into a throw statement. */ is obviously only true if we'd have created a EH region in the first place. So either that we didn't is a bug or the assert should be gcc_assert (eh_region >= 0 || tree_could_throw_p (stmt)); -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|c++ |tree-optimization Ever Confirmed|0 |1 Keywords| |ice-on-valid-code Known to work| |4.3.1 Last reconfirmed|0000-00-00 00:00:00 |2008-06-13 08:14:17 date| | Summary|ice for legal code with -O2 |[4.4 Regression] ice for | |legal code with -O2 Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36511