xref: /aosp_15_r20/external/clang/test/CodeGenObjCXX/nested-ehlocation.mm (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1  -triple x86_64-apple-macosx -emit-llvm -debug-info-kind=limited -stdlib=libc++ -fblocks -fexceptions -x objective-c++ -o - %s | FileCheck %s
2*67e74705SXin Li
3*67e74705SXin Li// Verify that all invoke instructions have a debug location.
4*67e74705SXin Li// Literally: There are no unwind lines that don't end with ", (!dbg 123)".
5*67e74705SXin Li// CHECK-NOT: {{to label %.* unwind label [^,]+$}}
6*67e74705SXin Li
7*67e74705SXin Livoid block(void (^)(void));
8*67e74705SXin Liextern void foo();
9*67e74705SXin Listruct A {
10*67e74705SXin Li  ~A(void) { foo(); }
11*67e74705SXin Li  void bar() const {}
12*67e74705SXin Li};
13*67e74705SXin Livoid baz(void const *const) {}
14*67e74705SXin Listruct B : A {};
15*67e74705SXin Livoid test() {
16*67e74705SXin Li  A a;
17*67e74705SXin Li  B b;
18*67e74705SXin Li  block(^(void) {
19*67e74705SXin Li    baz(&b);
20*67e74705SXin Li    block(^() {
21*67e74705SXin Li      a.bar();
22*67e74705SXin Li    });
23*67e74705SXin Li  });
24*67e74705SXin Li}
25