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