summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2012-06-27 20:29:39 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2012-06-27 20:29:39 +0000
commit7659b12b024aba16c18e3e486dc157b908abda2d (patch)
tree4708b10795665ec0b1fd22e7dc018e55dced0b3b /clang/lib
parent234076c4291085b4bf78d174805560f9fb00212b (diff)
downloadbcm5719-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.cpp7
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
OpenPOWER on IntegriCloud