diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2017-10-10 11:24:41 +0000 |
---|---|---|
committer | Jonas Devlieghere <jonas@devlieghere.com> | 2017-10-10 11:24:41 +0000 |
commit | 098eeb5ecccdce2ef64d7609902dab52eb27841c (patch) | |
tree | 57472a8d116beeede79f6d83e0a13df0a05903bf /test/tools | |
parent | 0e4cc5998cfad7612e0460362ed6d0137e1f7c1b (diff) | |
download | llvm-098eeb5ecccdce2ef64d7609902dab52eb27841c.tar.gz |
[llvm-dwarfdump] Print type names in DW_AT_type DIEs
This patch adds printing for DW_AT_type DIEs like it is already the case
for DW_AT_specification DIEs. This is a rather naive approach and only a
start. We should have pretty printers for different languages.
Differential revision: https://reviews.llvm.org/D36993
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315297 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/tools')
-rw-r--r-- | test/tools/dsymutil/X86/basic-linking-x86.test | 32 | ||||
-rw-r--r-- | test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test | 14 | ||||
-rw-r--r-- | test/tools/dsymutil/X86/basic-lto-linking-x86.test | 32 | ||||
-rw-r--r-- | test/tools/dsymutil/X86/modules.m | 8 | ||||
-rw-r--r-- | test/tools/dsymutil/X86/odr-member-functions.cpp | 2 |
5 files changed, 44 insertions, 44 deletions
diff --git a/test/tools/dsymutil/X86/basic-linking-x86.test b/test/tools/dsymutil/X86/basic-linking-x86.test index 37d8be73360..036eac665d9 100644 --- a/test/tools/dsymutil/X86/basic-linking-x86.test +++ b/test/tools/dsymutil/X86/basic-linking-x86.test @@ -26,7 +26,7 @@ CHECK: DW_AT_name ("main") CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic1.c") CHECK: DW_AT_decl_line (23) CHECK: DW_AT_prototyped (0x01) -CHECK: DW_AT_type (cu + 0x0063) +CHECK: DW_AT_type (cu + 0x0063 CHECK: DW_AT_external (0x01) CHECK: DW_AT_accessibility (DW_ACCESS_public) CHECK: DW_AT_low_pc (0x0000000100000ea0) @@ -36,13 +36,13 @@ CHECK: DW_TAG_formal_parameter CHECK: DW_AT_name ("argc") CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic1.c") CHECK: DW_AT_decl_line (23) -CHECK: DW_AT_type (cu + 0x0063) +CHECK: DW_AT_type (cu + 0x0063 CHECK: DW_AT_location (DW_OP_fbreg -8) CHECK: DW_TAG_formal_parameter CHECK: DW_AT_name ("argv") CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic1.c") CHECK: DW_AT_decl_line (23) -CHECK: DW_AT_type (cu + 0x006a) +CHECK: DW_AT_type (cu + 0x006a CHECK: DW_AT_location (DW_OP_fbreg -16) CHECK: NULL CHECK: DW_TAG_base_type @@ -50,11 +50,11 @@ CHECK: DW_AT_name ("int") CHECK: DW_AT_encoding (DW_ATE_signed) CHECK: DW_AT_byte_size (0x04) CHECK: DW_TAG_pointer_type -CHECK: DW_AT_type (cu + 0x006f) +CHECK: DW_AT_type (cu + 0x006f CHECK: DW_TAG_pointer_type -CHECK: DW_AT_type (cu + 0x0074) +CHECK: DW_AT_type (cu + 0x0074 CHECK: DW_TAG_const_type -CHECK: DW_AT_type (cu + 0x0079) +CHECK: DW_AT_type (cu + 0x0079 CHECK: DW_TAG_base_type CHECK: DW_AT_name ("char") CHECK: DW_AT_encoding (DW_ATE_signed_char) @@ -73,30 +73,30 @@ CHECK: DW_TAG_base_type CHECK: DW_AT_name ("int") CHECK: DW_TAG_variable CHECK: DW_AT_name ("private_int") -CHECK: DW_AT_type (cu + 0x0026) +CHECK: DW_AT_type (cu + 0x0026 CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic2.c") BASIC: DW_AT_location (DW_OP_addr 0x100001008) ARCHIVE: DW_AT_location (DW_OP_addr 0x100001004) CHECK: DW_TAG_variable CHECK: DW_AT_name ("baz") -CHECK: DW_AT_type (cu + 0x0026) +CHECK: DW_AT_type (cu + 0x0026 CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic2.c") CHECK: DW_AT_location (DW_OP_addr 0x100001000) CHECK: DW_TAG_subprogram CHECK: DW_AT_name ("foo") CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic2.c") -CHECK: DW_AT_type (cu + 0x0026) +CHECK: DW_AT_type (cu + 0x0026 CHECK: DW_AT_low_pc (0x0000000100000ed0) CHECK: DW_AT_high_pc (0x0000000100000f19) CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) CHECK: DW_TAG_formal_parameter CHECK: DW_AT_name ("arg") -CHECK: DW_AT_type (cu + 0x0026) +CHECK: DW_AT_type (cu + 0x0026 CHECK: DW_AT_location (DW_OP_fbreg -4) CHECK: NULL CHECK: DW_TAG_subprogram CHECK: DW_AT_name ("inc") -CHECK: DW_AT_type (cu + 0x0026) +CHECK: DW_AT_type (cu + 0x0026 CHECK: DW_AT_low_pc (0x0000000100000f20) CHECK: DW_AT_high_pc (0x0000000100000f37) CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) @@ -112,28 +112,28 @@ CHECK: DW_AT_comp_dir ("/Inputs") CHECK: DW_AT_low_pc (0x0000000100000f40) CHECK: DW_TAG_variable CHECK: DW_AT_name ("val") -CHECK: DW_AT_type (cu + 0x003c) +CHECK: DW_AT_type (cu + 0x003c CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic3.c") BASIC: DW_AT_location (DW_OP_addr 0x100001004) ARCHIVE: DW_AT_location (DW_OP_addr 0x100001008) CHECK: DW_TAG_volatile_type -CHECK: DW_AT_type (cu + 0x0041) +CHECK: DW_AT_type (cu + 0x0041 CHECK: DW_TAG_base_type CHECK: DW_AT_name ("int") CHECK: DW_TAG_subprogram CHECK: DW_AT_name ("bar") -CHECK: DW_AT_type (cu + 0x0041) +CHECK: DW_AT_type (cu + 0x0041 CHECK: DW_AT_low_pc (0x0000000100000f40) CHECK: DW_AT_high_pc (0x0000000100000f84) CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) CHECK: DW_TAG_formal_parameter CHECK: DW_AT_name ("arg") -CHECK: DW_AT_type (cu + 0x0041) +CHECK: DW_AT_type (cu + 0x0041 CHECK: DW_AT_location (DW_OP_fbreg -8) CHECK: NULL CHECK: DW_TAG_subprogram CHECK: DW_AT_name ("inc") -CHECK: DW_AT_type (cu + 0x0041) +CHECK: DW_AT_type (cu + 0x0041 CHECK: DW_AT_low_pc (0x0000000100000f90) CHECK: DW_AT_high_pc (0x0000000100000fa9) CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) diff --git a/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test b/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test index d3530d5f85b..bd4784deccf 100644 --- a/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test +++ b/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test @@ -20,20 +20,20 @@ CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) CHECK: DW_AT_name ("main") CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic1.c") CHECK: DW_AT_prototyped (true) -CHECK: DW_AT_type (0x00000000000000a1) +CHECK: DW_AT_type (0x00000000000000a1 CHECK: DW_AT_external (true) CHECK: DW_TAG_formal_parameter CHECK: DW_AT_location (DW_OP_reg5 RDI, DW_OP_piece 0x4) CHECK: DW_AT_name ("argc") CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic1.c") -CHECK: DW_AT_type (0x00000000000000a1) +CHECK: DW_AT_type (0x00000000000000a1 CHECK: DW_TAG_formal_parameter CHECK: DW_AT_location (DW_OP_reg4 RSI) CHECK: DW_AT_name ("argv") -CHECK: DW_AT_type (cu + 0x0060) +CHECK: DW_AT_type (cu + 0x0060 CHECK: NULL CHECK: DW_TAG_pointer_type -CHECK: DW_AT_type (cu + 0x0065) +CHECK: DW_AT_type (cu + 0x0065 CHECK: DW_TAG_pointer_type CHECK: DW_TAG_const_type CHECK: DW_TAG_base_type @@ -62,7 +62,7 @@ CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic2.c") CHECK: DW_AT_location (DW_OP_addr 0x100001008) CHECK: DW_TAG_subprogram CHECK: DW_AT_name ("inc") -CHECK: DW_AT_type (cu + 0x002a) +CHECK: DW_AT_type (cu + 0x002a CHECK: DW_AT_inline (DW_INL_inlined) CHECK: DW_TAG_subprogram CHECK: DW_AT_low_pc (0x0000000100000f50) @@ -71,12 +71,12 @@ CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) CHECK: DW_AT_name ("foo") CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic2.c") CHECK: DW_AT_prototyped (true) -CHECK: DW_AT_type (cu + 0x002a) +CHECK: DW_AT_type (cu + 0x002a CHECK: DW_TAG_formal_parameter CHECK: DW_AT_location (0x00000000 CHECK: 0x0000000000000000 - 0x000000000000000c: DW_OP_reg5 RDI, DW_OP_piece 0x4) CHECK: DW_AT_name ("arg") -CHECK: DW_AT_type (cu + 0x002a) +CHECK: DW_AT_type (cu + 0x002a CHECK: DW_TAG_inlined_subroutine CHECK: DW_AT_abstract_origin (cu + 0x005b "inc") CHECK: DW_AT_low_pc (0x0000000100000f61) diff --git a/test/tools/dsymutil/X86/basic-lto-linking-x86.test b/test/tools/dsymutil/X86/basic-lto-linking-x86.test index 9004bbcb7df..76bc1142736 100644 --- a/test/tools/dsymutil/X86/basic-lto-linking-x86.test +++ b/test/tools/dsymutil/X86/basic-lto-linking-x86.test @@ -19,7 +19,7 @@ CHECK: DW_AT_name ("main") CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic1.c") CHECK: DW_AT_decl_line (23) CHECK: DW_AT_prototyped (0x01) -CHECK: DW_AT_type (cu + 0x0063) +CHECK: DW_AT_type (cu + 0x0063 CHECK: DW_AT_external (0x01) CHECK: DW_AT_accessibility (DW_ACCESS_public) CHECK: DW_AT_low_pc (0x0000000100000f40) @@ -27,11 +27,11 @@ CHECK: DW_AT_high_pc (0x0000000100000f4b) CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) CHECK: DW_TAG_formal_parameter CHECK: DW_AT_name ("argc") -CHECK: DW_AT_type (cu + 0x0063) +CHECK: DW_AT_type (cu + 0x0063 CHECK: DW_AT_location (DW_OP_reg5 RDI, DW_OP_piece 0x4) CHECK: DW_TAG_formal_parameter CHECK: DW_AT_name ("argv") -CHECK: DW_AT_type (cu + 0x006a) +CHECK: DW_AT_type (cu + 0x006a CHECK: DW_AT_location (DW_OP_reg4 RSI) CHECK: NULL CHECK: DW_TAG_base_type @@ -39,11 +39,11 @@ CHECK: DW_AT_name ("int") CHECK: DW_AT_encoding (DW_ATE_signed) CHECK: DW_AT_byte_size (0x04) CHECK: DW_TAG_pointer_type -CHECK: DW_AT_type (cu + 0x006f) +CHECK: DW_AT_type (cu + 0x006f CHECK: DW_TAG_pointer_type -CHECK: DW_AT_type (cu + 0x0074) +CHECK: DW_AT_type (cu + 0x0074 CHECK: DW_TAG_const_type -CHECK: DW_AT_type (cu + 0x0079) +CHECK: DW_AT_type (cu + 0x0079 CHECK: DW_TAG_base_type CHECK: DW_AT_name ("char") CHECK: DW_AT_encoding (DW_ATE_signed_char) @@ -60,22 +60,22 @@ CHECK: DW_AT_comp_dir ("/Inputs") CHECK: DW_AT_low_pc (0x0000000100000f50) CHECK: DW_TAG_variable CHECK: DW_AT_name ("private_int") -CHECK: DW_AT_type (0x0000000000000063) +CHECK: DW_AT_type (0x0000000000000063 CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic2.c") CHECK: DW_AT_location (DW_OP_addr 0x100001008) CHECK: DW_TAG_variable CHECK: DW_AT_name ("baz") -CHECK: DW_AT_type (0x0000000000000063) +CHECK: DW_AT_type (0x0000000000000063 CHECK: DW_AT_location (DW_OP_addr 0x100001000) CHECK: DW_TAG_subprogram CHECK: DW_AT_name ("foo") -CHECK: DW_AT_type (0x0000000000000063) +CHECK: DW_AT_type (0x0000000000000063 CHECK: DW_AT_low_pc (0x0000000100000f50) CHECK: DW_AT_high_pc (0x0000000100000f89) CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) CHECK: DW_TAG_formal_parameter CHECK: DW_AT_name ("arg") -CHECK: DW_AT_type (0x0000000000000063) +CHECK: DW_AT_type (0x0000000000000063 CHECK: DW_AT_location (0x00000000 CHECK: 0x0000000000000000 - 0x000000000000000e: DW_OP_reg5 RDI, DW_OP_piece 0x4) CHECK: DW_TAG_inlined_subroutine @@ -86,7 +86,7 @@ CHECK: DW_AT_call_line (20) CHECK: NULL CHECK: DW_TAG_subprogram CHECK: DW_AT_name ("inc") -CHECK: DW_AT_type (0x0000000000000063) +CHECK: DW_AT_type (0x0000000000000063 CHECK: DW_AT_inline (DW_INL_inlined) CHECK: NULL @@ -100,20 +100,20 @@ CHECK: DW_AT_comp_dir ("/Inputs") CHECK: DW_AT_low_pc (0x0000000100000f90) CHECK: DW_TAG_variable CHECK: DW_AT_name ("val") -CHECK: DW_AT_type (cu + 0x003c) +CHECK: DW_AT_type (cu + 0x003c CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic3.c") CHECK: DW_AT_location (DW_OP_addr 0x100001004) CHECK: DW_TAG_volatile_type -CHECK: DW_AT_type (0x0000000000000063) +CHECK: DW_AT_type (0x0000000000000063 CHECK: DW_TAG_subprogram CHECK: DW_AT_name ("bar") -CHECK: DW_AT_type (0x0000000000000063) +CHECK: DW_AT_type (0x0000000000000063 CHECK: DW_AT_low_pc (0x0000000100000f90) CHECK: DW_AT_high_pc (0x0000000100000fb4) CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) CHECK: DW_TAG_formal_parameter CHECK: DW_AT_name ("arg") -CHECK: DW_AT_type (0x0000000000000063) +CHECK: DW_AT_type (0x0000000000000063 CHECK: DW_AT_location (0x00000025 CHECK: 0x0000000000000000 - 0x000000000000000f: DW_OP_reg5 RDI, DW_OP_piece 0x4 CHECK: 0x0000000000000019 - 0x000000000000001d: DW_OP_reg5 RDI, DW_OP_piece 0x4) @@ -129,7 +129,7 @@ CHECK: NULL CHECK: NULL CHECK: DW_TAG_subprogram CHECK: DW_AT_name ("inc") -CHECK: DW_AT_type (0x0000000000000063) +CHECK: DW_AT_type (0x0000000000000063 CHECK: NULL CHECK: .debug_loc contents: diff --git a/test/tools/dsymutil/X86/modules.m b/test/tools/dsymutil/X86/modules.m index 8f30d60f3e7..37e18b75b4b 100644 --- a/test/tools/dsymutil/X86/modules.m +++ b/test/tools/dsymutil/X86/modules.m @@ -61,7 +61,7 @@ struct PruneMeNot; // CHECK-NOT: DW_TAG // CHECK: 0x0[[BARTD:.*]]: DW_TAG_typedef // CHECK-NOT: DW_TAG -// CHECK: DW_AT_type [DW_FORM_ref_addr] (0x{{0*}}[[BAR]]) +// CHECK: DW_AT_type [DW_FORM_ref_addr] (0x{{0*}}[[BAR]] // CHECK: DW_TAG_structure_type // CHECK-NEXT: DW_AT_name{{.*}}"S" // CHECK-NOT: DW_TAG @@ -116,7 +116,7 @@ Bar odr_violation = { 42 }; // CHECK: DW_AT_type {{.*}}{0x{{0*}}[[PTR:.*]]} // // CHECK: 0x{{0*}}[[PTR]]: DW_TAG_pointer_type -// CHECK-NEXT DW_AT_type [DW_FORM_ref_addr] {0x{{0*}}[[INTERFACE]]) +// CHECK-NEXT DW_AT_type [DW_FORM_ref_addr] {0x{{0*}}[[INTERFACE]] extern int odr_violation; @import Foo; @@ -134,9 +134,9 @@ int main(int argc, char **argv) { // CHECK: DW_AT_name {{.*}}"odr_violation.c" // CHECK: DW_TAG_variable // CHECK: DW_AT_name {{.*}}"odr_violation" -// CHECK: DW_AT_type [DW_FORM_ref4] ({{.*}}{0x{{0*}}[[BAR2:.*]]}) +// CHECK: DW_AT_type [DW_FORM_ref4] ({{.*}}{0x{{0*}}[[BAR2:.*]]} // CHECK: 0x{{0*}}[[BAR2]]: DW_TAG_typedef -// CHECK: DW_AT_type [DW_FORM_ref4] ({{.*}}{0x{{0*}}[[BAR3:.*]]}) +// CHECK: DW_AT_type [DW_FORM_ref4] ({{.*}}{0x{{0*}}[[BAR3:.*]]} // CHECK: DW_AT_name {{.*}}"Bar" // CHECK: 0x{{0*}}[[BAR3]]: DW_TAG_structure_type // CHECK-NEXT: DW_AT_name {{.*}}"Bar" diff --git a/test/tools/dsymutil/X86/odr-member-functions.cpp b/test/tools/dsymutil/X86/odr-member-functions.cpp index fcb05a753b0..25c4f2a8eca 100644 --- a/test/tools/dsymutil/X86/odr-member-functions.cpp +++ b/test/tools/dsymutil/X86/odr-member-functions.cpp @@ -61,7 +61,7 @@ void foo() { // CHECK-NOT: DW_TAG // CHECK: DW_AT_name {{.*}}"s" // CHECK-NOT: DW_TAG -// CHECK: DW_AT_type {{.*}}[[S]]) +// CHECK: DW_AT_type {{.*}}[[S]] // CHECK: DW_TAG_inlined_subroutine // CHECK-NEXT: DW_AT_abstract_origin{{.*}}[[FOO_SUB]] // CHECK-NOT: DW_TAG |