diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index bd8b58a8472fb0c0ff50fb15fb13505d2eee9cac..12becdbcaf0e49aa75c707e479d119f208af15b3 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 63c1e8ef24848b0cf2c8dcefb371328901cb4605..d949fcb70c648bd281dbf72045f7c50f1f4ab28a 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 0000000000000000000000000000000000000000..6df4c4c5e103117a1a3882ec8bc38509915d2e7d --- /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 () +{ +}