Imported Upstream version 5.18.0.167

Former-commit-id: 289509151e0fee68a1b591a20c9f109c3c789d3a
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-10-20 08:25:10 +00:00
parent e19d552987
commit b084638f15
28489 changed files with 184 additions and 3866856 deletions

View File

@ -1,49 +0,0 @@
# Test object with an artifically constructed type unit header to verify
# that the length field is correctly used to verify the validity of the
# type_offset field.
#
# To generate the test object:
# llvm-mc -triple x86_64-unknown-linux typeunit-header.s -filetype=obj \
# -o typeunit-header.elf-x86-64
#
# We only have an abbreviation for the type unit die which is all we need.
# Real type unit dies have quite different attributes of course, but we
# just need to demonstrate an issue with validating length, so we just give it
# a single visibility attribute.
.section .debug_abbrev,"",@progbits
.byte 0x01 # Abbrev code
.byte 0x41 # DW_TAG_type_unit
.byte 0x01 # DW_CHILDREN_yes
.byte 0x17 # DW_AT_visibility
.byte 0x0b # DW_FORM_data1
.byte 0x00 # EOM(1)
.byte 0x00 # EOM(2)
.byte 0x02 # Abbrev code
.byte 0x13 # DW_TAG_structure_type
.byte 0x00 # DW_CHILDREN_no (no members)
.byte 0x17 # DW_AT_visibility
.byte 0x0b # DW_FORM_data1
.byte 0x00 # EOM(1)
.byte 0x00 # EOM(2)
.byte 0x00 # EOM(3)
.section .debug_types,"",@progbits
# DWARF v4 Type unit header - DWARF32 format.
TU_4_32_start:
.long TU_4_32_end-TU_4_32_version # Length of Unit
TU_4_32_version:
.short 4 # DWARF version number
.long .debug_abbrev # Offset Into Abbrev. Section
.byte 8 # Address Size (in bytes)
.quad 0x0011223344556677 # Type Signature
.long TU_4_32_type-TU_4_32_start # Type offset
# The type-unit DIE, which has just a visibility attribute.
.byte 1 # Abbreviation code
.byte 1 # DW_VIS_local
# The type DIE, which also just has a one-byte visibility attribute.
TU_4_32_type:
.byte 2 # Abbreviation code
.byte 1 # DW_VIS_local
.byte 0 # NULL
.byte 0 # NULL
TU_4_32_end:

View File

@ -1,64 +0,0 @@
# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
# RUN: | not llvm-dwarfdump -verify - \
# RUN: | FileCheck %s
# CHECK: Verifying .apple_names...
# CHECK-NEXT: error: Bucket[0] has invalid hash index: 4294967294.
# CHECK-NEXT: error: Hash[0] has invalid HashData offset: 0x000000b4.
# CHECK-NEXT: error: .apple_names Bucket[1] Hash[1] = 0x0002b60f Str[0] = 0x0000005a DIE[0] = 0x00000001 is not a valid DIE offset for "j".
# This test is meant to verify that the -verify option
# in llvm-dwarfdump, correctly identifies
# an invalid hash index for bucket[0] in the .apple_names section,
# an invalid HashData offset for Hash[0], as well as
# an invalid DIE offset in the .debug_info section.
# We're reading an invalid DIE due to the incorrect interpretation of DW_FORM for the DIE.
# Instead of DW_FORM_data4 the Atom[0].form is: DW_FORM_flag_present.
.section __TEXT,__text,regular,pure_instructions
.file 1 "basic.c"
.comm _i,4,2 ## @i
.comm _j,4,2 ## @j
.section __DWARF,__debug_str,regular,debug
Linfo_string:
.asciz "Apple LLVM version 8.1.0 (clang-802.0.35)" ## string offset=0
.asciz "basic.c" ## string offset=42
.asciz "/Users/sgravani/Development/tests" ## string offset=50
.asciz "i" ## string offset=84
.asciz "int" ## string offset=86
.asciz "j" ## string offset=90
.section __DWARF,__debug_info,regular,debug
Lsection_info:
.section __DWARF,__apple_names,regular,debug
Lnames_begin:
.long 1212240712 ## Header Magic
.short 1 ## Header Version
.short 0 ## Header Hash Function
.long 2 ## Header Bucket Count
.long 2 ## Header Hash Count
.long 12 ## Header Data Length
.long 0 ## HeaderData Die Offset Base
.long 1 ## HeaderData Atom Count
.short 1 ## DW_ATOM_die_offset
.short 25 ## DW_FORM_data4 -- error: .apple_names Bucket[1] Hash[1] = 0x0002b60f Str[0] = 0x0000005a DIE[0] = 0x00000001 is not a valid DIE offset for "j".
.long -2 ## Bucket 0 -- error: Bucket[0] has invalid hash index: 4294967294.
.long 1 ## Bucket 1
.long 177678 ## Hash in Bucket 0
.long 177679 ## Hash in Bucket 1
.long Lsection_line ## Offset in Bucket 0 -- error: Hash[0] has invalid HashData offset: 0x000000b4.
.long LNames1-Lnames_begin ## Offset in Bucket 1
LNames0:
.long 84 ## i
.long 1 ## Num DIEs
.long 30
.long 0
LNames1:
.long 90 ## j
.long 1 ## Num DIEs
.long 58
.long 0
.subsections_via_symbols
.section __DWARF,__debug_line,regular,debug
Lsection_line:
Lline_table_start0:

View File

@ -1,58 +0,0 @@
# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
# RUN: | not llvm-dwarfdump -verify - \
# RUN: | FileCheck %s
# CHECK: Verifying .apple_names...
# CHECK-NEXT: error: Unsupported form: failed to read HashData.
# This test is meant to verify that the -verify option
# in llvm-dwarfdump, correctly identifies that Atom[0].form is unsupported.
# As a result, the hashdata cannot be read.
.section __TEXT,__text,regular,pure_instructions
.file 1 "basic.c"
.comm _i,4,2 ## @i
.comm _j,4,2 ## @j
.section __DWARF,__debug_str,regular,debug
Linfo_string:
.asciz "Apple LLVM version 8.1.0 (clang-802.0.35)" ## string offset=0
.asciz "basic.c" ## string offset=42
.asciz "/Users/sgravani/Development/tests" ## string offset=50
.asciz "i" ## string offset=84
.asciz "int" ## string offset=86
.asciz "j" ## string offset=90
.section __DWARF,__debug_info,regular,debug
Lsection_info:
.section __DWARF,__apple_names,regular,debug
Lnames_begin:
.long 1212240712 ## Header Magic
.short 1 ## Header Version
.short 0 ## Header Hash Function
.long 2 ## Header Bucket Count
.long 2 ## Header Hash Count
.long 12 ## Header Data Length
.long 0 ## HeaderData Die Offset Base
.long 1 ## HeaderData Atom Count
.short 1 ## DW_ATOM_die_offset
.short 400 ## DW_FORM_data4 -- error: unsupported form; failed to read HashData.
.long 0 ## Bucket 0
.long 1 ## Bucket 1
.long 177678 ## Hash in Bucket 0
.long 177679 ## Hash in Bucket 1
.long LNames0-Lnames_begin ## Offset in Bucket 0
.long LNames1-Lnames_begin ## Offset in Bucket 1
LNames0:
.long 84 ## i
.long 1 ## Num DIEs
.long 30
.long 0
LNames1:
.long 90 ## j
.long 1 ## Num DIEs
.long 58
.long 0
.subsections_via_symbols
.section __DWARF,__debug_line,regular,debug
Lsection_line:
Lline_table_start0:

