mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 23:45:12 +08:00
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:
parent
de41203b65
commit
8fff206014
@ -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,
|
||||
|
@ -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, "\
|
||||
|
@ -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
|
||||
|
17
gcc/testsuite/g++.dg/warn/anonymous-namespace-1.C
Normal file
17
gcc/testsuite/g++.dg/warn/anonymous-namespace-1.C
Normal 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" }
|
7
gcc/testsuite/g++.dg/warn/anonymous-namespace-1.h
Normal file
7
gcc/testsuite/g++.dg/warn/anonymous-namespace-1.h
Normal file
@ -0,0 +1,7 @@
|
||||
class foo {
|
||||
class bar;
|
||||
};
|
||||
|
||||
namespace {
|
||||
class bad { };
|
||||
}
|
Loading…
Reference in New Issue
Block a user