[Bug tree-optimization/17724] [4.0 Regression] wrong dominator (eh/fold all builtins) related

jakub at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Oct 1 12:41:00 GMT 2004


------- Additional Comments From jakub at gcc dot gnu dot org  2004-10-01 12:41 -------
Well, the testcase as is certainly doesn't fail with current CVS plus
http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02990.html.
When the first line is one of:
extern char *strcpy (char* d, const char* s) throw ();
extern "C" char *strcpy (char* d, const char* s) throw ();
extern "C" char *strcpy (char* d, const char* s);

it works just fine (though probably all 4 variants should be added to the
testsuite).
But when the testcase starts with:

extern char *strcpy (char* d, const char* s);

it ICEs.  The problem is different though, particularly that
delete_unreachable_blocks nor delete_basic_block called from it updates
dominators info.

IMHO either tree-cfg.c's remove_bb needs to
recount_dominator/set_immediate_dominator if changed for all preds and succs bb's
or cleanup_tree_cfg needs to set some flag when delete_unreachable_blocks returns
true and after the loop call free_dominance_info if that flag is set.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dnovillo at redhat dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17724



More information about the Gcc-bugs mailing list