summaryrefslogtreecommitdiffstats
path: root/llvm/test/DebugInfo/X86/dwarfdump-debug-loclists-error-cases2.s
blob: 48ae8d4db7556fd2c55bbb8810733ac3f7a4aae7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# RUN: llvm-mc -triple=x86_64-pc-linux -filetype=obj %s > %t
# RUN: llvm-dwarfdump %t | FileCheck %s

# CHECK:      DW_AT_name        ("x0")
# CHECK-NEXT: DW_AT_location    (0x0000000c
# CHECK-NEXT:    [0x0000000000000000,  0x0000000000000002): DW_OP_reg5 RDI
# CHECK-NEXT:    [0x0000000000000002,  0x0000000000000003): DW_OP_reg0 RAX)

# CHECK:      DW_AT_name        ("x1")
# CHECK-NEXT: DW_AT_location    (0xdeadbeef
# CHECK-NEXT:    error: unexpected end of data)

# CHECK:      DW_AT_name        ("x2")
# CHECK-NEXT: DW_AT_location    (0x00000025
# CHECK-NEXT:    error: unexpected end of data)


        .type   f,@function
f:                                      # @f
.Lfunc_begin0:
        movl    %edi, %eax
.Ltmp0:
        retq
.Ltmp1:
.Lfunc_end0:
        .size   f, .Lfunc_end0-f

        .section        .debug_str,"MS",@progbits,1
.Linfo_string0:
        .asciz  "Hand-written DWARF"
.Linfo_string3:
        .asciz  "f"
.Linfo_string4:
        .asciz  "int"
.Lx0:
        .asciz  "x0"
.Lx1:
        .asciz  "x1"
.Lx2:
        .asciz  "x2"

        .section        .debug_loclists,"",@progbits
        .long   .Ldebug_loclist_table_end0-.Ldebug_loclist_table_start0 # Length
.Ldebug_loclist_table_start0:
        .short  5                       # Version
        .byte   8                       # Address size
        .byte   0                       # Segment selector size
        .long   0                       # Offset entry count
.Lloclists_table_base0:
.Ldebug_loc0:
        .byte   8                       # DW_LLE_start_length
        .quad   .Lfunc_begin0-.Lfunc_begin0 #   starting offset
        .uleb128 .Ltmp0-.Lfunc_begin0   #   size
        .byte   1                       # Loc expr size
        .byte   85                      # super-register DW_OP_reg5
        .byte   8                       # DW_LLE_start_length
        .quad   .Ltmp0-.Lfunc_begin0    #   starting offset
        .uleb128 .Lfunc_end0-.Ltmp0     #   size
        .byte   1                       # Loc expr size
        .byte   80                      # super-register DW_OP_reg0
        .byte   0                       # DW_LLE_end_of_list
.Ldebug_loc2:
        .byte   8                       # DW_LLE_start_length
        .quad   .Lfunc_begin0-.Lfunc_begin0 #   starting offset
        .uleb128 .Ltmp0-.Lfunc_begin0   #   size
        .uleb128  0xdeadbeef              # Loc expr size
.Ldebug_loclist_table_end0:

        .section        .debug_abbrev,"",@progbits
        .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   0                       # EOM(1)
        .byte   0                       # EOM(2)
        .byte   2                       # Abbreviation Code
        .byte   46                      # DW_TAG_subprogram
        .byte   1                       # DW_CHILDREN_yes
        .byte   3                       # DW_AT_name
        .byte   14                      # DW_FORM_strp
        .byte   0                       # EOM(1)
        .byte   0                       # EOM(2)
        .byte   3                       # Abbreviation Code
        .byte   5                       # DW_TAG_formal_parameter
        .byte   0                       # DW_CHILDREN_no
        .byte   3                       # DW_AT_name
        .byte   14                      # DW_FORM_strp
        .byte   2                       # DW_AT_location
        .byte   23                      # DW_FORM_sec_offset
        .byte   0                       # EOM(1)
        .byte   0                       # EOM(2)
        .byte   4                       # 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
.Lcu_begin0:
        .long   .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
.Ldebug_info_start0:
        .short  5                       # DWARF version number
        .byte   1                       # DWARF Unit Type
        .byte   8                       # Address Size (in bytes)
        .long   .debug_abbrev           # Offset Into Abbrev. Section
        .byte   1                       # Abbrev [1] 0xb:0x50 DW_TAG_compile_unit
        .long   .Linfo_string0          # DW_AT_producer
        .short  12                      # DW_AT_language
        .byte   2                       # Abbrev [2] 0x2a:0x29 DW_TAG_subprogram
        .long   .Linfo_string3          # DW_AT_name
        .byte   3                       # Abbrev [3] DW_TAG_formal_parameter
        .long   .Lx0                    # DW_AT_name
        .long   .Ldebug_loc0            # DW_AT_location
        .byte   3                       # Abbrev [3] DW_TAG_formal_parameter
        .long   .Lx1                    # DW_AT_name
        .long   0xdeadbeef              # DW_AT_location
        .byte   3                       # Abbrev [3] DW_TAG_formal_parameter
        .long   .Lx2                    # DW_AT_name
        .long   .Ldebug_loc2            # DW_AT_location
        .byte   0                       # End Of Children Mark
        .byte   0                       # End Of Children Mark
.Ldebug_info_end0:
OpenPOWER on IntegriCloud