mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-03-04 00:20:14 +00:00
Revert "Don't build invalid AST nodes during recovery"
This reverts commit r224451. It caused us to reject some valid existing code. This code appears to run in non-error cases as well as error cases. If the scope of a DependentScopeDeclRefExpr is still incomplete it probably means we still have more instantiation to do. llvm-svn: 224526
This commit is contained in:
parent
661a97bede
commit
034531d7af
@ -2874,7 +2874,7 @@ Sema::BuildQualifiedTemplateIdExpr(CXXScopeSpec &SS,
|
||||
if (!(DC = computeDeclContext(SS, false)) ||
|
||||
DC->isDependentContext() ||
|
||||
RequireCompleteDeclContext(SS, DC))
|
||||
return ExprError();
|
||||
return BuildDependentDeclRefExpr(SS, TemplateKWLoc, NameInfo, TemplateArgs);
|
||||
|
||||
bool MemberOfUnknownSpecialization;
|
||||
LookupResult R(*this, NameInfo, LookupOrdinaryName);
|
||||
|
@ -1,19 +1,8 @@
|
||||
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
||||
|
||||
// expected-no-diagnostics
|
||||
// PR4382
|
||||
template<typename T> struct X { static const T A = 1; };
|
||||
template<typename T, bool = X<T>::A> struct Y { typedef T A; };
|
||||
template<typename T> struct Z { typedef typename Y<T>::A A; };
|
||||
extern int x;
|
||||
extern Z<int>::A x;
|
||||
|
||||
namespace pr21964 {
|
||||
struct H;
|
||||
template <class> struct T {
|
||||
struct A; // expected-note {{member is declared here}}
|
||||
static void B() {
|
||||
A::template N<H>; // expected-error {{implicit instantiation of undefined member 'pr21964::T<pr21964::H>::A'}}
|
||||
}
|
||||
};
|
||||
template struct T<H>; // expected-note {{requested here}}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user