View File

@ -1,59 +0,0 @@
# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
# RUN: | not llvm-dwarfdump -verify - \
# RUN: | FileCheck %s
# CHECK: Verifying .apple_names...
# CHECK-NEXT: error: No atoms: failed to read HashData.
# This test is meant to verify that the -verify option
# in llvm-dwarfdump, correctly identifies that there is not Atom.
# As a result, the hashdata cannot be read.
.section __TEXT,__text,regular,pure_instructions
.file 1 "basic.c"
.comm _i,4,2 ## @i
.comm _j,4,2 ## @j
.section __DWARF,__debug_str,regular,debug
Linfo_string:
.asciz "Apple LLVM version 8.1.0 (clang-802.0.35)" ## string offset=0
.asciz "basic.c" ## string offset=42
.asciz "/Users/sgravani/Development/tests" ## string offset=50
.asciz "i" ## string offset=84
.asciz "int" ## string offset=86
.asciz "j" ## string offset=90
.section __DWARF,__debug_info,regular,debug
Lsection_info:
.section __DWARF,__apple_names,regular,debug
Lnames_begin:
.long 1212240712 ## Header Magic
.short 1 ## Header Version
.short 0 ## Header Hash Function
.long 2 ## Header Bucket Count
.long 2 ## Header Hash Count
.long 12 ## Header Data Length
.long 0 ## HeaderData Die Offset Base
.long 0 ## HeaderData Atom Count -- error: no atoms; failed to read HashData.
.short 1 ## DW_ATOM_die_offset
.short 6 ## DW_FORM_data4
.long 0 ## Bucket 0
.long 1 ## Bucket 1
.long 177678 ## Hash in Bucket 0
.long 177679 ## Hash in Bucket 1
.long LNames0-Lnames_begin ## Offset in Bucket 0
.long LNames1-Lnames_begin ## Offset in Bucket 1
LNames0:
.long 84 ## i
.long 1 ## Num DIEs
.long 30
.long 0
LNames1:
.long 90 ## j
.long 1 ## Num DIEs
.long 58
.long 0
.subsections_via_symbols
.section __DWARF,__debug_line,regular,debug
Lsection_line:
Lline_table_start0:

View File

@ -1,128 +0,0 @@
# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
# RUN: | not llvm-dwarfdump -verify - \
# RUN: | FileCheck %s
# CHECK: Verifying .apple_types...
# CHECK-NEXT: error: Tag DW_TAG_ptr_to_member_type in accelerator table does not match Tag DW_TAG_base_type of DIE[0].
# This test is meant to verify that the -verify option
# in llvm-dwarfdump, correctly identifies an invalid DIE tag in .apple_types.
.section __TEXT,__text,regular,pure_instructions
.macosx_version_min 10, 12
.file 1 "basic.c"
.comm _i,4,2 ## @i
.section __DWARF,__debug_str,regular,debug
Linfo_string:
.asciz "clang version 6.0.0 (trunk 309427) (llvm/trunk 309432)" ## string offset=0
.asciz "basic.c" ## string offset=55
.asciz "/Users/sgravani/Development/tests" ## string offset=63
.asciz "i" ## string offset=97
.asciz "int" ## string offset=99
.section __DWARF,__debug_abbrev,regular,debug
Lsection_abbrev:
.byte 1 ## Abbreviation Code
.byte 17 ## DW_TAG_compile_unit
.byte 1 ## DW_CHILDREN_yes
.byte 37 ## DW_AT_producer
.byte 14 ## DW_FORM_strp
.byte 19 ## DW_AT_language
.byte 5 ## DW_FORM_data2
.byte 3 ## DW_AT_name
.byte 14 ## DW_FORM_strp
.byte 16 ## DW_AT_stmt_list
.byte 23 ## DW_FORM_sec_offset
.byte 27 ## DW_AT_comp_dir
.byte 14 ## DW_FORM_strp
.byte 0 ## EOM(1)
.byte 0 ## EOM(2)
.byte 2 ## Abbreviation Code
.byte 52 ## DW_TAG_variable
.byte 0 ## DW_CHILDREN_no
.byte 3 ## DW_AT_name
.byte 14 ## DW_FORM_strp
.byte 73 ## DW_AT_type
.byte 19 ## DW_FORM_ref4
.byte 63 ## DW_AT_external
.byte 25 ## DW_FORM_flag_present
.byte 58 ## DW_AT_decl_file
.byte 11 ## DW_FORM_data1
.byte 59 ## DW_AT_decl_line
.byte 11 ## DW_FORM_data1
.byte 2 ## DW_AT_location
.byte 24 ## DW_FORM_exprloc
.byte 0 ## EOM(1)
.byte 0 ## EOM(2)
.byte 3 ## Abbreviation Code
.byte 36 ## DW_TAG_base_type
.byte 0 ## DW_CHILDREN_no
.byte 3 ## DW_AT_name
.byte 14 ## DW_FORM_strp
.byte 62 ## DW_AT_encoding
.byte 11 ## DW_FORM_data1
.byte 11 ## DW_AT_byte_size
.byte 11 ## DW_FORM_data1
.byte 0 ## EOM(1)
.byte 0 ## EOM(2)
.byte 0 ## EOM(3)
.section __DWARF,__debug_info,regular,debug
Lsection_info:
Lcu_begin0:
.long 56 ## Length of Unit
.short 5 ## DWARF version number
.byte 1 ## DWARF Unit Type
.byte 8 ## Address Size (in bytes)
Lset0 = Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section
.long Lset0
.byte 1 ## Abbrev [1] 0xc:0x30 DW_TAG_compile_unit
.long 0 ## DW_AT_producer
.short 12 ## DW_AT_language
.long 55 ## DW_AT_name
Lset1 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list
.long Lset1
.long 63 ## DW_AT_comp_dir
.byte 2 ## Abbrev [2] 0x1f:0x15 DW_TAG_variable
.long 97 ## DW_AT_name
.long 52 ## DW_AT_type
## DW_AT_external
.byte 1 ## DW_AT_decl_file
.byte 1 ## DW_AT_decl_line
.byte 9 ## DW_AT_location
.byte 3
.quad _i
.byte 3 ## Abbrev [3] 0x34:0x7 DW_TAG_base_type
.long 99 ## DW_AT_name
.byte 5 ## DW_AT_encoding
.byte 4 ## DW_AT_byte_size
.byte 0 ## End Of Children Mark
.section __DWARF,__apple_types,regular,debug
Ltypes_begin:
.long 1212240712 ## Header Magic
.short 1 ## Header Version
.short 0 ## Header Hash Function
.long 1 ## Header Bucket Count
.long 1 ## Header Hash Count
.long 20 ## Header Data Length
.long 0 ## HeaderData Die Offset Base
.long 3 ## HeaderData Atom Count
.short 1 ## DW_ATOM_die_offset
.short 6 ## DW_FORM_data4
.short 3 ## DW_ATOM_die_tag
.short 5 ## DW_FORM_data2
.short 4 ## DW_ATOM_type_flags
.short 11 ## DW_FORM_data1
.long 0 ## Bucket 0
.long 193495088 ## Hash in Bucket 0
.long Ltypes0-Ltypes_begin ## Offset in Bucket 0
Ltypes0:
.long 99 ## int
.long 1 ## Num DIEs
.long 52
.short 31 ## error: Tag DW_TAG_ptr_to_member_type in accelerator table does not match Tag DW_TAG_base_type of DIE[0].
.byte 0
.long 0
.subsections_via_symbols
.section __DWARF,__debug_line,regular,debug
Lsection_line:
Lline_table_start0:

