Files
clang-p2996/clang/test/CodeGenObjC/attr-nomerge.m
Timm Bäder bc6b139392 [clang][parser] Don't prohibit attributes on objc @try/@throw
This line has a TODO comment, but the answer to it seems to be "no"
given that clang itself uses attributes on @try statements in its tests.

This ProhibitAttributes() statement is also dead code since
ProhibitAttributs() does not handle GNU attributes at the moment but
those are the only attributes valid in objc.

Differential Revision: https://reviews.llvm.org/D97371
2021-03-23 15:26:25 +01:00

25 lines
630 B
Objective-C

// RUN: %clang_cc1 -emit-llvm -fobjc-exceptions -triple x86_64-unknown-linux -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);
int main(int argc, const char * argv[]) {
__attribute__((nomerge)) @try {
opaque();
} @catch(...) {
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{{.*}}}