summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExprObjC.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-06-16 18:56:04 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-06-16 18:56:04 +0000
commit1d44608cc112ee68ee523c5664f7340e8c81c2fa (patch)
tree466205352277dd697a2943a708ecf5ea363d01b4 /clang/lib/Sema/SemaExprObjC.cpp
parent6c0da25129eb0fcf44af6724f3e81cfb1a2bb891 (diff)
downloadbcm5719-llvm-1d44608cc112ee68ee523c5664f7340e8c81c2fa.tar.gz
bcm5719-llvm-1d44608cc112ee68ee523c5664f7340e8c81c2fa.zip
Make sure result type of objc++ message expression is
complete before attempting to bind it to a temporary. Fixes PR7386. llvm-svn: 106130
Diffstat (limited to 'clang/lib/Sema/SemaExprObjC.cpp')
-rw-r--r--clang/lib/Sema/SemaExprObjC.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp
index 695a1beca15..ed6e917f551 100644
--- a/clang/lib/Sema/SemaExprObjC.cpp
+++ b/clang/lib/Sema/SemaExprObjC.cpp
@@ -1018,6 +1018,11 @@ Sema::OwningExprResult Sema::BuildInstanceMessage(ExprArg ReceiverE,
else
Result = ObjCMessageExpr::Create(Context, ReturnType, LBracLoc, Receiver,
Sel, Method, Args, NumArgs, RBracLoc);
+ if (Context.getLangOptions().CPlusPlus && !ReturnType->isVoidType()) {
+ if (RequireCompleteType(LBracLoc, ReturnType,
+ diag::err_illegal_message_expr_incomplete_type))
+ return ExprError();
+ }
return MaybeBindToTemporary(Result);
}
OpenPOWER on IntegriCloud