On Tue, 9 Oct 2012, Richard Biener wrote: > > This should fix PR54837, LTO is not yet prepared for > debug source stmts. The following moves checking code that > triggers to a place where it hopefully does not trigger. > > LTO bootstrap is broken in other ways though :( > > Will commit after non-LTO bootstrap finished to make progress.
As Jakub says the checking doesn't add much so I am installing the following instead, as obvious. Richard. 2012-10-09 Richard Guenther <rguent...@suse.de> PR middle-end/54837 * cfgexpand.c (expand_debug_source_expr): Move checking code conditional on a found decl_debug_args vector. Index: gcc/cfgexpand.c =================================================================== --- gcc/cfgexpand.c (revision 192253) +++ gcc/cfgexpand.c (working copy) @@ -3521,22 +3521,13 @@ expand_debug_source_expr (tree exp) && !DECL_INCOMING_RTL (exp) && DECL_ABSTRACT_ORIGIN (current_function_decl)) { - tree aexp = exp; - if (DECL_ABSTRACT_ORIGIN (exp)) - aexp = DECL_ABSTRACT_ORIGIN (exp); + tree aexp = DECL_ORIGIN (exp); if (DECL_CONTEXT (aexp) == DECL_ABSTRACT_ORIGIN (current_function_decl)) { VEC(tree, gc) **debug_args; unsigned int ix; tree ddecl; -#ifdef ENABLE_CHECKING - tree parm; - for (parm = DECL_ARGUMENTS (current_function_decl); - parm; parm = DECL_CHAIN (parm)) - gcc_assert (parm != exp - && DECL_ABSTRACT_ORIGIN (parm) != aexp); -#endif debug_args = decl_debug_args_lookup (current_function_decl); if (debug_args != NULL) {