OSDN Git Service

PR 31093
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 14 Jun 2007 20:56:25 +0000 (20:56 +0000)
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 14 Jun 2007 20:56:25 +0000 (20:56 +0000)
* decl2.c (determine_visibility): Remove duplicate code for
handling type info.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125721 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/decl2.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/visibility/anon4.C [new file with mode: 0644]

index f9ca050..3946630 100644 (file)
@@ -1,3 +1,9 @@
+2007-06-14  Geoff Keating  <geoffk@apple.com>
+
+       PR 31093
+       * decl2.c (determine_visibility): Remove duplicate code for
+       handling type info.
+
 2007-06-12  Ian Lance Taylor  <iant@google.com>
 
        PR libstdc++/29286
index 3e18c4a..4d46410 100644 (file)
@@ -1698,10 +1698,6 @@ determine_visibility (tree decl)
      class can influence the visibility of the DECL.  */
   if (DECL_CLASS_SCOPE_P (decl))
     class_type = DECL_CONTEXT (decl);
-  else if (TREE_CODE (decl) == VAR_DECL
-          && DECL_TINFO_P (decl)
-          && CLASS_TYPE_P (TREE_TYPE (DECL_NAME (decl))))
-    class_type = TREE_TYPE (DECL_NAME (decl));
   else
     {
       /* Not a class member.  */
index fdd9582..4d7a16a 100644 (file)
@@ -1,3 +1,8 @@
+2007-06-14  Geoff Keating  <geoffk@apple.com>
+
+       PR 31093
+       * g++.dg/ext/visibility/anon4.C: New.
+
 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/32268
diff --git a/gcc/testsuite/g++.dg/ext/visibility/anon4.C b/gcc/testsuite/g++.dg/ext/visibility/anon4.C
new file mode 100644 (file)
index 0000000..6d5d58e
--- /dev/null
@@ -0,0 +1,16 @@
+// PR c++/31903
+// Test for anonymous namespace internal linkage, for typeinfo
+
+// { dg-do compile }
+// { dg-final { scan-assembler-not "globl.*_ZTIN*3fooE" } }
+
+#include <typeinfo>
+namespace 
+{
+  class foo 
+  {
+    virtual void bar();
+  };
+}
+
+const std::type_info &X = typeid(foo);