[DebugInfo] Add types from constructor homing to the retained types list.
Add class types to the retained types list to make sure they don't get dropped if the constructor is optimized out later. Differential Revision: https://reviews.llvm.org/D88522
This commit is contained in:
parent
984744a131
commit
5c4fc581d5
|
@ -1726,7 +1726,7 @@ llvm::DISubprogram *CGDebugInfo::CreateCXXMemberFunction(
|
|||
// info is emitted.
|
||||
if (DebugKind == codegenoptions::DebugInfoConstructor)
|
||||
if (const CXXConstructorDecl *CD = dyn_cast<CXXConstructorDecl>(Method))
|
||||
completeClass(CD->getParent());
|
||||
completeUnusedClass(*CD->getParent());
|
||||
|
||||
llvm::DINodeArray TParamsArray = CollectFunctionTemplateParams(Method, Unit);
|
||||
llvm::DISubprogram *SP = DBuilder.createMethod(
|
||||
|
|
|
@ -9,7 +9,7 @@ struct B {
|
|||
B();
|
||||
} TestB;
|
||||
|
||||
// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "C"{{.*}}DIFlagTypePassByValue
|
||||
// CHECK-DAG: ![[C:[0-9]+]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "C"{{.*}}DIFlagTypePassByValue
|
||||
struct C {
|
||||
C() {}
|
||||
} TestC;
|
||||
|
@ -73,3 +73,7 @@ void f(K k) {}
|
|||
void L() {
|
||||
auto func = [&]() {};
|
||||
}
|
||||
|
||||
// Check that types are being added to retained types list.
|
||||
// CHECK-DAG: !DICompileUnit{{.*}}retainedTypes: ![[RETAINED:[0-9]+]]
|
||||
// CHECK-DAG: ![[RETAINED]] = {{.*}}![[C]]
|
||||
|
|
Loading…
Reference in New Issue