diff options
author | Anders Carlsson <andersca@mac.com> | 2009-05-26 15:22:25 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-05-26 15:22:25 +0000 |
commit | 09ac6f21c3611accb56ae9604c8b6743f9aab987 (patch) | |
tree | d099315aabd6ffcc649683e81e0a511da7be4f99 | |
parent | a30d0460598de6a788fc4bb072ed6bad722b3e04 (diff) | |
download | bcm5719-llvm-09ac6f21c3611accb56ae9604c8b6743f9aab987.tar.gz bcm5719-llvm-09ac6f21c3611accb56ae9604c8b6743f9aab987.zip |
An Obj-C message send expression can never have a reference type.
llvm-svn: 72417
-rw-r--r-- | clang/lib/Sema/SemaExprObjC.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp index 1ad9096e50c..3bee461cf6f 100644 --- a/clang/lib/Sema/SemaExprObjC.cpp +++ b/clang/lib/Sema/SemaExprObjC.cpp @@ -444,6 +444,8 @@ Sema::ExprResult Sema::ActOnClassMessage( lbrac, rbrac, returnType)) return true; + returnType = returnType.getNonReferenceType(); + // If we have the ObjCInterfaceDecl* for the class that is receiving the // message, use that to construct the ObjCMessageExpr. Otherwise pass on the // IdentifierInfo* for the class. @@ -500,6 +502,8 @@ Sema::ExprResult Sema::ActOnInstanceMessage(ExprTy *receiver, Selector Sel, if (CheckMessageArgumentTypes(ArgExprs, NumArgs, Sel, Method, false, lbrac, rbrac, returnType)) return true; + + returnType = returnType.getNonReferenceType(); return new (Context) ObjCMessageExpr(RExpr, Sel, returnType, Method, lbrac, rbrac, ArgExprs, NumArgs); } @@ -515,6 +519,7 @@ Sema::ExprResult Sema::ActOnInstanceMessage(ExprTy *receiver, Selector Sel, if (CheckMessageArgumentTypes(ArgExprs, NumArgs, Sel, Method, false, lbrac, rbrac, returnType)) return true; + returnType = returnType.getNonReferenceType(); return new (Context) ObjCMessageExpr(RExpr, Sel, returnType, Method, lbrac, rbrac, ArgExprs, NumArgs); } @@ -556,6 +561,7 @@ Sema::ExprResult Sema::ActOnInstanceMessage(ExprTy *receiver, Selector Sel, if (CheckMessageArgumentTypes(ArgExprs, NumArgs, Sel, Method, false, lbrac, rbrac, returnType)) return true; + returnType = returnType.getNonReferenceType(); return new (Context) ObjCMessageExpr(RExpr, Sel, returnType, Method, lbrac, rbrac, ArgExprs, NumArgs); } @@ -632,6 +638,7 @@ Sema::ExprResult Sema::ActOnInstanceMessage(ExprTy *receiver, Selector Sel, if (CheckMessageArgumentTypes(ArgExprs, NumArgs, Sel, Method, false, lbrac, rbrac, returnType)) return true; + returnType = returnType.getNonReferenceType(); return new (Context) ObjCMessageExpr(RExpr, Sel, returnType, Method, lbrac, rbrac, ArgExprs, NumArgs); } |