View File

@ -1,18 +0,0 @@
RUN: llvm-dwarfdump --debug-info %S/../../dsymutil/Inputs/libfat-test.a \
RUN: | FileCheck %s
CHECK: libfat-test.a(x86_64)(fat-test.o): file format Mach-O 64-bit x86-64
CHECK: .debug_info contents:
CHECK: libfat-test.a(i386)(fat-test.o): file format Mach-O 32-bit i386
CHECK: .debug_info contents:
RUN: llvm-dwarfdump --debug-info %S/../../dsymutil/Inputs/libfat-test.a \
RUN: --arch=i386 | FileCheck %s --check-prefix=I386
I386-NOT: 64-bit
I386: file format Mach-O 32-bit i386
I386-NOT: 64-bit
RUN: llvm-dwarfdump --debug-info %S/../../dsymutil/Inputs/libfat-test.a \
RUN: --arch=i386 --arch=x86_64 | FileCheck %s
RUN: llvm-dwarfdump --debug-info %S/../../dsymutil/Inputs/libfat-test.a \
RUN: --arch=7 | FileCheck %s --check-prefix=I386

View File

@ -1,233 +0,0 @@
# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
# RUN: | llvm-dwarfdump --debug-info --debug-line - \
# RUN: | FileCheck %s
# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
# RUN: | llvm-dwarfdump --debug-info --debug-line - -o %t
# RUN: cat %t | FileCheck %s
# CHECK-NOT: .debug_abbrev contents:
#
# CHECK: .debug_info contents:
# CHECK: DW_TAG_compile_unit
# CHECK-NOT: DW_FORM
# CHECK: DW_AT_name ("brief.c")
# CHECK: DW_AT_name ("main")
# CHECK: DW_AT_name ("int")
# CHECK-NOT: debug_str
# CHECK-NOT: DW_AT_type {{.*}} =>
# CHECK: Address Line Column File ISA Discriminator Flags
# CHECK-NEXT:------------------ ------ ------ ------ --- ------------- -------------
# CHECK-NEXT:0x0000000000000000 1 0 1 0 0 is_stmt
# CHECK-NEXT:0x0000000000000006 1 12 1 0 0 is_stmt prologue_end
# CHECK-NEXT:0x0000000000000008 1 12 1 0 0 is_stmt end_sequence
# CHECK-NOT: {{.*}} contents:
# This test is meant to verify that without specifying -verbose DW_FORMs and
# abbreviation codes are hidden from .debug_info section. Furthermore it
# verifies that it also hides .debug_str and die reference offsets into the CU
# and that the .debug_line table is printed rather than the opcodes.
.section __TEXT,__text,regular,pure_instructions
.macosx_version_min 10, 12
.globl _main ## -- Begin function main
.p2align 4, 0x90
_main: ## @main
Lfunc_begin0:
.file 1 "brief.c"
.loc 1 1 0 ## brief.c:1:0
.cfi_startproc
## %bb.0: ## %entry
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
xorl %eax, %eax
Ltmp0:
.loc 1 1 12 prologue_end ## brief.c:1:12
popq %rbp
retq
Ltmp1:
Lfunc_end0:
.cfi_endproc
## -- End function
.section __DWARF,__debug_str,regular,debug
Linfo_string:
.asciz "clang version 6.0.0 (trunk 311115) (llvm/trunk 311188)" ## string offset=0
.asciz "brief.c" ## string offset=55
.asciz "/private/tmp" ## string offset=63
.asciz "main" ## string offset=76
.asciz "int" ## string offset=81
.section __DWARF,__debug_abbrev,regular,debug
Lsection_abbrev:
.byte 1 ## Abbreviation Code
.byte 17 ## DW_TAG_compile_unit
.byte 1 ## DW_CHILDREN_yes
.byte 37 ## DW_AT_producer
.byte 14 ## DW_FORM_strp
.byte 19 ## DW_AT_language
.byte 5 ## DW_FORM_data2
.byte 3 ## DW_AT_name
.byte 14 ## DW_FORM_strp
.byte 16 ## DW_AT_stmt_list
.byte 23 ## DW_FORM_sec_offset
.byte 27 ## DW_AT_comp_dir
.byte 14 ## DW_FORM_strp
.byte 17 ## DW_AT_low_pc
.byte 1 ## DW_FORM_addr
.byte 18 ## DW_AT_high_pc
.byte 6 ## DW_FORM_data4
.byte 0 ## EOM(1)
.byte 0 ## EOM(2)
.byte 2 ## Abbreviation Code
.byte 46 ## DW_TAG_subprogram
.byte 0 ## DW_CHILDREN_no
.byte 17 ## DW_AT_low_pc
.byte 1 ## DW_FORM_addr
.byte 18 ## DW_AT_high_pc
.byte 6 ## DW_FORM_data4
.byte 64 ## DW_AT_frame_base
.byte 24 ## DW_FORM_exprloc
.byte 3 ## DW_AT_name
.byte 14 ## DW_FORM_strp
.byte 58 ## DW_AT_decl_file
.byte 11 ## DW_FORM_data1
.byte 59 ## DW_AT_decl_line
.byte 11 ## DW_FORM_data1
.byte 73 ## DW_AT_type
.byte 19 ## DW_FORM_ref4
.byte 63 ## DW_AT_external
.byte 25 ## DW_FORM_flag_present
.byte 0 ## EOM(1)
.byte 0 ## EOM(2)
.byte 3 ## Abbreviation Code
.byte 36 ## DW_TAG_base_type
.byte 0 ## DW_CHILDREN_no
.byte 3 ## DW_AT_name
.byte 14 ## DW_FORM_strp
.byte 62 ## DW_AT_encoding
.byte 11 ## DW_FORM_data1
.byte 11 ## DW_AT_byte_size
.byte 11 ## DW_FORM_data1
.byte 0 ## EOM(1)
.byte 0 ## EOM(2)
.byte 0 ## EOM(3)
.section __DWARF,__debug_info,regular,debug
Lsection_info:
Lcu_begin0:
.long 71 ## Length of Unit
.short 4 ## DWARF version number
Lset0 = Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section
.long Lset0
.byte 8 ## Address Size (in bytes)
.byte 1 ## Abbrev [1] 0xb:0x40 DW_TAG_compile_unit
.long 0 ## DW_AT_producer
.short 12 ## DW_AT_language
.long 55 ## DW_AT_name
Lset1 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list
.long Lset1
.long 63 ## DW_AT_comp_dir
.quad Lfunc_begin0 ## DW_AT_low_pc
Lset2 = Lfunc_end0-Lfunc_begin0 ## DW_AT_high_pc
.long Lset2
.byte 2 ## Abbrev [2] 0x2a:0x19 DW_TAG_subprogram
.quad Lfunc_begin0 ## DW_AT_low_pc
Lset3 = Lfunc_end0-Lfunc_begin0 ## DW_AT_high_pc
.long Lset3
.byte 1 ## DW_AT_frame_base
.byte 86
.long 76 ## DW_AT_name
.byte 1 ## DW_AT_decl_file
.byte 1 ## DW_AT_decl_line
.long 67 ## DW_AT_type
## DW_AT_external
.byte 3 ## Abbrev [3] 0x43:0x7 DW_TAG_base_type
.long 81 ## DW_AT_name
.byte 5 ## DW_AT_encoding
.byte 4 ## DW_AT_byte_size
.byte 0 ## End Of Children Mark
.section __DWARF,__debug_ranges,regular,debug
Ldebug_range:
.section __DWARF,__debug_macinfo,regular,debug
Ldebug_macinfo:
Lcu_macro_begin0:
.byte 0 ## End Of Macro List Mark
.section __DWARF,__apple_names,regular,debug
Lnames_begin:
.long 1212240712 ## Header Magic
.short 1 ## Header Version
.short 0 ## Header Hash Function
.long 1 ## Header Bucket Count
.long 1 ## Header Hash Count
.long 12 ## Header Data Length
.long 0 ## HeaderData Die Offset Base
.long 1 ## HeaderData Atom Count
.short 1 ## DW_ATOM_die_offset
.short 6 ## DW_FORM_data4
.long 0 ## Bucket 0
.long 2090499946 ## Hash in Bucket 0
.long LNames0-Lnames_begin ## Offset in Bucket 0
LNames0:
.long 76 ## main
.long 1 ## Num DIEs
.long 42
.long 0
.section __DWARF,__apple_objc,regular,debug
Lobjc_begin:
.long 1212240712 ## Header Magic
.short 1 ## Header Version
.short 0 ## Header Hash Function
.long 1 ## Header Bucket Count
.long 0 ## Header Hash Count
.long 12 ## Header Data Length
.long 0 ## HeaderData Die Offset Base
.long 1 ## HeaderData Atom Count
.short 1 ## DW_ATOM_die_offset
.short 6 ## DW_FORM_data4
.long -1 ## Bucket 0
.section __DWARF,__apple_namespac,regular,debug
Lnamespac_begin:
.long 1212240712 ## Header Magic
.short 1 ## Header Version
.short 0 ## Header Hash Function
.long 1 ## Header Bucket Count
.long 0 ## Header Hash Count
.long 12 ## Header Data Length
.long 0 ## HeaderData Die Offset Base
.long 1 ## HeaderData Atom Count
.short 1 ## DW_ATOM_die_offset
.short 6 ## DW_FORM_data4
.long -1 ## Bucket 0
.section __DWARF,__apple_types,regular,debug
Ltypes_begin:
.long 1212240712 ## Header Magic
.short 1 ## Header Version
.short 0 ## Header Hash Function
.long 1 ## Header Bucket Count
.long 1 ## Header Hash Count
.long 20 ## Header Data Length
.long 0 ## HeaderData Die Offset Base
.long 3 ## HeaderData Atom Count
.short 1 ## DW_ATOM_die_offset
.short 6 ## DW_FORM_data4
.short 3 ## DW_ATOM_die_tag
.short 5 ## DW_FORM_data2
.short 4 ## DW_ATOM_type_flags
.short 11 ## DW_FORM_data1
.long 0 ## Bucket 0
.long 193495088 ## Hash in Bucket 0
.long Ltypes0-Ltypes_begin ## Offset in Bucket 0
Ltypes0:
.long 81 ## int
.long 1 ## Num DIEs
.long 67
.short 36
.byte 0
.long 0
.subsections_via_symbols
.section __DWARF,__debug_line,regular,debug
Lsection_line:
Lline_table_start0:

