reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    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
  133
  134
  135
  136
  137
  138
  139
  140
  141
  142
  143
  144
  145
  146
  147
  148
  149
  150
  151
  152
  153
  154
  155
  156
  157
  158
  159
  160
  161
  162
  163
  164
  165
  166
  167
  168
  169
  170
  171
  172
  173
  174
  175
  176
  177
  178
  179
  180
  181
  182
  183
  184
  185
  186
  187
  188
  189
  190
  191
  192
  193
  194
  195
  196
  197
  198
  199
  200
  201
  202
RUN: dsymutil -f -o - -oso-prepend-path=%p/.. %p/../Inputs/basic-lto-dw4.macho.x86_64 | llvm-dwarfdump -a - | FileCheck %s

CHECK: file format Mach-O 64-bit x86-64

CHECK: debug_info contents

CHECK:  Compile Unit: {{.*}} version = 0x0004
CHECK:  DW_TAG_compile_unit
CHECK:    DW_AT_producer ("clang version 3.7.0 ")
CHECK:    DW_AT_language (DW_LANG_C99)
CHECK:    DW_AT_name ("basic1.c")
CHECK:    DW_AT_stmt_list (0x00000000)
CHECK:    DW_AT_comp_dir ("/Inputs")
CHECK:    DW_AT_low_pc (0x0000000100000f40)
CHECK:    DW_AT_high_pc (0x0000000100000f4b)
CHECK:    DW_TAG_subprogram
CHECK:      DW_AT_low_pc (0x0000000100000f40)
CHECK:      DW_AT_high_pc (0x0000000100000f4b)
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_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_TAG_formal_parameter
CHECK:        DW_AT_location (DW_OP_reg4 RSI)
CHECK:        DW_AT_name ("argv")
CHECK:        DW_AT_type (0x00000060
CHECK:      NULL
CHECK:    DW_TAG_pointer_type
CHECK:       DW_AT_type (0x00000065
CHECK:    DW_TAG_pointer_type
CHECK:    DW_TAG_const_type
CHECK:    DW_TAG_base_type
CHECK:      DW_AT_name ("char")
CHECK:      DW_AT_encoding (DW_ATE_signed_char)
CHECK:      DW_AT_byte_size (0x01)
CHECK:    NULL

CHECK:  Compile Unit:{{.*}} version = 0x0004

CHECK:  DW_TAG_compile_unit
CHECK:    DW_AT_producer ("clang version 3.7.0 ")
CHECK:    DW_AT_language (DW_LANG_C99)
CHECK:    DW_AT_name ("basic2.c")
CHECK:    DW_AT_stmt_list (0x00000044)
CHECK:    DW_AT_low_pc (0x0000000100000f50)
CHECK:    DW_AT_high_pc (0x0000000100000f87)
CHECK:    DW_TAG_base_type
CHECK:      DW_AT_name ("int")
CHECK:    DW_TAG_variable
CHECK:      DW_AT_name ("baz")
CHECK:      DW_AT_location (DW_OP_addr 0x100001000)
CHECK:    DW_TAG_variable
CHECK:      DW_AT_name ("private_int")
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 (0x000000a1
CHECK:      DW_AT_inline (DW_INL_inlined)
CHECK:    DW_TAG_subprogram
CHECK:      DW_AT_low_pc (0x0000000100000f50)
CHECK:      DW_AT_high_pc (0x0000000100000f87)
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 (0x000000a1
CHECK:      DW_TAG_formal_parameter
CHECK:        DW_AT_location (0x00000000
CHECK:          [0x0000000100000f50, 0x0000000100000f5c): DW_OP_reg5 RDI, DW_OP_piece 0x4)
CHECK:        DW_AT_name ("arg")
CHECK:        DW_AT_type (0x000000a1
CHECK:      DW_TAG_inlined_subroutine
CHECK:        DW_AT_abstract_origin (0x000000d2 "inc")
CHECK:        DW_AT_low_pc (0x0000000100000f61)
CHECK:        DW_AT_high_pc (0x0000000100000f70)
CHECK:      NULL
CHECK:    NULL

CHECK:  Compile Unit: {{.*}} version = 0x0004

CHECK:  DW_TAG_compile_unit
CHECK:    DW_AT_producer ("clang version 3.7.0 ")
CHECK:    DW_AT_name ("basic3.c")
CHECK:    DW_AT_stmt_list (0x0000009a)
CHECK:    DW_AT_low_pc (0x0000000100000f90)
CHECK:    DW_AT_high_pc (0x0000000100000fb4)
CHECK:    DW_TAG_variable
CHECK:      DW_AT_name ("val")
CHECK:      DW_AT_decl_file ("/Inputs{{[/\\]}}basic3.c")
CHECK:      DW_AT_location (DW_OP_addr 0x100001004)
CHECK:    DW_TAG_volatile_type
CHECK:    DW_TAG_subprogram
CHECK:      DW_AT_name ("inc")
CHECK:      DW_AT_inline (DW_INL_inlined)
CHECK:    DW_TAG_subprogram
CHECK:      DW_AT_low_pc (0x0000000100000f90)
CHECK:      DW_AT_high_pc (0x0000000100000fb4)
CHECK:      DW_AT_frame_base (DW_OP_reg6 RBP)
CHECK:      DW_AT_name ("bar")
CHECK:      DW_TAG_formal_parameter
CHECK:        DW_AT_location (0x00000025
CHECK:          [0x0000000100000f90, 0x0000000100000f9f): DW_OP_reg5 RDI, DW_OP_piece 0x4
CHECK:          [0x0000000100000fa9, 0x0000000100000fad): DW_OP_reg5 RDI, DW_OP_piece 0x4)
CHECK:        DW_AT_name ("arg")
CHECK:      DW_TAG_inlined_subroutine
CHECK:        DW_AT_abstract_origin (0x0000015f "inc")
CHECK:        DW_AT_ranges (0x00000000
CHECK:           [0x0000000100000f94, 0x0000000100000f9a)
CHECK:           [0x0000000100000f9f, 0x0000000100000fa7))

CHECK:      NULL
CHECK:    NULL


CHECK: .debug_loc contents:
CHECK-NEXT: 0x00000000:
CHECK-NEXT:              [0x0000000000000000, 0x000000000000000c): DW_OP_reg5 RDI, DW_OP_piece 0x4
CHECK-NOT: :
CHECK:      0x00000025:
CHECK-NEXT:              [0x0000000000000000, 0x000000000000000f): DW_OP_reg5 RDI, DW_OP_piece 0x4
CHECK-NEXT:              [0x0000000000000019, 0x000000000000001d): DW_OP_reg5 RDI, DW_OP_piece 0x4


CHECK: .debug_aranges contents:
CHECK-NEXT: Address Range Header: length = 0x0000002c, version = 0x0002, cu_offset = 0x00000000, addr_size = 0x08, seg_size = 0x00
CHECK-NEXT: [0x0000000100000f40,  0x0000000100000f4b)
CHECK-NEXT: Address Range Header: length = 0x0000002c, version = 0x0002, cu_offset = 0x00000077, addr_size = 0x08, seg_size = 0x00
CHECK-NEXT: [0x0000000100000f50, 0x0000000100000f87)
CHECK-NEXT: Address Range Header: length = 0x0000002c, version = 0x0002, cu_offset = 0x0000011b, addr_size = 0x08, seg_size = 0x00
CHECK-NEXT: [0x0000000100000f90, 0x0000000100000fb4)

CHECK: .debug_line contents:
CHECK: file_names[  1]:
CHECK-NEXT: name: "basic1.c"
CHECK-NEXT: dir_index: 0
CHECK: Address            Line   Column File   ISA Discriminator Flags
CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- -------------
CHECK-NEXT: 0x0000000100000f40     26      0      1   0             0  is_stmt
CHECK-NEXT: 0x0000000100000f44     27     10      1   0             0  is_stmt prologue_end
CHECK-NEXT: 0x0000000100000f49     27      3      1   0             0
CHECK-NEXT: 0x0000000100000f4b     27      3      1   0             0  end_sequence

CHECK: file_names[  1]:
CHECK-NEXT: name: "basic2.c"
CHECK-NEXT: dir_index: 0
CHECK: Address            Line   Column File   ISA Discriminator Flags
CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- -------------
CHECK-NEXT: 0x0000000100000f50     19      0      1   0             0  is_stmt
CHECK-NEXT: 0x0000000100000f54     20     18      1   0             0  is_stmt prologue_end
CHECK-NEXT: 0x0000000100000f5a     20     17      1   0             0
CHECK-NEXT: 0x0000000100000f5c     20     10      1   0             0
CHECK-NEXT: 0x0000000100000f61     15     10      1   0             0  is_stmt
CHECK-NEXT: 0x0000000100000f70     20     23      1   0             0  is_stmt
CHECK-NEXT: 0x0000000100000f74     20     36      1   0             0
CHECK-NEXT: 0x0000000100000f83     20     31      1   0             0
CHECK-NEXT: 0x0000000100000f85     20      3      1   0             0
CHECK-NEXT: 0x0000000100000f87     20      3      1   0             0  end_sequence

CHECK: file_names[  1]:
CHECK-NEXT: name: "basic3.c"
CHECK-NEXT: dir_index: 0
CHECK: Address            Line   Column File   ISA Discriminator Flags
CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- -------------
CHECK-NEXT: 0x0000000100000f90     16      0      1   0             0  is_stmt
CHECK-NEXT: 0x0000000100000f94     12     10      1   0             0  is_stmt prologue_end
CHECK-NEXT: 0x0000000100000f9a     17      7      1   0             0  is_stmt
CHECK-NEXT: 0x0000000100000f9f     12     10      1   0             0  is_stmt
CHECK-NEXT: 0x0000000100000fa7     20      1      1   0             0  is_stmt
CHECK-NEXT: 0x0000000100000fa9     19     18      1   0             0  is_stmt
CHECK-NEXT: 0x0000000100000fab     19     10      1   0             0
CHECK-NEXT: 0x0000000100000fb2     20      1      1   0             0  is_stmt
CHECK-NEXT: 0x0000000100000fb4     20      1      1   0             0  is_stmt end_sequence

CHECK: .debug_pubnames contents:
CHECK-NEXT: length = 0x00000017 version = 0x0002 unit_offset = 0x00000000 unit_size = 0x00000077
CHECK-NEXT: Offset     Name
CHECK-NEXT: 0x0000002a "main"
CHECK-NEXT: length = 0x0000002e version = 0x0002 unit_offset = 0x00000077 unit_size = 0x000000a4
CHECK-NEXT: Offset     Name
CHECK-NEXT: 0x00000031 "baz"
CHECK-NEXT: 0x00000046 "private_int"
CHECK-NEXT: 0x00000067 "foo"
CHECK-NEXT: length = 0x0000001e version = 0x0002 unit_offset = 0x0000011b unit_size = 0x00000085
CHECK-NEXT: Offset     Name
CHECK-NEXT: 0x0000002a "val"
CHECK-NEXT: 0x00000050 "bar"

CHECK: .debug_pubtypes contents:
CHECK-NEXT: length = 0x00000017 version = 0x0002 unit_offset = 0x00000000 unit_size = 0x00000077
CHECK-NEXT: Offset     Name
CHECK-NEXT: 0x0000006f "char"
CHECK-NEXT: length = 0x00000016 version = 0x0002 unit_offset = 0x00000077 unit_size = 0x000000a4
CHECK-NEXT: Offset     Name
CHECK-NEXT: 0x0000002a "int"