1 | // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -fexceptions -fobjc-exceptions -o - %s | FileCheck %s |
2 | |
3 | // rdar://problem/8535238 |
4 | // CHECK: declare void @objc_exception_rethrow() |
5 | |
6 | void protos() { |
7 | extern void foo(); |
8 | @try { |
9 | foo(); |
10 | } @catch (id e) { |
11 | @throw; |
12 | } |
13 | } |
14 | |
15 | void throwing() { |
16 | @throw(@"error!"); |
17 | } |
18 | |
19 | // rdar://problem/9431547 |
20 | void die(void) __attribute__((nothrow, noreturn)); |
21 | void test2(void) { |
22 | @try { |
23 | die(); |
24 | } @finally { |
25 | extern void test2_helper(void); |
26 | test2_helper(); |
27 | } |
28 | |
29 | // CHECK-LABEL: define void @test2() |
30 | // CHECK-NOT: call void @test2_helper() |
31 | } |
32 | |