]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR libgcj/31093 (Multicast PromiscuousTraffic)
authorGeoffrey Keating <geoffk@apple.com>
Thu, 14 Jun 2007 20:56:25 +0000 (20:56 +0000)
committerGeoffrey Keating <geoffk@gcc.gnu.org>
Thu, 14 Jun 2007 20:56:25 +0000 (20:56 +0000)
PR 31093
* decl2.c (determine_visibility): Remove duplicate code for
handling type info.

From-SVN: r125721

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

index f9ca0508ddc3404d816f9645a72169cc98ef7af7..39466304f24f6cbedd6ffb8936e24d57b277eebc 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 3e18c4a4c19ba3bf5a37f1a763610ef6bf6ec092..4d46410f6adf354132f838c5abdc15a3837423fb 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 fdd9582b85f3871fcbe67963a7059c768fe3e76c..4d7a16a625e22f3bc29721db76aff70bc1ffc21f 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);