forked from OSchip/llvm-project
Don't die when a member access refers to a non-class member via a
qualified name. Fixes <rdar://problem/8231724>. llvm-svn: 109682
This commit is contained in:
parent
4c1e484f39
commit
a9c3e82755
|
@ -2632,6 +2632,9 @@ bool Sema::CheckQualifiedMemberReference(Expr *BaseExpr,
|
|||
while (DC->isTransparentContext())
|
||||
DC = DC->getParent();
|
||||
|
||||
if (!DC->isRecord())
|
||||
continue;
|
||||
|
||||
llvm::SmallPtrSet<CXXRecordDecl*,4> MemberRecord;
|
||||
MemberRecord.insert(cast<CXXRecordDecl>(DC)->getCanonicalDecl());
|
||||
|
||||
|
|
|
@ -101,3 +101,17 @@ namespace PR7508 {
|
|||
a.PopCleanupScope(); // expected-error{{no member named 'PopCleanupScope' in 'PR7508::A'}}
|
||||
}
|
||||
}
|
||||
|
||||
namespace rdar8231724 {
|
||||
namespace N {
|
||||
template<typename T> struct X1;
|
||||
int i;
|
||||
}
|
||||
|
||||
struct X { };
|
||||
struct Y : X { };
|
||||
|
||||
void f(Y *y) {
|
||||
y->N::X1<int>; // expected-error{{'rdar8231724::N::X1' is not a member of class 'rdar8231724::Y'}}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue