[PATCH] D44406: [CodeView] Emit HasConstructorOrDestructor class option
Aaron Smith via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 12 18:02:54 PDT 2018
asmith created this revision.
asmith added reviewers: zturner, rnk, llvm-commits.
Repository:
rL LLVM
https://reviews.llvm.org/D44406
Files:
lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
test/DebugInfo/COFF/global-type-hashes.ll
Index: test/DebugInfo/COFF/global-type-hashes.ll
===================================================================
--- test/DebugInfo/COFF/global-type-hashes.ll
+++ test/DebugInfo/COFF/global-type-hashes.ll
@@ -176,7 +176,7 @@
; YAML: - Kind: LF_STRUCTURE
; YAML: Class:
; YAML: MemberCount: 0
-; YAML: Options: [ None, ForwardReference, HasUniqueName ]
+; YAML: Options: [ None, HasConstructorOrDestructor, ForwardReference, HasUniqueName ]
; YAML: FieldList: 0
; YAML: Name: Foo
; YAML: UniqueName: '.?AUFoo@@'
@@ -242,7 +242,7 @@
; YAML: - Kind: LF_STRUCTURE
; YAML: Class:
; YAML: MemberCount: 4
-; YAML: Options: [ None, HasUniqueName ]
+; YAML: Options: [ None, HasConstructorOrDestructor, HasUniqueName ]
; YAML: FieldList: 4106
; YAML: Name: Foo
; YAML: UniqueName: '.?AUFoo@@'
@@ -279,18 +279,18 @@
; YAML: - FDEC3D2D96287486127C66070B248ED52E421F55
; YAML: - 074AE5CC2D68AF9F0A3BEF23993968F7FD82CA84
; YAML: - BF0439C1A64C9070C6A6ADB0A34D21DAD0FFC3E9
-; YAML: - CF1B3AD4A96BA628E6556FD28A222FBBEBBE140E
-; YAML: - EC50195BFE148C0DC6A87A59D49CA1D9B146DB86
+; YAML: - 4A744E1B2BF83A984291E364C6FB32293878C49A
+; YAML: - D860A94A3D72CC44881DEF185446DDCAE21D9BE9
; YAML: - 123C8BA63AD23386897AB6D814A9932F03846156
-; YAML: - 0F135243878289B83835BC2DB9EE25A1D4D0DA2B
+; YAML: - DE52A1DA2221AEC85AA5E5DB6F32C3F2666BFAF4
; YAML: - 9069CA78E7450A285173431B3E52C5C25299E473
-; YAML: - ADA6E11350E9F2069D4689E3646C90D67B28DA62
-; YAML: - BD535FA9877A4DD123840AF849F3B0110EEB1D7A
-; YAML: - 8044F70193FE40B71867158C5E50F0467485FA99
+; YAML: - 52D7AC18F997BE7EB4EE3A3A423DB52834167B20
+; YAML: - CAB1D3F0DD776BBF7BCA87B0C5882A25FECFD7F8
+; YAML: - ED35066CBA0688C879B81071219ECC3B65DC5143
; YAML: - 558606D57A76D125B705FC6DD18EEE3C1C0C4C09
-; YAML: - A64A018D9EB1EB8015917925662C8508D81CDA68
-; YAML: - 51E89AD9992AC6F11F9E3F1665F41C53BDA8AFC4
-; YAML: - 4F1C3BCA73099EF3466AAC99CC4951767DF890F5
+; YAML: - D06C349364B6AE1D1C187094EFF46216B6B80F79
+; YAML: - 7E21BE8AE67D602071022B3051B489D4107486DD
+; YAML: - 8E7F093B5E5907268294A62AE09639AD762B9333
; ...
Index: lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
===================================================================
--- lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
+++ lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
@@ -1766,6 +1766,16 @@
}
}
+ for (const DINode *Element : Ty->getElements()) {
+ if (auto *Method = dyn_cast_or_null<DISubprogram>(Element)) {
+ StringRef Name = Method->getName();
+ if (Name == Ty->getName() || (!Name.empty() && Name[0] == '~')) {
+ CO |= ClassOptions::HasConstructorOrDestructor;
+ break;
+ }
+ }
+ }
+
return CO;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D44406.138116.patch
Type: text/x-patch
Size: 3121 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180313/db0e1b50/attachment.bin>
More information about the llvm-commits
mailing list