diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2010-06-16 18:56:04 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-06-16 18:56:04 +0000 |
| commit | 1d44608cc112ee68ee523c5664f7340e8c81c2fa (patch) | |
| tree | 466205352277dd697a2943a708ecf5ea363d01b4 /clang/lib/Sema/SemaExprObjC.cpp | |
| parent | 6c0da25129eb0fcf44af6724f3e81cfb1a2bb891 (diff) | |
| download | bcm5719-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.cpp | 5 |
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); } |

