------- Comment #4 from jakub at gcc dot gnu dot org 2007-09-05 14:03 ------- Given the backtrace I believe it is the same issue, particularly that __builtin___strcpy_chk call was folded into __builtin_strcpy, set_rhs copied over the annotations from the former to the latter CALL_EXPR, but cgraph_edge still contained a pointer to the old CALL_EXPR. When clearing up annotations, delete_tree_cfg_annotations would ggc_free the annotation from latter CALL_EXPR and later on during ggc_collect when marking the cgraph_edge's call_stmt GC crashed, because we were trying to mark something that has been already ggc_freed.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33107