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 + + * cp-tree.h (DECL_NEEDED_P): Tweak. + 2000-07-28 Jason Merrill * 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 + +struct basic_string +{ + ~basic_string(); +}; + +struct Side +{ + void name() + { + static basic_string sname; + } +}; + +int main () +{ +}