xref: /aosp_15_r20/external/clang/test/CodeGenCXX/vtable-holder-self-reference.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm -dwarf-version=2 -debug-info-kind=limited -x c++ -o - %s | FileCheck %s
2*67e74705SXin Li //
3*67e74705SXin Li // PR21941: crasher for self-referencing DW_TAG_structure_type node.  If we get
4*67e74705SXin Li // rid of self-referenceing structure_types (PR21902), then it should be safe
5*67e74705SXin Li // to just kill this test.
6*67e74705SXin Li //
7*67e74705SXin Li // CHECK: ![[SELF:[0-9]+]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "B",
8*67e74705SXin Li // CHECK-SAME:                                         vtableHolder: ![[SELF]]
9*67e74705SXin Li 
foo()10*67e74705SXin Li void foo() {
11*67e74705SXin Li   struct V {
12*67e74705SXin Li     int vi;
13*67e74705SXin Li   };
14*67e74705SXin Li   struct B : virtual V {};
15*67e74705SXin Li   B b;
16*67e74705SXin Li }
17