1 // RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 -fexceptions -fcxx-exceptions -fexternc-nounwind | FileCheck %s
2 
3 namespace test1 {
4 struct Cleanup { ~Cleanup(); };
5 extern "C" void never_throws();
6 void may_throw();
7 
caller()8 void caller() {
9   Cleanup x;
10   never_throws();
11   may_throw();
12 }
13 }
14 // CHECK-LABEL: define dso_local void @"?caller@test1@@YAXXZ"(
15 // CHECK: call void @never_throws(
16 // CHECK: invoke void @"?may_throw@test1@@YAXXZ"(
17 
18 namespace test2 {
19 struct Cleanup { ~Cleanup(); };
20 extern "C" void throws_int() throw(int);
21 void may_throw();
22 
caller()23 void caller() {
24   Cleanup x;
25   throws_int();
26   may_throw();
27 }
28 }
29 // CHECK-LABEL: define dso_local void @"?caller@test2@@YAXXZ"(
30 // CHECK: invoke void @throws_int(
31 // CHECK: invoke void @"?may_throw@test2@@YAXXZ"(
32