+2007-04-16 Seongbae Park <seongbae.park@gmail.com>
+
+ PR c++/29365
+
+ * cp/decl2.c (constrain_class_visibility):
+ Do not warn about the use of anonymous namespace in the main input file.
+
2007-04-16 Kazu Hirata <kazu@codesourcery.com>
* config/m68k/m68k.c (m68k_libcall_value,
int subvis = type_visibility (ftype);
if (subvis == VISIBILITY_ANON)
- warning (0, "\
+ {
+ if (strcmp (main_input_filename,
+ DECL_SOURCE_FILE (TYPE_MAIN_DECL (ftype))))
+ warning (0, "\
%qT has a field %qD whose type uses the anonymous namespace",
- type, t);
+ type, t);
+ }
else if (IS_AGGR_TYPE (ftype)
&& vis < VISIBILITY_HIDDEN
&& subvis >= VISIBILITY_HIDDEN)
int subvis = type_visibility (TREE_TYPE (t));
if (subvis == VISIBILITY_ANON)
- warning (0, "\
+ {
+ if (strcmp (main_input_filename,
+ DECL_SOURCE_FILE (TYPE_MAIN_DECL (TREE_TYPE (t)))))
+ warning (0, "\
%qT has a base %qT whose type uses the anonymous namespace",
- type, TREE_TYPE (t));
+ type, TREE_TYPE (t));
+ }
else if (vis < VISIBILITY_HIDDEN
&& subvis >= VISIBILITY_HIDDEN)
warning (OPT_Wattributes, "\
+2007-04-16 Seongbae Park <seongbae.park@gmail.com>
+
+ PR c++/29365
+ Testcase for c++ anonymous namespace warning
+
+ * g++.dg/warn/anonymous-namespace-1.C: New test
+ * g++.dg/warn/anonymous-namespace-1.h: New test
+
2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR testsuite/31578
--- /dev/null
+// Test for the warning of exposing types from an anonymous namespace
+// { dg-do compile }
+
+#include "anonymous-namespace-1.h"
+
+namespace {
+ class good { };
+}
+
+class foo::bar : public good { };
+class foobar1
+{
+ good g;
+};
+
+class foobar : public bad { }; // { dg-warning "uses the anonymous namespace" }
+class foobar2 { bad b; }; // { dg-warning "uses the anonymous namespace" }