aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-05-22 00:40:55 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-05-22 00:40:55 -0400
commit5b018c651a9ba855b19e60ad354c21400cc343a2 (patch)
treee22fe7615ee1389c780a25cb850770d52956f4b2
parentb42bf620b07490e672d5930fd68378adec3f1a8b (diff)
downloadgcc-5b018c651a9ba855b19e60ad354c21400cc343a2.zip
gcc-5b018c651a9ba855b19e60ad354c21400cc343a2.tar.gz
gcc-5b018c651a9ba855b19e60ad354c21400cc343a2.tar.bz2
re PR c++/49092 (ice in tree_add_const_value_attribute)
PR c++/49092 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for static storage duration. From-SVN: r174024
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dwarf2out.c4
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/debug/const5.C13
4 files changed, 26 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 80233d7..789f258 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-05-21 Jason Merrill <jason@redhat.com>
+
+ PR c++/49092
+ * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
+ static storage duration.
+
2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index b85a55e..55453a3 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -17719,7 +17719,9 @@ tree_add_const_value_attribute_for_decl (dw_die_ref var_die, tree decl)
if (!decl
|| (TREE_CODE (decl) != VAR_DECL
- && TREE_CODE (decl) != CONST_DECL))
+ && TREE_CODE (decl) != CONST_DECL)
+ || (TREE_CODE (decl) == VAR_DECL
+ && !TREE_STATIC (decl)))
return false;
if (TREE_READONLY (decl)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 61afdb0..ccc34a7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2011-05-21 Jason Merrill <jason@redhat.com>
+
+ * g++.dg/debug/const5.C: New.
+
2011-05-20 Jason Merrill <jason@redhat.com>
* g++.dg/cpp0x/constexpr-static7.C: Extend.
diff --git a/gcc/testsuite/g++.dg/debug/const5.C b/gcc/testsuite/g++.dg/debug/const5.C
new file mode 100644
index 0000000..e5387ea
--- /dev/null
+++ b/gcc/testsuite/g++.dg/debug/const5.C
@@ -0,0 +1,13 @@
+// PR c++/49092
+
+struct A
+{
+ A();
+};
+
+int i;
+
+A::A()
+{
+ const int j = i;
+}