llvm/llvm/test/DebugInfo/symbolize-paths.s

# REQUIRES: x86-registered-target

# RUN: llvm-mc -filetype=obj -triple=x86_64 -dwarf-version=4 %s -o %t.o
# RUN: llvm-symbolizer --obj=%t.o --functions=none 0 1 | FileCheck %s
# RUN: llvm-mc -filetype=obj -triple=x86_64 -dwarf-version=5 %s -o %t.o
# RUN: llvm-symbolizer --obj=%t.o --functions=none 0 1 | FileCheck %s

# Absolute include-dirs should not have comp-dir prepended
# CHECK: /absolute{{/|\\}}1.cc:1:0
# Relative include-dirs should have comp-dir prepended	
# CHECK: /comp_dir{{/|\\}}relative{{/|\\}}2.cc:2:1

.Lfunc_begin0:
  .file 1 "/absolute" "1.cc"
  .file 2 "relative" "2.cc"
  .loc 1 1 0                 # 1.cc:1:0
  nop
  .loc 2 2 1                 # 2.cc:2:1
  nop
  .loc 1 1 1 prologue_end    # 1.cc:1:1
.Lfunc_end0:

.section .debug_abbrev,"",@progbits
  .byte 1     # Abbreviation Code
  .byte 17    # DW_TAG_compile_unit
  .byte 1     # DW_children_yes
  .byte 16    # DW_AT_stmt_list
  .byte 23    # DW_FROM_sec_offset
  .byte 17    # DW_AT_low_pc
  .byte 1     # DW_FORM_addr
  .byte 18    # DW_AT_high_pc
  .byte 6     # DW_FORM_data4
  .byte 27    # DW_AT_comp_dir
  .byte 8     # DW_FORM_string	
  .byte 0     # EOM(1)
  .byte 0     # EOM(2)

  .byte 2     # Abbreviation Code
  .byte 46    # DW_TAG_subprogram
  .byte 0     # DW_children_no
  .byte 3     # DW_AT_name
  .byte 8     # DW_FORM_string
  .byte 17    # DW_AT_low_pc
  .byte 1     # DW_FORM_addr
  .byte 18    # DW_AT_high_pc
  .byte 6     # DW_FORM_data4
  .byte 27    # DW_AT_comp_dir
  .byte 8     # DW_FORM_string	
  .byte 0     # EOM(1)
  .byte 0     # EOM(2)

  .byte 0     # EOM(3)

.section .debug_info,"",@progbits
.Lcu_begin0:
  .long .Lcu_end0-.Lcu_begin0-4 # Length of Unit
  .short 5                      # DWARF version number
  .byte 1                       # DWARF Unit Type
  .byte 8                       # Address Size (in bytes)
  .long .debug_abbrev           # Offset Into Abbrev.
  .byte 1                       # Abbrev [1]
  .long 0                       # DW_AT_stmt_list
  .quad 0                       # DW_AT_low_pc
  .long 2                       # DW_AT_high_pc
  .asciz "/comp_dir"            # DW_AT_comp_dir	
  .byte 2                       # Abbrev [2] DW_TAG_subprogram
  .asciz "1.c"                  # DW_AT_name
  .quad 0                       # DW_AT_low_pc
  .long 2                       # DW_AT_high_pc
  .asciz "/comp_dir"            # DW_AT_comp_dir	
  .byte 0
.Lcu_end0: