http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53681
--- Comment #5 from Andreas Krebbel <krebbel at gcc dot gnu.org> 2012-06-18 07:09:04 UTC --- (In reply to comment #4) > I don't see how r187965 could cause this, but I do see the problem. > mark_sym_for_renaming (called via the s390 va_arg_expr expander) is called > during, well, gimplification from GENERIC. At that point SSA isn't > initialized yet, so cfun->gimple_df is still NULL, and so SYMS_TO_RENAME > gives a segfault. > > You either have to guard the call to mark_sym_for_renaming with > gimple_in_ssa_p(), or get rid of the call alltogether. I don't see how > new va_arg expressions would be generated during SSA optimizers, so the latter > solution would be safe. No other backend calls mark_sym_for_renaming either, > so just remove it. ?! You appear to have added the call to mark_sym_for_renaming with your patch. Since it isn't mentioned in the changelog perhaps it is a leftover from something else in your tree? So the solution is to revert that change? svn diff -r 187964:187965 gcc/config/s390/s390.c Index: gcc/config/s390/s390.c =================================================================== --- gcc/config/s390/s390.c (revision 187964) +++ gcc/config/s390/s390.c (revision 187965) @@ -9044,6 +9044,7 @@ lab_false = create_artificial_label (UNKNOWN_LOCATION); lab_over = create_artificial_label (UNKNOWN_LOCATION); addr = create_tmp_var (ptr_type_node, "addr"); + mark_sym_for_renaming (addr); t = fold_convert (TREE_TYPE (reg), size_int (max_reg)); t = build2 (GT_EXPR, boolean_type_node, reg, t);