Author: lattner
Date: Fri Sep 19 12:44:00 2008
New Revision: 56353

URL: http://llvm.org/viewvc/llvm-project?rev=56353&view=rev
Log:
Fix rdar://6222856: the receiver of a message expr is an
arbitrary expr, not just a assign expr.  The grammar comment
was right, the code was just wrong.

Modified:
    cfe/trunk/lib/Parse/ParseObjc.cpp
    cfe/trunk/test/Parser/objc-messaging-1.m

Modified: cfe/trunk/lib/Parse/ParseObjc.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseObjc.cpp?rev=56353&r1=56352&r2=56353&view=diff

==============================================================================
--- cfe/trunk/lib/Parse/ParseObjc.cpp (original)
+++ cfe/trunk/lib/Parse/ParseObjc.cpp Fri Sep 19 12:44:00 2008
@@ -1435,7 +1435,7 @@
     return ParseObjCMessageExpressionBody(LBracLoc, ReceiverName, 0);
   }
 
-  ExprResult Res = ParseAssignmentExpression();
+  ExprResult Res = ParseExpression();
   if (Res.isInvalid) {
     SkipUntil(tok::r_square);
     return Res;

Modified: cfe/trunk/test/Parser/objc-messaging-1.m
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/objc-messaging-1.m?rev=56353&r1=56352&r2=56353&view=diff

==============================================================================
--- cfe/trunk/test/Parser/objc-messaging-1.m (original)
+++ cfe/trunk/test/Parser/objc-messaging-1.m Fri Sep 19 12:44:00 2008
@@ -3,6 +3,7 @@
 {
        int i,j;
        struct S *p;
+        id a, b, c;
        [p ii];
        [p if: 1 :2];
        [p inout: 1 :2 another:(2,3,4)];
@@ -11,4 +12,8 @@
        [p inout: 1 :2 another:(i+10), (i,j-1,5),6,8];
        [p long: 1 :2 another:(i+10), (i,j-1,5),6,8];
        [p : "Hello\n" :2 another:(i+10), (i,j-1,5),6,8];
+
+       // Comma expression as receiver (rdar://6222856)
+       [a, b, c foo];
+
 }


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to