From: tromey Date: Thu, 8 Nov 2007 19:50:38 +0000 (+0000) Subject: gcc/cp X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c1f3293ad7ca579517509f282faea82bf7eddec5;p=thirdparty%2Fgcc.git gcc/cp 2007-11-08 Andrew Pinski PR c++/30297: * tree.c (decl_linkage): Fields have no linkage. gcc/testsuite PR c++/30297: * g++.dg/inherit/pr30297.C: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130018 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e28f5822d4b1..3a99fbaadacc 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2007-11-08 Andrew Pinski + + PR c++/30297: + * tree.c (decl_linkage): Fields have no linkage. + 2007-11-08 Daniel Jacobowitz * 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 c2b4af04086b..2a7cd3af747d 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 e04e5e1ae046..ede1c09b2135 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-11-08 Tom Tromey + + PR c++/30297: + * g++.dg/inherit/pr30297.C: New file. + 2007-11-08 Danny Smith * 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 000000000000..222d9ab8059e --- /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; +};