tbaeder created this revision. tbaeder added reviewers: aaron.ballman, rsmith. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
Clang uses GNU-style attributes in objc code in (for example, I guess?) `tests/Parser/stmt-attributes.m`: __attribute__((nomerge)) @try { [getTest() foo]; } @finally { } Once the `ProhibitAttributes()` call in question actually starts handling GNU-style attributes, these tests fail. The call was introduced in c202b2809ac814bcae8553cd772ec4901fdb8441 by Richard Smith (I'll add him as a reviewer), but with a `TODO` comment stating that it might be incorrect. I'm having a hard time finding any concrete information on whether GNU-style attributes on `@try`/`@catch` statements are allowed in objc, so maybe someone with more experience can comment? Thanks, Timm Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D97371 Files: clang/lib/Parse/ParseStmt.cpp Index: clang/lib/Parse/ParseStmt.cpp =================================================================== --- clang/lib/Parse/ParseStmt.cpp +++ clang/lib/Parse/ParseStmt.cpp @@ -172,7 +172,6 @@ switch (Kind) { case tok::at: // May be a @try or @throw statement { - ProhibitAttributes(Attrs); // TODO: is it correct? AtLoc = ConsumeToken(); // consume @ return ParseObjCAtStatement(AtLoc, StmtCtx); }
Index: clang/lib/Parse/ParseStmt.cpp =================================================================== --- clang/lib/Parse/ParseStmt.cpp +++ clang/lib/Parse/ParseStmt.cpp @@ -172,7 +172,6 @@ switch (Kind) { case tok::at: // May be a @try or @throw statement { - ProhibitAttributes(Attrs); // TODO: is it correct? AtLoc = ConsumeToken(); // consume @ return ParseObjCAtStatement(AtLoc, StmtCtx); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits