diff options
Diffstat (limited to 'lib/Sema/SemaExprObjC.cpp')
-rw-r--r-- | lib/Sema/SemaExprObjC.cpp | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/lib/Sema/SemaExprObjC.cpp b/lib/Sema/SemaExprObjC.cpp index ea8f4e3..0c5d8ef 100644 --- a/lib/Sema/SemaExprObjC.cpp +++ b/lib/Sema/SemaExprObjC.cpp @@ -470,11 +470,13 @@ Sema::ExprResult Sema::ActOnClassMessage( // now, we simply pass the "super" identifier through (which isn't consistent // with instance methods. if (isSuper) - return new (Context) ObjCMessageExpr(receiverName, Sel, returnType, Method, - lbrac, rbrac, ArgExprs, NumArgs); + return new (Context) ObjCMessageExpr(Context, receiverName, Sel, returnType, + Method, lbrac, rbrac, ArgExprs, + NumArgs); else - return new (Context) ObjCMessageExpr(ClassDecl, Sel, returnType, Method, - lbrac, rbrac, ArgExprs, NumArgs); + return new (Context) ObjCMessageExpr(Context, ClassDecl, Sel, returnType, + Method, lbrac, rbrac, ArgExprs, + NumArgs); } // ActOnInstanceMessage - used for both unary and keyword messages. @@ -492,7 +494,7 @@ Sema::ExprResult Sema::ActOnInstanceMessage(ExprTy *receiver, Selector Sel, // If necessary, apply function/array conversion to the receiver. // C99 6.7.5.3p[7,8]. - DefaultFunctionArrayConversion(RExpr); + DefaultFunctionArrayLvalueConversion(RExpr); QualType returnType; QualType ReceiverCType = @@ -521,8 +523,9 @@ Sema::ExprResult Sema::ActOnInstanceMessage(ExprTy *receiver, Selector Sel, return true; returnType = returnType.getNonReferenceType(); - return new (Context) ObjCMessageExpr(RExpr, Sel, returnType, Method, lbrac, - rbrac, ArgExprs, NumArgs); + return new (Context) ObjCMessageExpr(Context, RExpr, Sel, returnType, + Method, lbrac, rbrac, + ArgExprs, NumArgs); } // Handle messages to id. @@ -536,8 +539,9 @@ Sema::ExprResult Sema::ActOnInstanceMessage(ExprTy *receiver, Selector Sel, lbrac, rbrac, returnType)) return true; returnType = returnType.getNonReferenceType(); - return new (Context) ObjCMessageExpr(RExpr, Sel, returnType, Method, lbrac, - rbrac, ArgExprs, NumArgs); + return new (Context) ObjCMessageExpr(Context, RExpr, Sel, returnType, + Method, lbrac, rbrac, + ArgExprs, NumArgs); } // Handle messages to Class. @@ -582,8 +586,9 @@ Sema::ExprResult Sema::ActOnInstanceMessage(ExprTy *receiver, Selector Sel, lbrac, rbrac, returnType)) return true; returnType = returnType.getNonReferenceType(); - return new (Context) ObjCMessageExpr(RExpr, Sel, returnType, Method, lbrac, - rbrac, ArgExprs, NumArgs); + return new (Context) ObjCMessageExpr(Context, RExpr, Sel, returnType, + Method, lbrac, rbrac, + ArgExprs, NumArgs); } ObjCMethodDecl *Method = 0; @@ -665,7 +670,7 @@ Sema::ExprResult Sema::ActOnInstanceMessage(ExprTy *receiver, Selector Sel, lbrac, rbrac, returnType)) return true; returnType = returnType.getNonReferenceType(); - return new (Context) ObjCMessageExpr(RExpr, Sel, returnType, Method, lbrac, - rbrac, ArgExprs, NumArgs); + return new (Context) ObjCMessageExpr(Context, RExpr, Sel, returnType, Method, + lbrac, rbrac, ArgExprs, NumArgs); } |