View File

@ -1,15 +0,0 @@
# RUN: llvm-mc %s -filetype=obj -triple=i686-pc-linux -o %t
# RUN: llvm-dwarfdump -v %t | FileCheck %s
# CHECK: .eh_frame contents:
# CHECK: 00000018 00000010 0000001c FDE cie=0000001c pc=00000000...00000000
# CHECK-NEXT: DW_CFA_GNU_args_size: +16
# CHECK-NEXT: DW_CFA_nop:
.text
.globl foo
.type foo,@function
foo:
.cfi_startproc
.cfi_escape 0x2e, 0x10
.cfi_endproc

View File

@ -1,14 +0,0 @@
RUN: llc -filetype=obj %p/../../dsymutil/Inputs/frame-dw2.ll -o - \
RUN: | llvm-dwarfdump -debug-frame=0x00000014 - | FileCheck %s
CHECK: .debug_frame contents:
CHECK-NEXT: 00000014 00000014 00000000 FDE cie=00000000 pc=00000000...0000001d
CHECK-NEXT: DW_CFA_advance_loc: 1
CHECK-NOT: pc
RUN: llvm-dwarfdump %p/../../dsymutil/Inputs/basic1.macho.x86_64.o \
RUN: -eh-frame=0x00000018 | FileCheck %s --check-prefix=EH
EH: .eh_frame contents:
EH-NEXT: 00000018 00000024 0000001c FDE cie=0000001c pc=fffffd00...fffffd24
EH-NEXT: DW_CFA_advance_loc: 1
EH-NOT: pc
EH-NOT: CIE

