Not sure what I was thinking before.
Fixes PR8668.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120063
91177308-0d34-0410-b5e6-
96231b3b80d8
// repeatedly where (and only where) multiple declarations are
// allowed.
//
- // That's in non-member contexts.
- if (!CurContext->getRedeclContext()->isRecord())
+ // That's in file contexts.
+ if (CurContext->isFileContext())
return false;
NestedNameSpecifier *Qual
template struct Derived<int>; // expected-note {{in instantiation of template class}}
}
-// Redeclarations are okay in a function.
+// PR8668: redeclarations are not okay in a function.
namespace test3 {
namespace N {
int f(int);
}
void g() {
+ using N::f; // expected-note {{previous using declaration}}
+ using N::f; // expected-error {{redeclaration of using decl}}
+ using N::type; // expected-note {{previous using declaration}}
+ using N::type; // expected-error {{redeclaration of using decl}}
+ }
+
+ void h() {
using N::f;
- using N::f;
- using N::type;
using N::type;
+ {
+ using N::f;
+ using N::type;
+ }
}
}