arphaman added inline comments.

================
Comment at: lib/Parse/ParseObjc.cpp:2877
+        if (GetLookAheadToken(1).is(tok::l_brace) &&
+            ExprStatementTokLoc == AtLoc) {
           char ch = Tok.getIdentifierInfo()->getNameStart()[0];
----------------
bruno wrote:
> Does this only triggers when `Res.isInvalid()` returns true in the first part 
> of the patch? I wonder if it's also safe to allow  `ExprStatementTokLoc = 
> AtLoc;` for every path or only when it fails.
Yes, this code will always flow to the body of the if with `Res.isInvalid`, but 
only after this code is executed, so we need to set `ExprStatementTokLoc` 
before the check for `Res.isInvalid`. As well as that, all users of 
`ExprStatementTokLoc` currently care only about the current  location where the 
current statement is being parsed (they check to see if some expression 
location matches it), so it should be set before a method call like 
`ParseExpressionWithLeadingAt`, and it doesn't have to be cleared as the next 
statement will have a different location anyway. So it seems safe to set 
`ExprStatementTokLoc = AtLoc` as it follows the intended convention.


Repository:
  rL LLVM

https://reviews.llvm.org/D26916



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to