View File

@ -1,53 +0,0 @@
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -debug-info=0x0000000b - | FileCheck %s
CHECK: .debug_info contents:
CHECK: 0x0000000b: DW_TAG_compile_unit
CHECK: DW_AT_name
CHECK-NOT: {{:}}
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -debug-info=0 - \
RUN: | FileCheck --allow-empty --check-prefix=EMPTY %s
EMPTY-NOT: DW_TAG
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -debug-info=0x0000000b -c - \
RUN: | FileCheck %s --check-prefix=CHILDREN
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -debug-info=0x0000000b --show-children - \
RUN: | FileCheck %s --check-prefix=CHILDREN
CHILDREN: .debug_info contents:
CHILDREN: 0x0000000b: DW_TAG_compile_unit
CHILDREN: DW_TAG_subprogram
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -debug-info=0x0000000b -c -r 0 - \
RUN: | FileCheck %s
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -debug-info=0x0000000b -c -r 1 - \
RUN: | FileCheck %s --check-prefix=CHILDREN
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -debug-info=0x0000000b -c -recurse-depth 0 - \
RUN: | FileCheck %s
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -debug-info=0x0000000b -c -recurse-depth 1 - \
RUN: | FileCheck %s --check-prefix=CHILDREN
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -debug-info=0x00000043 --show-parents - \
RUN: | FileCheck %s --check-prefix=PARENTS
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -debug-info=0x00000043 -p - \
RUN: | FileCheck %s --check-prefix=PARENTS
PARENTS: .debug_info contents:
PARENTS: 0x0000000b:{{ }}DW_TAG_compile_unit
PARENTS: DW_AT_name
PARENTS-NOT: {{:}}
PARENTS: 0x00000043:{{ }}DW_TAG_base_type
PARENTS: DW_AT_name
PARENTS-NOT: {{:}}

View File

@ -1,28 +0,0 @@
RUN: llvm-dwarfdump %S/../../dsymutil/Inputs/basic-lto-dw4.macho.x86_64.o \
RUN: -debug-line=0x0 | FileCheck %s --check-prefix=CHECK-A
CHECK-A: debug_line[0x00000000]
CHECK-A: Address Line Column File ISA Discriminator Flags
CHECK-A-NET: ------------------ ------ ------ ------ --- ------------- -------------
CHECK-A-NET: 0x0000000000000000 26 0 1 0 0 is_stmt
CHECK-A-NET: 0x0000000000000004 27 10 1 0 0 is_stmt prologue_end
CHECK-A-NET: 0x0000000000000009 27 3 1 0 0
CHECK-A-NET: 0x0000000000000074 27 3 1 0 0 end_sequence
CHECK-A-NOT: debug_line[0x0000009a]
RUN: llvm-dwarfdump %S/../../dsymutil/Inputs/basic-lto-dw4.macho.x86_64.o \
RUN: -debug-line=0x9a | FileCheck %s --check-prefix=CHECK-B
CHECK-B-NOT: debug_line[0x00000000]
CHECK-B: debug_line[0x0000009a]
CHECK-B: Address Line Column File ISA Discriminator Flags
CHECK-B-NEXT: ------------------ ------ ------ ------ --- ------------- -------------
CHECK-B-NEXT: 0x0000000000000050 16 0 1 0 0 is_stmt
CHECK-B-NEXT: 0x0000000000000054 12 10 1 0 0 is_stmt prologue_end
CHECK-B-NEXT: 0x000000000000005a 17 7 1 0 0 is_stmt
CHECK-B-NEXT: 0x000000000000005f 12 10 1 0 0 is_stmt
CHECK-B-NEXT: 0x0000000000000067 20 1 1 0 0 is_stmt
CHECK-B-NEXT: 0x0000000000000069 19 18 1 0 0 is_stmt
CHECK-B-NEXT: 0x000000000000006b 19 10 1 0 0
CHECK-B-NEXT: 0x0000000000000072 20 1 1 0 0 is_stmt
CHECK-B-NEXT: 0x0000000000000074 20 1 1 0 0 is_stmt end_sequence

View File

@ -1,17 +0,0 @@
RUN: llvm-mc %S/debugloc.s -filetype obj -triple x86_64-linux-elf -o - \
RUN: | llvm-dwarfdump --debug-loc=0 - \
RUN: | FileCheck %s --check-prefix=CHECK-A
# CHECK-A: .debug_loc contents:
# CHECK-A: 0x00000000:
# CHECK-A-NEXT: 0x0000000000000000 - 0x0000000000000003: DW_OP_reg5 RDI
# CHECK-A-NEXT: 0x0000000000000003 - 0x0000000000000004: DW_OP_reg0 RAX
RUN: llvm-mc %S/debugloc.s -filetype obj -triple x86_64-linux-elf -o - \
RUN: | llvm-dwarfdump --debug-loc=0x36 - \
RUN: | FileCheck %s --check-prefix=CHECK-B
# CHECK-B: .debug_loc contents:
# CHECK-B: 0x00000036:
# CHECK-B-NEXT: 0x0000000000000010 - 0x0000000000000013: DW_OP_reg5 RDI
# CHECK-B-NEXT: 0x0000000000000013 - 0x0000000000000014: DW_OP_reg0 RAX

View File

