aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2005-02-24 02:42:17 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2005-02-24 02:42:17 +0000
commit1ceb02beedb77918557c665668eb966e4c21d9a2 (patch)
tree317757a9e5468e8a42e3c2ca066d1a681b186f9a /gcc
parent03ce14dbc0ca6b32e83d4167449a3cbce4305480 (diff)
downloadgcc-1ceb02beedb77918557c665668eb966e4c21d9a2.zip
gcc-1ceb02beedb77918557c665668eb966e4c21d9a2.tar.gz
gcc-1ceb02beedb77918557c665668eb966e4c21d9a2.tar.bz2
re PR c++/19878 (ICE in import_export_decl)
PR c++/19878 * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations with internal linkage. PR c++/19878 * g++.dg/init/const2.C: New test. From-SVN: r95490
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/decl.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/init/const2.C7
4 files changed, 20 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index c8b3112..0905273 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2005-02-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/19878
+ * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
+ with internal linkage.
+
2005-02-23 Alexandre Oliva <aoliva@redhat.com>
* decl.c (grokvardecl): Don't exempt anonymous types from having
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index bf0fb20..cea13b8 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -5950,6 +5950,8 @@ grokvardecl (tree type,
warning ("non-local variable %q#D uses local type %qT", decl, t);
}
}
+ else
+ DECL_INTERFACE_KNOWN (decl) = 1;
return decl;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ed9f719..6f590f3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-02-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/19878
+ * g++.dg/init/const2.C: New test.
+
2005-02-23 Hans-Peter Nilsson <hp@axis.com>
PR tree-optimization/20100
diff --git a/gcc/testsuite/g++.dg/init/const2.C b/gcc/testsuite/g++.dg/init/const2.C
new file mode 100644
index 0000000..4fd6318
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/const2.C
@@ -0,0 +1,7 @@
+// PR c++/19878
+
+struct S {
+ char k;
+};
+char const volatile S::* const p01 = &S::k;
+