diff options
author | Tom Tromey <tromey@gcc.gnu.org> | 2007-11-08 19:50:38 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2007-11-08 19:50:38 +0000 |
commit | c02cdc25dc7f5970b33cbe38f2c15ebb7e0fa58c (patch) | |
tree | 0a5e16baa84a07f3b09f1b244bbf33b39991400f /gcc | |
parent | 061c5ee4279886cc47d67c75503b736ec45a4234 (diff) | |
download | gcc-c02cdc25dc7f5970b33cbe38f2c15ebb7e0fa58c.zip gcc-c02cdc25dc7f5970b33cbe38f2c15ebb7e0fa58c.tar.gz gcc-c02cdc25dc7f5970b33cbe38f2c15ebb7e0fa58c.tar.bz2 |
re PR c++/30297 (ICE with extern "C" and inheritance)
gcc/cp
2007-11-08 Andrew Pinski <pinskia@gmail.com>
PR c++/30297:
* tree.c (decl_linkage): Fields have no linkage.
gcc/testsuite
PR c++/30297:
* g++.dg/inherit/pr30297.C: New file.
From-SVN: r130018
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/tree.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/inherit/pr30297.C | 11 |
4 files changed, 25 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e28f582..3a99fba 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2007-11-08 Andrew Pinski <pinskia@gmail.com> + + PR c++/30297: + * tree.c (decl_linkage): Fields have no linkage. + 2007-11-08 Daniel Jacobowitz <dan@codesourcery.com> * class.c (build_ctor_vtbl_group): Lay out the new type and decl. diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index c2b4af0..2a7cd3a 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -2493,6 +2493,10 @@ decl_linkage (tree decl) if (!DECL_NAME (decl)) return lk_none; + /* Fields have no linkage. */ + if (TREE_CODE (decl) == FIELD_DECL) + return lk_none; + /* Things that are TREE_PUBLIC have external linkage. */ if (TREE_PUBLIC (decl)) return lk_external; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e04e5e1..ede1c09 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-11-08 Tom Tromey <tromey@redhat.com> + + PR c++/30297: + * g++.dg/inherit/pr30297.C: New file. + 2007-11-08 Danny Smith <dannysmith@users.sourceforge.net> * gcc.dg/compat/struct-layout-1_generate.c (dg-options) Add diff --git a/gcc/testsuite/g++.dg/inherit/pr30297.C b/gcc/testsuite/g++.dg/inherit/pr30297.C new file mode 100644 index 0000000..222d9ab --- /dev/null +++ b/gcc/testsuite/g++.dg/inherit/pr30297.C @@ -0,0 +1,11 @@ +// Regression test for ICE from PR c++/30297. + +struct A +{ + int i; +}; + +extern "C" struct B : A +{ + A::i; +}; |