@ -1,30 +0,0 @@
RUN: llvm-mc %p/Inputs/typeunit-header.s -filetype obj \
RUN: -triple x86_64-unknown-elf -o - \
RUN: | llvm-dwarfdump -debug-types=0x00000019 - | FileCheck %s
CHECK: .debug_types contents:
:CHECK-NOT: {{:}}
CHECK: 0x00000019: DW_TAG_structure_type
CHECK: DW_AT_visibility
CHECK-NOT: {{:}}
RUN: llvm-mc %p/Inputs/typeunit-header.s -filetype obj \
RUN: -triple x86_64-unknown-elf -o - \
RUN: | llvm-dwarfdump -c -debug-types=0x0000017 - \
RUN: | FileCheck %s --check-prefix=CHILDREN
CHILDREN: .debug_types contents:
CHILDREN: 0x00000017: DW_TAG_type_unit
CHILDREN: 0x00000019: DW_TAG_structure_type
CHECK-NOT: {{:}}
RUN: llvm-mc %p/Inputs/typeunit-header.s -filetype obj \
RUN: -triple x86_64-unknown-elf -o - \
RUN: | llvm-dwarfdump -c -r 0 -debug-types=0x0000017 - \
RUN: | FileCheck %s --check-prefix=ZERO-CHILDREN
ZERO-CHILDREN: .debug_types contents:
ZERO-CHILDREN: 0x00000017: DW_TAG_type_unit
ZERO-CHILDREN-NOT: DW_TAG_
RUN: llvm-mc %p/Inputs/typeunit-header.s -filetype obj \
RUN: -triple x86_64-unknown-elf -o - \
RUN: | llvm-dwarfdump -c -r 1 -debug-types=0x0000017 - \
RUN: | FileCheck %s --check-prefix=CHILDREN

View File

@ -1,277 +0,0 @@
# RUN: llvm-mc %s -filetype obj -triple x86_64-linux-elf -o - \
# RUN: | llvm-dwarfdump --debug-loc - \
# RUN: | FileCheck %s
# CHECK: .debug_loc contents:
# CHECK: 0x00000000:
# CHECK-NEXT: 0x0000000000000000 - 0x0000000000000003: DW_OP_reg5 RDI
# CHECK-NEXT: 0x0000000000000003 - 0x0000000000000004: DW_OP_reg0 RAX
# CHECK: 0x00000036:
# CHECK-NEXT: 0x0000000000000010 - 0x0000000000000013: DW_OP_reg5 RDI
# CHECK-NEXT: 0x0000000000000013 - 0x0000000000000014: DW_OP_reg0 RAX
# Source:
# int* foo(int* i) { return i; }
# int* bar(int* i) { return i; }
# Compile with:
# clang -g -O3 test.c -S -o debugloc.s
.text
.file "test.c"
.globl foo
.align 16, 0x90
.type foo,@function
foo: # @foo
.Lfunc_begin0:
.file 1 "test.c"
.loc 1 1 0 # test.c:1:0
.cfi_startproc
# %bb.0:
#DEBUG_VALUE: foo:i <- %RDI
.loc 1 2 3 prologue_end # test.c:2:3
movq %rdi, %rax
.Ltmp0:
#DEBUG_VALUE: foo:i <- %RAX
retq
.Ltmp1:
.Lfunc_end0:
.size foo, .Lfunc_end0-foo
.cfi_endproc
.globl bar
.align 16, 0x90
.type bar,@function
bar: # @bar
.Lfunc_begin1:
.loc 1 5 0 # test.c:5:0
.cfi_startproc
# %bb.0:
#DEBUG_VALUE: bar:i <- %RDI
.loc 1 6 3 prologue_end # test.c:6:3
movq %rdi, %rax
.Ltmp2:
#DEBUG_VALUE: bar:i <- %RAX
retq
.Ltmp3:
.Lfunc_end1:
.size bar, .Lfunc_end1-bar
.cfi_endproc
.section .debug_str,"MS",@progbits,1
.Linfo_string0:
.asciz "clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)" # string offset=0
.Linfo_string1:
.asciz "test.c" # string offset=54
.Linfo_string2:
.asciz "/tmp" # string offset=61
.Linfo_string3:
.asciz "foo" # string offset=66
.Linfo_string4:
.asciz "int" # string offset=70
.Linfo_string5:
.asciz "bar" # string offset=74
.Linfo_string6:
.asciz "i" # string offset=78
.section .debug_loc,"",@progbits
.Ldebug_loc0:
.quad .Lfunc_begin0-.Lfunc_begin0
.quad .Ltmp0-.Lfunc_begin0
.short 1 # Loc expr size
.byte 85 # DW_OP_reg5
.quad .Ltmp0-.Lfunc_begin0
.quad .Lfunc_end0-.Lfunc_begin0
.short 1 # Loc expr size
.byte 80 # DW_OP_reg0
.quad 0
.quad 0
.Ldebug_loc1:
.quad .Lfunc_begin1-.Lfunc_begin0
.quad .Ltmp2-.Lfunc_begin0
.short 1 # Loc expr size
.byte 85 # DW_OP_reg5
.quad .Ltmp2-.Lfunc_begin0
.quad .Lfunc_end1-.Lfunc_begin0
.short 1 # Loc expr size
.byte 80 # DW_OP_reg0
.quad 0
.quad 0
.section .debug_abbrev,"",@progbits
.Lsection_abbrev:
.byte 1 # Abbreviation Code
.byte 17 # DW_TAG_compile_unit
.byte 1 # DW_CHILDREN_yes
.byte 37 # DW_AT_producer
.byte 14 # DW_FORM_strp
.byte 19 # DW_AT_language
.byte 5 # DW_FORM_data2
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 16 # DW_AT_stmt_list
.byte 23 # DW_FORM_sec_offset
.byte 27 # DW_AT_comp_dir
.byte 14 # DW_FORM_strp
.ascii "\341\177" # DW_AT_APPLE_optimized
.byte 25 # DW_FORM_flag_present
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 2 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 1 # DW_FORM_addr
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.ascii "\347\177" # DW_AT_APPLE_omit_frame_ptr
.byte 25 # DW_FORM_flag_present
.byte 64 # DW_AT_frame_base
.byte 24 # DW_FORM_exprloc
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 39 # DW_AT_prototyped
.byte 25 # DW_FORM_flag_present
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 63 # DW_AT_external
.byte 25 # DW_FORM_flag_present
.ascii "\341\177" # DW_AT_APPLE_optimized
.byte 25 # DW_FORM_flag_present
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 3 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 23 # DW_FORM_sec_offset
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 4 # Abbreviation Code
.byte 15 # DW_TAG_pointer_type
.byte 0 # DW_CHILDREN_no
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 5 # Abbreviation Code
.byte 36 # DW_TAG_base_type
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 14 # DW_FORM_strp
.byte 62 # DW_AT_encoding
.byte 11 # DW_FORM_data1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 0 # EOM(3)
.section .debug_info,"",@progbits
.Lsection_info:
.Lcu_begin0:
.long 133 # Length of Unit
.short 4 # DWARF version number
.long .Lsection_abbrev # Offset Into Abbrev. Section
.byte 8 # Address Size (in bytes)
.byte 1 # Abbrev [1] 0xb:0x7e DW_TAG_compile_unit
.long .Linfo_string0 # DW_AT_producer
.short 12 # DW_AT_language
.long .Linfo_string1 # DW_AT_name
.long .Lline_table_start0 # DW_AT_stmt_list
.long .Linfo_string2 # DW_AT_comp_dir
# DW_AT_APPLE_optimized
.quad .Lfunc_begin0 # DW_AT_low_pc
.long .Lfunc_end1-.Lfunc_begin0 # DW_AT_high_pc
.byte 2 # Abbrev [2] 0x2a:0x29 DW_TAG_subprogram
.quad .Lfunc_begin0 # DW_AT_low_pc
.long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
# DW_AT_APPLE_omit_frame_ptr
.byte 1 # DW_AT_frame_base
.byte 87
.long .Linfo_string3 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 1 # DW_AT_decl_line
# DW_AT_prototyped
.long 124 # DW_AT_type
# DW_AT_external
# DW_AT_APPLE_optimized
.byte 3 # Abbrev [3] 0x43:0xf DW_TAG_formal_parameter
.long .Ldebug_loc0 # DW_AT_location
.long .Linfo_string6 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 1 # DW_AT_decl_line
.long 124 # DW_AT_type
.byte 0 # End Of Children Mark
.byte 2 # Abbrev [2] 0x53:0x29 DW_TAG_subprogram
.quad .Lfunc_begin1 # DW_AT_low_pc
.long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
# DW_AT_APPLE_omit_frame_ptr
.byte 1 # DW_AT_frame_base
.byte 87
.long .Linfo_string5 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 5 # DW_AT_decl_line
# DW_AT_prototyped
.long 124 # DW_AT_type
# DW_AT_external
# DW_AT_APPLE_optimized
.byte 3 # Abbrev [3] 0x6c:0xf DW_TAG_formal_parameter
.long .Ldebug_loc1 # DW_AT_location
.long .Linfo_string6 # DW_AT_name
.byte 1 # DW_AT_decl_file
.byte 5 # DW_AT_decl_line
.long 124 # DW_AT_type
.byte 0 # End Of Children Mark
.byte 4 # Abbrev [4] 0x7c:0x5 DW_TAG_pointer_type
.long 129 # DW_AT_type
.byte 5 # Abbrev [5] 0x81:0x7 DW_TAG_base_type
.long .Linfo_string4 # DW_AT_name
.byte 5 # DW_AT_encoding
.byte 4 # DW_AT_byte_size
.byte 0 # End Of Children Mark
.section .debug_ranges,"",@progbits
.Ldebug_range:
.section .debug_macinfo,"",@progbits
.byte 0 # End Of Macro List Mark
.section .debug_pubnames,"",@progbits
.long .LpubNames_end0-.LpubNames_begin0 # Length of Public Names Info
.LpubNames_begin0:
.short 2 # DWARF Version
.long .Lcu_begin0 # Offset of Compilation Unit Info
.long 137 # Compilation Unit Length
.long 42 # DIE offset
.asciz "foo" # External Name
.long 83 # DIE offset
.asciz "bar" # External Name
.long 0 # End Mark
.LpubNames_end0:
.section .debug_pubtypes,"",@progbits
.long .LpubTypes_end0-.LpubTypes_begin0 # Length of Public Types Info
.LpubTypes_begin0:
.short 2 # DWARF Version
.long .Lcu_begin0 # Offset of Compilation Unit Info
.long 137 # Compilation Unit Length
.long 129 # DIE offset
.asciz "int" # External Name
.long 0 # End Mark
.LpubTypes_end0:
.ident "clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)"
.section ".note.GNU-stack","",@progbits
.section .debug_line,"",@progbits
.Lline_table_start0:

View File

@ -1,6 +0,0 @@
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -diff - | FileCheck %s
CHECK: {{^DW_TAG_compile_unit}}
CHECK: DW_AT_stmt_list ()
CHECK: DW_AT_low_pc ()
CHECK: DW_AT_high_pc ()

View File

@ -1,21 +0,0 @@
# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \
# RUN: | not llvm-dwarfdump --verify --debug-info - \
# RUN: | FileCheck %s
# CHECK: error: Compilation unit without DIE.
.section __DWARF,__debug_info,regular,debug
.long 8 # CU length
.short 3 # Version
.long 0 # Abbrev offset
.byte 4 # AddrSize
.byte 1 # Abbrev 1
.long 7 # Unit lengthh...
.short 3
.long 0
.byte 4
.section __DWARF,__debug_abbrev,regular,debug
.byte 1 # Abbrev code
.byte 0x11 # TAG_compile_unit
.byte 0 # no children
.byte 0 # no attributes
.byte 0

View File

@ -1,44 +0,0 @@
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -find=not_there_at_all - | \
RUN: FileCheck %s --check-prefix=EMPTY --allow-empty
EMPTY: {{^$}}
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -find=main - | FileCheck %s
CHECK: .debug_info contents:
CHECK-NOT: {{:}}
CHECK: : DW_TAG_subprogram
CHECK-NOT: {{:}}
CHECK: DW_AT_name ("main")
CHECK-NOT: {{:}}
RUN: llvm-dwarfdump %S/../../dsymutil/Inputs/libfat-test.a \
RUN: -find=x86_64h_var -find=i386_var \
RUN: | FileCheck %s --check-prefix=MULTI
MULTI: .debug_info contents:
MULTI-NOT: {{: DW}}
MULTI: : DW_TAG_variable
MULTI-NOT: {{: DW}}
MULTI: DW_AT_name ("i386_var")
MULTI-NOT: {{: DW}}
MULTI: .debug_info contents:
MULTI: : DW_TAG_variable
MULTI-NOT: {{: DW}}
MULTI: DW_AT_name ("x86_64h_var")
MULTI-NOT: {{: DW}}
RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
RUN: | llvm-dwarfdump -find=int - | FileCheck %s --check-prefix=TYPES
TYPES: .debug_info contents:
TYPES-NOT: {{:}}
TYPES: : DW_TAG_base_type
TYPES-NOT: {{:}}
TYPES: DW_AT_name ("int")
TYPES-NOT: {{:}}
RUN: llvm-dwarfdump %S/../../dsymutil/Inputs/odr-anon-namespace/1.o \
RUN: -find="(anonymous namespace)" \
RUN: | FileCheck %s --check-prefix=NAMESPACE
NAMESPACE-NOT: {{: DW}}
NAMESPACE: 0x0000005b: DW_TAG_namespace
NAMESPACE-NOT: {{: DW}}

View File

