forked from OSchip/llvm-project
Require a complete type when performing the qualified lookup during
instantiation of a dependent elaborated type specifier. Fixes PR 7199. llvm-svn: 104822
This commit is contained in:
parent
f9d147bddb
commit
bf8c519a0d
|
@ -582,6 +582,9 @@ public:
|
||||||
if (!DC)
|
if (!DC)
|
||||||
return QualType();
|
return QualType();
|
||||||
|
|
||||||
|
if (SemaRef.RequireCompleteDeclContext(SS, DC))
|
||||||
|
return QualType();
|
||||||
|
|
||||||
TagDecl *Tag = 0;
|
TagDecl *Tag = 0;
|
||||||
SemaRef.LookupQualifiedName(Result, DC);
|
SemaRef.LookupQualifiedName(Result, DC);
|
||||||
switch (Result.getResultKind()) {
|
switch (Result.getResultKind()) {
|
||||||
|
|
|
@ -119,3 +119,12 @@ namespace PR7080 {
|
||||||
|
|
||||||
bool x = X<int, rv<int>&>::value;
|
bool x = X<int, rv<int>&>::value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace pr7199 {
|
||||||
|
template <class T> class A; // expected-note {{template is declared here}}
|
||||||
|
template <class T> class B {
|
||||||
|
class A<T>::C field; // expected-error {{implicit instantiation of undefined template 'pr7199::A<int>'}}
|
||||||
|
};
|
||||||
|
|
||||||
|
template class B<int>; // expected-note {{in instantiation}}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue