From 0950e41b73587a71ee66c88cf8db0dfff343a8cf Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Fri, 13 Mar 2009 21:01:28 +0000 Subject: Implement template instantiation for several more kinds of expressions: - C++ function casts, e.g., T(foo) - sizeof(), alignof() More importantly, this allows us to verify that we're performing overload resolution during template instantiation, with argument-dependent lookup and the "cached" results of name lookup from the template definition. llvm-svn: 66947 --- clang/lib/AST/ExprCXX.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'clang/lib/AST/ExprCXX.cpp') diff --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp index 184c9fe4904..1d4a3ba3a63 100644 --- a/clang/lib/AST/ExprCXX.cpp +++ b/clang/lib/AST/ExprCXX.cpp @@ -216,7 +216,10 @@ CXXTemporaryObjectExpr::CXXTemporaryObjectExpr(CXXConstructorDecl *Cons, Expr **Args, unsigned NumArgs, SourceLocation rParenLoc) - : Expr(CXXTemporaryObjectExprClass, writtenTy), + : Expr(CXXTemporaryObjectExprClass, writtenTy, + writtenTy->isDependentType(), + (writtenTy->isDependentType() || + CallExpr::hasAnyValueDependentArguments(Args, NumArgs))), TyBeginLoc(tyBeginLoc), RParenLoc(rParenLoc), Constructor(Cons), Args(0), NumArgs(NumArgs) { if (NumArgs > 0) { -- cgit v1.2.3