Previously ctor homing was omitting debug info for classes if they have both trival and nontrivial constructors, but we should only omit debug info if the class doesn't have any trivial constructors. retained types list. bug: https://bugs.llvm.org/show_bug.cgi?id=46537 Differential Revision: https://reviews.llvm.org/D84870
34 lines
868 B
C++
34 lines
868 B
C++
// RUN: %clang -cc1 -debug-info-kind=constructor -emit-llvm %s -o - | FileCheck %s
|
|
|
|
// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "A"{{.*}}DIFlagTypePassByValue
|
|
struct A {
|
|
} TestA;
|
|
|
|
// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "B"{{.*}}flags: DIFlagFwdDecl
|
|
struct B {
|
|
B();
|
|
} TestB;
|
|
|
|
// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "C"{{.*}}DIFlagTypePassByValue
|
|
struct C {
|
|
C() {}
|
|
} TestC;
|
|
|
|
// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "D"{{.*}}DIFlagTypePassByValue
|
|
struct D {
|
|
D();
|
|
};
|
|
D::D() {}
|
|
|
|
// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "E"{{.*}}DIFlagTypePassByValue
|
|
struct E {
|
|
constexpr E(){};
|
|
} TestE;
|
|
|
|
// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "F"{{.*}}DIFlagTypePassByValue
|
|
struct F {
|
|
F() = default;
|
|
F(int) {}
|
|
int i;
|
|
} TestF;
|