brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 742154b Raw
42 lines · cpp
1// RUN: %clang_cc1 -std=c++11 -triple i386-unknown-unknown -fexceptions -fcxx-exceptions %s -emit-llvm -o - | FileCheck %s2// REQUIRES: asserts3 4struct Throws {5  Throws(int);6  Throws();7  ~Throws();8};9 10// CHECK-LABEL: define{{.*}} void @_Z7cleanupi11void cleanup(int n) {12  // CHECK: invoke void @_ZN6ThrowsC1Ei13  // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD:[^ ]+]]14  // CHECK: invoke void @_ZN6ThrowsC1Ei15  // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD]]16  // CHECK: invoke void @_ZN6ThrowsC1Ei17  // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD]]18  // CHECK: invoke void @_ZN6ThrowsC1Ev19  // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD]]20  new Throws[n] { 1, 2, 3 };21  // CHECK: [[LPAD]]:22  // CHECK-NEXT: landingpad23  // CHECK: call void @_ZN6ThrowsD1Ev24  // CHECK: call void @_ZdaPv25}26 27 28// CHECK-LABEL: define{{.*}} void @_Z7cleanupv29void cleanup() {30  // CHECK: invoke void @_ZN6ThrowsC1Ei31  // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD2:[^ ]+]]32  // CHECK: invoke void @_ZN6ThrowsC1Ei33  // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD2]]34  // CHECK: invoke void @_ZN6ThrowsC1Ei35  // CHECK-NEXT: to label %{{[^ ]+}} unwind label %[[LPAD2]]36  new Throws[3] { 1, 2, 3 };37  // CHECK: [[LPAD2]]:38  // CHECK-NEXT: landingpad39  // CHECK: call void @_ZN6ThrowsD1Ev40  // CHECK: call void @_ZdaPv41}42