diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-06-27 20:29:39 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-06-27 20:29:39 +0000 |
commit | 7659b12b024aba16c18e3e486dc157b908abda2d (patch) | |
tree | 4708b10795665ec0b1fd22e7dc018e55dced0b3b /clang/lib | |
parent | 234076c4291085b4bf78d174805560f9fb00212b (diff) | |
download | bcm5719-llvm-7659b12b024aba16c18e3e486dc157b908abda2d.tar.gz bcm5719-llvm-7659b12b024aba16c18e3e486dc157b908abda2d.zip |
Refactoring after r159290: don't hold onto and check a misleading QualType.
llvm-svn: 159292
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Sema/SemaExpr.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index aec941c4c1c..a6051d6ccc0 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -649,8 +649,7 @@ bool Sema::variadicArgumentPODCheck(const Expr *E, VariadicCallType CT) { /// interfaces passed by value. ExprResult Sema::DefaultVariadicArgumentPromotion(Expr *E, VariadicCallType CT, FunctionDecl *FDecl) { - const QualType &Ty = E->getType(); - if (const BuiltinType *PlaceholderTy = Ty->getAsPlaceholderType()) { + if (const BuiltinType *PlaceholderTy = E->getType()->getAsPlaceholderType()) { // Strip the unbridged-cast placeholder expression off, if applicable. if (PlaceholderTy->getKind() == BuiltinType::ARCUnbridgedCast && (CT == VariadicMethod || @@ -671,10 +670,10 @@ ExprResult Sema::DefaultVariadicArgumentPromotion(Expr *E, VariadicCallType CT, return ExprError(); E = ExprRes.take(); - if (Ty->isObjCObjectType() && + if (E->getType()->isObjCObjectType() && DiagRuntimeBehavior(E->getLocStart(), 0, PDiag(diag::err_cannot_pass_objc_interface_to_vararg) - << Ty << CT)) + << E->getType() << CT)) return ExprError(); // Diagnostics regarding non-POD argument types are |