@ -1,45 +0,0 @@
# This test verifies that DWARF form types are printed in verbose mode and when
# passing -F but not in brief mode. Additionally we check that the high pc is
# not printed as an address in verbose or show-form mode.
# RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
# RUN: | llvm-dwarfdump -v --debug-info - \
# RUN: | FileCheck %s
# RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
# RUN: | llvm-dwarfdump -F --debug-info - \
# RUN: | FileCheck %s
# RUN: llvm-mc %S/brief.s -filetype obj -triple x86_64-apple-darwin -o - \
# RUN: | llvm-dwarfdump --debug-info - \
# RUN: | FileCheck %s --check-prefix NO-FORM
# CHECK: DW_TAG_compile_unit
# CHECK: DW_AT_producer [DW_FORM_strp]
# CHECK: DW_AT_language [DW_FORM_data2]
# CHECK: DW_AT_name [DW_FORM_strp]
# CHECK: DW_AT_stmt_list [DW_FORM_sec_offset]
# CHECK: DW_AT_comp_dir [DW_FORM_strp]
# CHECK: DW_AT_low_pc [DW_FORM_addr]
# CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000008)
# CHECK: DW_TAG_subprogram
# CHECK: DW_AT_low_pc [DW_FORM_addr]
# CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000008)
# CHECK: DW_AT_frame_base [DW_FORM_exprloc]
# CHECK: DW_AT_name [DW_FORM_strp]
# CHECK: DW_AT_decl_file [DW_FORM_data1]
# CHECK: DW_AT_decl_line [DW_FORM_data1]
# CHECK: DW_AT_type [DW_FORM_ref4]
# CHECK: DW_AT_external [DW_FORM_flag_present]
# CHECK: DW_TAG_base_type
# CHECK: DW_AT_name [DW_FORM_strp]
# CHECK: DW_AT_encoding [DW_FORM_data1]
# CHECK: DW_AT_byte_size [DW_FORM_data1]
# NO-FORM-NOT: DW_FORM_
# NO-FORM: DW_AT_high_pc (0x0000000000000008)
# NO-FORM-NOT: DW_FORM_
# NO-FORM: DW_AT_high_pc (0x0000000000000008)
# NO-FORM-NOT: DW_FORM_

View File

@ -1,121 +0,0 @@
# RUN: llvm-mc %s -filetype obj -triple i686-pc-linux -o %t
# RUN: llvm-dwarfdump %t | FileCheck %s
# CHECK: DW_TAG_subprogram
# CHECK-NEXT: DW_AT_external (true)
# CHECK-NEXT: DW_AT_name ("fn4")
# CHECK-NEXT: DW_AT_linkage_name ("test")
# CHECK-NEXT: DW_AT_low_pc (0x0000000000000000)
# CHECK-NEXT: DW_AT_high_pc (0x0000000000000000)
# CHECK-NEXT: DW_AT_frame_base (DW_OP_call_frame_cfa)
# CHECK-NEXT: DW_AT_GNU_all_call_sites (true)
# CHECK: DW_TAG_GNU_call_site
# CHECK-NEXT: DW_AT_low_pc (0x0000000000000000)
# CHECK-NEXT: DW_AT_abstract_origin (cu + 0x0021 "test")
# CHECK: DW_TAG_GNU_call_site_parameter
# CHECK-NEXT: DW_AT_location (DW_OP_reg0 EAX)
# CHECK-NEXT: DW_AT_GNU_call_site_value (DW_OP_addr 0x0)
.section .debug_info,"",@progbits
.long 0x47
.value 0x4
.long 0
.byte 0x4
.uleb128 0x1 # DW_TAG_compile_unit [1]
.long 0
.byte 0x0
.long 0
.long 0
.long 0
.long 0
.uleb128 0xe # DW_TAG_subprogram [14]
.string "fn4"
.long 0
.long 0
.long 0
.uleb128 0x1 # DW_AT_GNU_all_call_sites
.byte 0x9c
.uleb128 0x12 # DW_TAG_GNU_call_site [18]
.long 0x0
.long 0x21
.uleb128 0x13 # DW_TAG_GNU_call_site_parameter [19]
.uleb128 0x1
.byte 0x50
.uleb128 0x5
.byte 0x3
.long X
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.section .debug_abbrev,"",@progbits
.uleb128 0x1
.uleb128 0x11 # DW_TAG_compile_unit, DW_CHILDREN_yes
.byte 0x1
.uleb128 0x25 # DW_AT_producer, DW_FORM_strp
.uleb128 0xe
.uleb128 0x13 # DW_AT_language, DW_FORM_data1
.uleb128 0xb
.uleb128 0x3 # DW_AT_name, DW_FORM_strp
.uleb128 0xe
.uleb128 0x1b # DW_AT_comp_dir, DW_FORM_strp
.uleb128 0xe
.uleb128 0x11 # DW_AT_low_pc, DW_FORM_addr
.uleb128 0x1
.uleb128 0x12 # DW_AT_high_pc, DW_FORM_data4
.uleb128 0x6
.byte 0
.byte 0
.uleb128 0xe # [14]
.uleb128 0x2e # DW_TAG_subprogram, DW_CHILDREN_yes
.byte 0x1
.uleb128 0x3f # DW_AT_external, DW_FORM_flag_present
.uleb128 0x19
.uleb128 0x3 # DW_AT_name, DW_FORM_string
.uleb128 0x8
.uleb128 0x6e # DW_AT_linkage_name, DW_FORM_strp
.uleb128 0xe
.uleb128 0x11 # DW_AT_low_pc, DW_FORM_addr
.uleb128 0x1
.uleb128 0x12 # DW_AT_high_pc, DW_FORM_data4
.uleb128 0x6
.uleb128 0x40 # DW_AT_frame_base, DW_FORM_exprloc
.uleb128 0x18
.uleb128 0x2117 # DW_AT_GNU_all_call_sites, DW_FORM_flag_present
.uleb128 0x19
.byte 0
.byte 0
.uleb128 0x12 # [18]
.uleb128 0x4109 # DW_TAG_GNU_call_site, DW_CHILDREN_yes
.byte 0x1
.uleb128 0x11 # DW_AT_low_pc, DW_FORM_addr
.uleb128 0x1
.uleb128 0x31 # DW_AT_abstract_origin, DW_FORM_ref4
.uleb128 0x13
.byte 0
.byte 0
.uleb128 0x13 # [19]
.uleb128 0x410a # DW_TAG_GNU_call_site_parameter, DW_CHILDREN_no
.byte 0
.uleb128 0x2 # DW_AT_location, DW_FORM_exprloc
.uleb128 0x18
.uleb128 0x2111 # DW_AT_GNU_call_site_value, DW_FORM_exprloc
.uleb128 0x18
.byte 0
.byte 0
.byte 0
.section .debug_str,"MS",@progbits,1
.string "test"

Some files were not shown because too many files have changed in this diff Show More