mirror of
https://github.com/intel/llvm.git
synced 2026-01-27 14:50:42 +08:00
Move setting of Dependent Type to BlockDeclRefExpr's
constructor. llvm-svn: 108157
This commit is contained in:
@@ -3398,8 +3398,10 @@ public:
|
||||
// FIXME: Fix type/value dependence!
|
||||
BlockDeclRefExpr(ValueDecl *d, QualType t, SourceLocation l, bool ByRef,
|
||||
bool constAdded = false,
|
||||
Stmt *copyConstructorVal = 0)
|
||||
: Expr(BlockDeclRefExprClass, t, false, false), D(d), Loc(l), IsByRef(ByRef),
|
||||
Stmt *copyConstructorVal = 0,
|
||||
bool hasDependentType = false)
|
||||
: Expr(BlockDeclRefExprClass, t, hasDependentType, false),
|
||||
D(d), Loc(l), IsByRef(ByRef),
|
||||
ConstQualAdded(constAdded), CopyConstructorVal(copyConstructorVal) {}
|
||||
|
||||
// \brief Build an empty reference to a declared variable in a
|
||||
|
||||
@@ -1744,10 +1744,11 @@ Sema::BuildDeclarationNameExpr(const CXXScopeSpec &SS,
|
||||
// Variable will be bound by-copy, make it const within the closure.
|
||||
|
||||
ExprTy.addConst();
|
||||
QualType T = VD->getType();
|
||||
BlockDeclRefExpr *BDRE = new (Context) BlockDeclRefExpr(VD,
|
||||
ExprTy, Loc, false,
|
||||
constAdded);
|
||||
QualType T = VD->getType();
|
||||
constAdded, 0,
|
||||
(getLangOptions().CPlusPlus && T->isDependentType()));
|
||||
if (getLangOptions().CPlusPlus) {
|
||||
if (!T->isDependentType() && !T->isReferenceType()) {
|
||||
Expr *E = new (Context)
|
||||
@@ -1765,8 +1766,6 @@ Sema::BuildDeclarationNameExpr(const CXXScopeSpec &SS,
|
||||
BDRE->setCopyConstructorExpr(Init);
|
||||
}
|
||||
}
|
||||
else if (T->isDependentType())
|
||||
BDRE->setTypeDependent(true);
|
||||
}
|
||||
return Owned(BDRE);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user