[cfe-commits] r72417 - /cfe/trunk/lib/Sema/SemaExprObjC.cpp

Anders Carlsson andersca at mac.com
Tue May 26 08:22:34 PDT 2009


Author: andersca
Date: Tue May 26 10:22:25 2009
New Revision: 72417

URL: http://llvm.org/viewvc/llvm-project?rev=72417&view=rev
Log:
An Obj-C message send expression can never have a reference type.

Modified:
    cfe/trunk/lib/Sema/SemaExprObjC.cpp

Modified: cfe/trunk/lib/Sema/SemaExprObjC.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprObjC.cpp?rev=72417&r1=72416&r2=72417&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/SemaExprObjC.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExprObjC.cpp Tue May 26 10:22:25 2009
@@ -444,6 +444,8 @@
                                 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 @@
     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 @@
     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 @@
     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 @@
   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);
 }





More information about the cfe-commits mailing list