1*67e74705SXin Li // RUN: %clang_cc1 -std=c++11 -triple i386-unknown-unknown -fexceptions -fcxx-exceptions %s -emit-llvm -o - | FileCheck %s 2*67e74705SXin Li // REQUIRES: asserts 3*67e74705SXin Li 4*67e74705SXin Li struct Throws { 5*67e74705SXin Li Throws(int); 6*67e74705SXin Li Throws(); 7*67e74705SXin Li ~Throws(); 8*67e74705SXin Li }; 9*67e74705SXin Li 10*67e74705SXin Li // CHECK-LABEL: define void @_Z7cleanupi cleanup(int n)11*67e74705SXin Livoid cleanup(int n) { 12*67e74705SXin Li // CHECK: invoke void @_ZN6ThrowsC1Ei 13*67e74705SXin Li // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD:[^ ]+]] 14*67e74705SXin Li // CHECK: invoke void @_ZN6ThrowsC1Ei 15*67e74705SXin Li // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD]] 16*67e74705SXin Li // CHECK: invoke void @_ZN6ThrowsC1Ei 17*67e74705SXin Li // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD]] 18*67e74705SXin Li // CHECK: invoke void @_ZN6ThrowsC1Ev 19*67e74705SXin Li // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD]] 20*67e74705SXin Li new Throws[n] { 1, 2, 3 }; 21*67e74705SXin Li // CHECK: [[LPAD]]: 22*67e74705SXin Li // CHECK-NEXT: landingpad 23*67e74705SXin Li // CHECK: call void @_ZN6ThrowsD1Ev 24*67e74705SXin Li // CHECK: call void @_ZdaPv 25*67e74705SXin Li } 26*67e74705SXin Li 27*67e74705SXin Li 28*67e74705SXin Li // CHECK-LABEL: define void @_Z7cleanupv cleanup()29*67e74705SXin Livoid cleanup() { 30*67e74705SXin Li // CHECK: invoke void @_ZN6ThrowsC1Ei 31*67e74705SXin Li // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD2:[^ ]+]] 32*67e74705SXin Li // CHECK: invoke void @_ZN6ThrowsC1Ei 33*67e74705SXin Li // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD2]] 34*67e74705SXin Li // CHECK: invoke void @_ZN6ThrowsC1Ei 35*67e74705SXin Li // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD2]] 36*67e74705SXin Li new Throws[3] { 1, 2, 3 }; 37*67e74705SXin Li // CHECK: [[LPAD2]]: 38*67e74705SXin Li // CHECK-NEXT: landingpad 39*67e74705SXin Li // CHECK: call void @_ZN6ThrowsD1Ev 40*67e74705SXin Li // CHECK: call void @_ZdaPv 41*67e74705SXin Li } 42