------- 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

Reply via email to