From c8e28f0bc980570ef2b0dc5dbf806e9c1bbe3a5d Mon Sep 17 00:00:00 2001 From: mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Wed, 2 Aug 2000 16:02:43 +0000 Subject: [PATCH] * cp-tree.h (DECL_NEEDED_P): Tweak. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35426 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/ChangeLog | 4 ++++ gcc/cp/cp-tree.h | 2 +- .../g++.old-deja/g++.other/static14.C | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.old-deja/g++.other/static14.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index bd8b58a8472f..12becdbcaf0e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2000-08-02 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (DECL_NEEDED_P): Tweak. + 2000-07-28 Jason Merrill <jason@redhat.com> * lang-specs.h: Use %i in rule for .ii files. diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 63c1e8ef2484..d949fcb70c64 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -1936,7 +1936,7 @@ struct lang_decl anything that isn't comdat, but we don't know for sure whether or not something is comdat until end-of-file. */ #define DECL_NEEDED_P(DECL) \ - ((at_eof && !DECL_COMDAT (DECL)) \ + ((at_eof && TREE_PUBLIC (DECL) && !DECL_COMDAT (DECL)) \ || (TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME ((DECL)))) \ || (flag_syntax_only && TREE_USED ((DECL)))) diff --git a/gcc/testsuite/g++.old-deja/g++.other/static14.C b/gcc/testsuite/g++.old-deja/g++.other/static14.C new file mode 100644 index 000000000000..6df4c4c5e103 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/static14.C @@ -0,0 +1,19 @@ +// Build don't run: +// Origin: scott snyder <snyder@fnal.gov> + +struct basic_string +{ + ~basic_string(); +}; + +struct Side +{ + void name() + { + static basic_string sname; + } +}; + +int main () +{ +} -- GitLab