зеркало из https://github.com/microsoft/clang.git
Fix PR4365.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73240 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
f67875d5ad
Коммит
1d79faf915
|
@ -138,6 +138,12 @@ bool Sema::LookupInBases(CXXRecordDecl *Class,
|
|||
// Find the record of the base class subobjects for this type.
|
||||
QualType BaseType = Context.getCanonicalType(BaseSpec->getType());
|
||||
BaseType = BaseType.getUnqualifiedType();
|
||||
|
||||
// If a base class of the class template depends on a template-parameter,
|
||||
// the base class scope is not examined during unqualified name lookup.
|
||||
// [temp.dep]p3.
|
||||
if (BaseType->isDependentType())
|
||||
continue;
|
||||
|
||||
// Determine whether we need to visit this base class at all,
|
||||
// updating the count of subobjects appropriately.
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
// RUN: clang-cc -fsyntax-only -verify %s
|
||||
|
||||
typedef double A;
|
||||
template<typename T> class B {
|
||||
typedef int A;
|
||||
};
|
||||
|
||||
template<typename T> struct X : B<T> {
|
||||
static A a;
|
||||
};
|
||||
|
||||
int a0[sizeof(X<int>::a) == sizeof(double) ? 1 : -1];
|
||||
|
||||
// PR4365.
|
||||
template<class T> class Q;
|
||||
template<class T> class R : Q<T> {T current;};
|
Загрузка…
Ссылка в новой задаче