[PATCH] D97371: [clang][parser] Remove questionable ProhibitAttributes() call in objc parsing
Timm Bäder via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 22 01:22:34 PDT 2021
tbaeder updated this revision to Diff 332213.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D97371/new/
https://reviews.llvm.org/D97371
Files:
clang/lib/Parse/ParseStmt.cpp
clang/test/CodeGenObjC/attr-nomerge.m
Index: clang/test/CodeGenObjC/attr-nomerge.m
===================================================================
--- /dev/null
+++ clang/test/CodeGenObjC/attr-nomerge.m
@@ -0,0 +1,25 @@
+// RUN: %clang_cc1 -emit-llvm -fobjc-exceptions -o - %s | FileCheck %s
+
+// Test that the nomerge attribute is applied to function calls
+// in @try, @catch and @finally
+void opaque(void);
+void opaque2(void);
+void opaque3(void);
+
+ at class C;
+
+int main(int argc, const char * argv[]) {
+ __attribute__((nomerge)) @try {
+ opaque();
+ } @catch(C *c) {
+ opaque2();
+ } @finally {
+ opaque3();
+ }
+ return 0;
+}
+
+// CHECK: call void @opaque() #[[ATTR0:[0-9]+]]
+// CHECK-DAG: call void @opaque2() #[[ATTR0]]
+// CHECK-DAG: call void @opaque3() #[[ATTR0]]
+// CHECK-DAG: attributes #[[ATTR0]] = {{{.*}}nomerge{{.*}}}
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);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D97371.332213.patch
Type: text/x-patch
Size: 1260 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210322/299ecfdd/attachment.bin>
More information about the cfe-commits
mailing list