]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR debug/44115 (gcc.dg/guality/sra-1.c failure)
authorRichard Guenther <rguenther@suse.de>
Fri, 10 Sep 2010 14:22:22 +0000 (14:22 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 10 Sep 2010 14:22:22 +0000 (14:22 +0000)
2010-09-10  Richard Guenther  <rguenther@suse.de>

PR debug/44115
* tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
* lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
Output DECL_DEBUG_EXPR.
* lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
Input DECL_DEBUG_EXPR.

From-SVN: r164179

gcc/ChangeLog
gcc/lto-streamer-in.c
gcc/lto-streamer-out.c
gcc/tree.c

index 3f9e53d1213d5772fbbfef866c2f01213114ed35..d187beb79b19d62bbda2073006641cb864ede39f 100644 (file)
@@ -1,3 +1,12 @@
+2010-09-10  Richard Guenther  <rguenther@suse.de>
+
+       PR debug/44115
+       * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
+       * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
+       Output DECL_DEBUG_EXPR.
+       * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
+       Input DECL_DEBUG_EXPR.
+
 2010-09-10  Richard Guenther  <rguenther@suse.de>
 
        * tree.c (type_hash_eq): For ARRAY_TYPEs also compare
index 870df2af1f7d289758e322c8a2a03f14de606ca8..60d299ca94314123cb05d3b781fb6ebee39062f3 100644 (file)
@@ -1932,6 +1932,13 @@ lto_input_ts_decl_common_tree_pointers (struct lto_input_block *ib,
        || TREE_CODE (expr) == PARM_DECL)
       && DECL_HAS_VALUE_EXPR_P (expr))
     SET_DECL_VALUE_EXPR (expr, lto_input_tree (ib, data_in));
+
+  if (TREE_CODE (expr) == VAR_DECL)
+    {
+      tree dexpr = lto_input_tree (ib, data_in);
+      if (dexpr)
+       SET_DECL_DEBUG_EXPR (expr, dexpr);
+    }
 }
 
 
index e4ad1c9c242261e639db6208dddad2dd221f94e2..90e3ccccb4603a1f4c4c214824ba30a1db358dac 100644 (file)
@@ -861,6 +861,9 @@ lto_output_ts_decl_common_tree_pointers (struct output_block *ob, tree expr,
        || TREE_CODE (expr) == PARM_DECL)
       && DECL_HAS_VALUE_EXPR_P (expr))
     lto_output_tree_or_ref (ob, DECL_VALUE_EXPR (expr), ref_p);
+
+  if (TREE_CODE (expr) == VAR_DECL)
+    lto_output_tree_or_ref (ob, DECL_DEBUG_EXPR (expr), ref_p);
 }
 
 
index bc2149109d6a6a70ee9add76d5980a9369b39e14..b0f733f0ccb998710a45d6ab7159569ce4e6b951 100644 (file)
@@ -4540,12 +4540,6 @@ free_lang_data_in_decl (tree decl)
     }
   else if (TREE_CODE (decl) == VAR_DECL)
     {
-      tree expr = DECL_DEBUG_EXPR (decl);
-      if (expr
-         && TREE_CODE (expr) == VAR_DECL
-         && !TREE_STATIC (expr) && !DECL_EXTERNAL (expr))
-       SET_DECL_DEBUG_EXPR (decl, NULL_TREE);
-
       if (DECL_EXTERNAL (decl)
          && (!TREE_STATIC (decl) || !TREE_READONLY (decl)))
        DECL_INITIAL (decl) = NULL_TREE;