diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/tc1/dr101.C')
-rw-r--r-- | gcc/testsuite/g++.dg/tc1/dr101.C | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/tc1/dr101.C b/gcc/testsuite/g++.dg/tc1/dr101.C new file mode 100644 index 000000000..0316aaaa7 --- /dev/null +++ b/gcc/testsuite/g++.dg/tc1/dr101.C @@ -0,0 +1,30 @@ +// { dg-do compile } +// Origin: Giovanni Bajo <giovannibajo at gcc dot gnu dot org> +// DR101: Redeclaration of extern "C" names via using-declarations + +namespace Test1 { + + typedef unsigned int X; + extern "C" void f1(); + namespace N { + typedef unsigned int X; + extern "C" void f1(); + } + using N::f1; // { dg-bogus "" "redeclaration through 'using' should not be ambiguous" } + using N::X; // { dg-bogus "" "redeclaration through 'using' should not be ambiguous" } +} + + +namespace Test2 { + + typedef unsigned int X; // { dg-bogus "X" "" } + extern "C" int f2(); + namespace N { + typedef unsigned int X; // { dg-bogus "X" "" } + extern "C" int f2(); + } + using namespace N; + int i = f2(); // { dg-bogus "" "redeclaration through 'using' should not be ambiguous" } + X x; // { dg-bogus "" "redeclaration through 'using' should not be ambiguous" } + +} |