// RUN: %clang_cc1 -triple x86_64-linux-gnu -gkey-instructions %s -debug-info-kind=line-tables-only -emit-llvm -o - -fexceptions -fcxx-exceptions \ // RUN: | FileCheck %s void except() { // FIXME(OCH): Should `store i32 32, ptr %exception` be key? throw 32; } void attempt() { try { except(); } // CHECK: catch: // CHECK: %4 = call ptr @__cxa_begin_catch(ptr %exn) // CHECK: %5 = load i32{{.*}}, !dbg [[G1R2:!.*]] // CHECK: store i32 %5, ptr %e{{.*}}, !dbg [[G1R1:!.*]] // CHECK: call void @__cxa_end_catch() catch (int e) { } // CHECK: ret{{.*}}, !dbg [[RET:!.*]] } // CHECK: [[G1R2]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 2) // CHECK: [[G1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1) // CHECK: [[RET]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)