Commit 8fff2060 by Seongbae Park Committed by Seongbae Park

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
parent de41203b
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,
......
......@@ -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, "\
......
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
// 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" }
class foo {
class bar;
};
namespace {
class bad { };
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment