xref: /llvm-project/llvm/test/DebugInfo/X86/DW_OP_call_ref_dwarf64.s (revision befbc99a7f092df5868b5ff0c6e46f41236cb1af)
1*befbc99aSFangrui Song# RUN: llvm-mc -triple x86_64 %s -filetype=obj -o %t.o
2*befbc99aSFangrui Song# RUN: llvm-dwarfdump -debug-info %t.o | FileCheck %s
3*befbc99aSFangrui Song# RUN: llvm-dwarfdump -verify %t.o | FileCheck %s --check-prefix=VERIFY
4*befbc99aSFangrui Song
5*befbc99aSFangrui Song# CHECK: DW_TAG_variable
6*befbc99aSFangrui Song# CHECK-NEXT: DW_AT_location (DW_OP_call_ref 0x1100223344)
7*befbc99aSFangrui Song
8*befbc99aSFangrui Song# VERIFY-NOT: error: DIE contains invalid DWARF expression:
9*befbc99aSFangrui Song# VERIFY: No errors.
10*befbc99aSFangrui Song
11*befbc99aSFangrui Song    .section .debug_abbrev,"",@progbits
12*befbc99aSFangrui Song    .uleb128 1                      # Abbreviation Code
13*befbc99aSFangrui Song    .uleb128 17                     # DW_TAG_compile_unit
14*befbc99aSFangrui Song    .byte 1                         # DW_CHILDREN_yes
15*befbc99aSFangrui Song    .byte 0                         # EOM(1)
16*befbc99aSFangrui Song    .byte 0                         # EOM(2)
17*befbc99aSFangrui Song    .uleb128 5                      # Abbreviation Code
18*befbc99aSFangrui Song    .uleb128 52                     # DW_TAG_variable
19*befbc99aSFangrui Song    .byte 0                         # DW_CHILDREN_no
20*befbc99aSFangrui Song    .uleb128 2                      # DW_AT_location
21*befbc99aSFangrui Song    .uleb128 24                     # DW_FORM_exprloc
22*befbc99aSFangrui Song    .byte 0                         # EOM(1)
23*befbc99aSFangrui Song    .byte 0                         # EOM(2)
24*befbc99aSFangrui Song    .byte 0                         # EOM(3)
25*befbc99aSFangrui Song
26*befbc99aSFangrui Song    .section .debug_info,"",@progbits
27*befbc99aSFangrui Song    .long 0xffffffff                # DWARF64 mark
28*befbc99aSFangrui Song    .quad .Lcu_end-.Lcu_start       # Length of Unit
29*befbc99aSFangrui Song.Lcu_start:
30*befbc99aSFangrui Song    .short 5                        # DWARF version number
31*befbc99aSFangrui Song    .byte 1                         # DW_UT_compile
32*befbc99aSFangrui Song    .byte 8                         # Address Size
33*befbc99aSFangrui Song    .quad .debug_abbrev             # Offset Into Abbrev. Section
34*befbc99aSFangrui Song    .uleb128 1                      # Abbrev [1] DW_TAG_compile_unit
35*befbc99aSFangrui Song    .uleb128 5                      # Abbrev [5] DW_TAG_variable
36*befbc99aSFangrui Song    .byte .Lloc_end-.Lloc_begin     # DW_AT_location
37*befbc99aSFangrui Song.Lloc_begin:
38*befbc99aSFangrui Song    .byte 154                       # DW_OP_call_ref
39*befbc99aSFangrui Song    .quad 0x1100223344              # Offset
40*befbc99aSFangrui Song.Lloc_end:
41*befbc99aSFangrui Song    .byte 0                         # End Of Children Mark
42*befbc99aSFangrui Song.Lcu_end:
43