------- Comment #45 from danglin at gcc dot gnu dot org 2009-03-22 18:34 ------- The testsuite fails disappear if I add --disable-libstdcxx-pch to the configure command. The ICE can be suppressed with
Index: dwarf2out.c =================================================================== --- dwarf2out.c (revision 144988) +++ dwarf2out.c (working copy) @@ -10431,8 +10431,12 @@ case PARM_DECL: if (DECL_HAS_VALUE_EXPR_P (loc)) - return loc_descriptor_from_tree_1 (DECL_VALUE_EXPR (loc), - want_address); + { + tree loc1 = DECL_VALUE_EXPR (loc); + + if (loc1 != NULL_TREE) + return loc_descriptor_from_tree_1 (loc1, want_address); + } /* FALLTHRU */ case RESULT_DECL: However, it is probably better to determine why the value expression isn't found. I looked at the PCH mapping. The file appears to be correctly mapped at the specified location and offset by the kernel. There is some variation in the mapping location for stdc++.h.gch from build to build. However, I still don't know why slight changes to expr.o affect the search for the value expression. -- danglin at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[4.4 Regression] Revision |[4.4 Regression] Revision |144529 miscompiled |144529: ICE due to missing |libcpp/expr.c |or incorrectly relocated | |DECL_VALUE_EXPR in PCH | |header for PARM_DECL http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39355