re PR c++/29365 (Unnecessary anonymous namespace warnings)

gcc/ChangeLog:

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.

gcc/testsuite/ChangeLog:

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

From-SVN: r123879
This commit is contained in:
Seongbae Park 2007-04-16 16:49:02 +00:00 committed by Seongbae Park
parent de41203b65
commit 8fff206014
5 changed files with 51 additions and 4 deletions

View File

@ -1,3 +1,10 @@
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,

View File

@ -1860,9 +1860,13 @@ constrain_class_visibility (tree type)
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)
@ -1877,9 +1881,13 @@ constrain_class_visibility (tree type)
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, "\

View File

@ -1,3 +1,11 @@
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

View File

@ -0,0 +1,17 @@
// 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" }

View File

@ -0,0 +1,7 @@
class foo {
class bar;
};
namespace {
class bad { };
}