xref: /llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-namespace-extension.test (revision f1fdfe6888f93b9f6dfb4689e1f3206de584ff5b)
1b61ac4a8Savl-llvm# RUN: yaml2obj %s -o %t.o
2b61ac4a8Savl-llvm# RUN: echo '---' > %t2.map
3b61ac4a8Savl-llvm# RUN: echo "triple:          'x86_64-apple-darwin'" >> %t2.map
4b61ac4a8Savl-llvm# RUN: echo 'objects:'  >> %t2.map
5b61ac4a8Savl-llvm# RUN: echo " -  filename: '%t.o'" >> %t2.map
6b61ac4a8Savl-llvm# RUN: echo '    symbols:' >> %t2.map
7b61ac4a8Savl-llvm# RUN: echo '      - { sym: __Z3foov, objAddr: 0x0, binAddr: 0x10000, size: 0x10 }' >> %t2.map
8b61ac4a8Savl-llvm# RUN: echo '...' >> %t2.map
9*f1fdfe68SAlexey Lapshin# RUN: dsymutil --linker=parallel -y %t2.map -f -o %t1.out
10b61ac4a8Savl-llvm# RUN: llvm-dwarfdump -a %t1.out | FileCheck %s
11b61ac4a8Savl-llvm
12b61ac4a8Savl-llvm## This test checks that DW_TAG_namespace with DW_AT_extension
13b61ac4a8Savl-llvm## attribute is joined with referenced namespace.
14b61ac4a8Savl-llvm
15b61ac4a8Savl-llvm# CHECK: file format Mach-O 64-bit x86-64
16b61ac4a8Savl-llvm# CHECK: 0x0000000b: DW_TAG_compile_unit
17b61ac4a8Savl-llvm# CHECK: DW_TAG_namespace
18b61ac4a8Savl-llvm# CHECK: DW_AT_name{{.*}}"parent_namespace"
19b61ac4a8Savl-llvm# CHECK-NOT: DW_TAG_namespace
20b61ac4a8Savl-llvm# CHECK: 0x[[INT:[0-9a-f]*]]: DW_TAG_base_type
21b61ac4a8Savl-llvm# CHECK: DW_AT_name{{.*}}"int"
22b61ac4a8Savl-llvm# CHECK: DW_TAG_compile_unit
23b61ac4a8Savl-llvm# CHECK: DW_TAG_variable
24b61ac4a8Savl-llvm# CHECK: DW_AT_type      (0x00000000[[INT]]
25b61ac4a8Savl-llvm
26b61ac4a8Savl-llvm--- !mach-o
27b61ac4a8Savl-llvmFileHeader:
28b61ac4a8Savl-llvm  magic:      0xFEEDFACF
29b61ac4a8Savl-llvm  cputype:    0x01000007
30b61ac4a8Savl-llvm  cpusubtype: 0x00000003
31b61ac4a8Savl-llvm  filetype:   0x00000001
32b61ac4a8Savl-llvm  ncmds:      2
33b61ac4a8Savl-llvm  sizeofcmds: 376
34b61ac4a8Savl-llvm  flags:      0x00002000
35b61ac4a8Savl-llvm  reserved:   0x00000000
36b61ac4a8Savl-llvmLoadCommands:
37b61ac4a8Savl-llvm  - cmd:      LC_SEGMENT_64
38b61ac4a8Savl-llvm    cmdsize:  232
39b61ac4a8Savl-llvm    segname:  ''
40b61ac4a8Savl-llvm    vmaddr:   0x00
41b61ac4a8Savl-llvm    vmsize:   0x300
42b61ac4a8Savl-llvm    fileoff:  0x300
43b61ac4a8Savl-llvm    filesize: 0x300
44b61ac4a8Savl-llvm    maxprot:  7
45b61ac4a8Savl-llvm    initprot: 7
46b61ac4a8Savl-llvm    nsects:   2
47b61ac4a8Savl-llvm    flags:    0
48b61ac4a8Savl-llvm    Sections:
49b61ac4a8Savl-llvm      - sectname:  __debug_abbrev
50b61ac4a8Savl-llvm        segname:   __DWARF
51b61ac4a8Savl-llvm        addr:      0x000000000000000F
52b61ac4a8Savl-llvm        size:      0x2A
53b61ac4a8Savl-llvm        offset:    0x00000380
54b61ac4a8Savl-llvm        align:     0
55b61ac4a8Savl-llvm        reloff:    0x00000000
56b61ac4a8Savl-llvm        nreloc:    0
57b61ac4a8Savl-llvm        flags:     0x02000000
58b61ac4a8Savl-llvm        reserved1: 0x00000000
59b61ac4a8Savl-llvm        reserved2: 0x00000000
60b61ac4a8Savl-llvm        reserved3: 0x00000000
61b61ac4a8Savl-llvm      - sectname:  __debug_info
62b61ac4a8Savl-llvm        segname:   __DWARF
63b61ac4a8Savl-llvm        addr:      0x000000000000100
64b61ac4a8Savl-llvm        size:      0x42
65b61ac4a8Savl-llvm        offset:    0x000003AA
66b61ac4a8Savl-llvm        align:     0
67b61ac4a8Savl-llvm        reloff:    0x00000600
68b61ac4a8Savl-llvm        nreloc:    1
69b61ac4a8Savl-llvm        flags:     0x02000000
70b61ac4a8Savl-llvm        reserved1: 0x00000000
71b61ac4a8Savl-llvm        reserved2: 0x00000000
72b61ac4a8Savl-llvm        reserved3: 0x00000000
73b61ac4a8Savl-llvm        relocations:
74b61ac4a8Savl-llvm          - address:         0x000001FC
75b61ac4a8Savl-llvm            symbolnum:       1
76b61ac4a8Savl-llvm            pcrel:           true
77b61ac4a8Savl-llvm            length:          3
78b61ac4a8Savl-llvm            extern:          false
79b61ac4a8Savl-llvm            type:            0
80b61ac4a8Savl-llvm            scattered:       false
81b61ac4a8Savl-llvm            value:           0
82b61ac4a8Savl-llvm  - cmd:             LC_SYMTAB
83b61ac4a8Savl-llvm    cmdsize:         24
84b61ac4a8Savl-llvm    symoff:          0x700
85b61ac4a8Savl-llvm    nsyms:           1
86b61ac4a8Savl-llvm    stroff:          0x710
87b61ac4a8Savl-llvm    strsize:         10
88b61ac4a8Savl-llvmLinkEditData:
89b61ac4a8Savl-llvm  NameList:
90b61ac4a8Savl-llvm    - n_strx:          1
91b61ac4a8Savl-llvm      n_type:          0x0F
92b61ac4a8Savl-llvm      n_sect:          1
93b61ac4a8Savl-llvm      n_desc:          0
94b61ac4a8Savl-llvm      n_value:         0
95b61ac4a8Savl-llvm  StringTable:
96b61ac4a8Savl-llvm    - ''
97b61ac4a8Savl-llvm    - '__Z3foov'
98b61ac4a8Savl-llvm    - ''
99b61ac4a8Savl-llvmDWARF:
100b61ac4a8Savl-llvm  debug_abbrev:
101b61ac4a8Savl-llvm    - Table:
102b61ac4a8Savl-llvm      - Tag:      DW_TAG_compile_unit
103b61ac4a8Savl-llvm        Children: DW_CHILDREN_yes
104b61ac4a8Savl-llvm        Attributes:
105b61ac4a8Savl-llvm          - Attribute: DW_AT_producer
106b61ac4a8Savl-llvm            Form:      DW_FORM_string
107b61ac4a8Savl-llvm          - Attribute: DW_AT_language
108b61ac4a8Savl-llvm            Form:      DW_FORM_data2
109b61ac4a8Savl-llvm      - Tag:      DW_TAG_namespace
110b61ac4a8Savl-llvm        Children: DW_CHILDREN_yes
111b61ac4a8Savl-llvm        Attributes:
112b61ac4a8Savl-llvm          - Attribute: DW_AT_name
113b61ac4a8Savl-llvm            Form:      DW_FORM_string
114b61ac4a8Savl-llvm      - Tag:      DW_TAG_namespace
115b61ac4a8Savl-llvm        Children: DW_CHILDREN_yes
116b61ac4a8Savl-llvm        Attributes:
117b61ac4a8Savl-llvm          - Attribute: DW_AT_extension
118b61ac4a8Savl-llvm            Form:      DW_FORM_ref_addr
119b61ac4a8Savl-llvm      - Tag:      DW_TAG_base_type
120b61ac4a8Savl-llvm        Children: DW_CHILDREN_no
121b61ac4a8Savl-llvm        Attributes:
122b61ac4a8Savl-llvm          - Attribute: DW_AT_name
123b61ac4a8Savl-llvm            Form:      DW_FORM_string
124b61ac4a8Savl-llvm      - Tag:      DW_TAG_variable
125b61ac4a8Savl-llvm        Children: DW_CHILDREN_no
126b61ac4a8Savl-llvm        Attributes:
127b61ac4a8Savl-llvm          - Attribute: DW_AT_name
128b61ac4a8Savl-llvm            Form:      DW_FORM_string
129b61ac4a8Savl-llvm          - Attribute: DW_AT_const_value
130b61ac4a8Savl-llvm            Form:      DW_FORM_data4
131b61ac4a8Savl-llvm          - Attribute: DW_AT_type
132b61ac4a8Savl-llvm            Form:      DW_FORM_ref_addr
133b61ac4a8Savl-llvm  debug_info:
134b61ac4a8Savl-llvm    - Version: 4
135b61ac4a8Savl-llvm      Entries:
136b61ac4a8Savl-llvm        - AbbrCode: 1
137b61ac4a8Savl-llvm          Values:
138b61ac4a8Savl-llvm            - CStr: by_hand
139b61ac4a8Savl-llvm            - Value:  0x04
140b61ac4a8Savl-llvm        - AbbrCode: 2
141b61ac4a8Savl-llvm          Values:
142b61ac4a8Savl-llvm            - CStr: parent_namespace
143b61ac4a8Savl-llvm        - AbbrCode: 3
144b61ac4a8Savl-llvm          Values:
145b61ac4a8Savl-llvm            - Value:  0x00000016
146b61ac4a8Savl-llvm        - AbbrCode: 4
147b61ac4a8Savl-llvm          Values:
148b61ac4a8Savl-llvm            - CStr: int
149b61ac4a8Savl-llvm        - AbbrCode: 0
150b61ac4a8Savl-llvm        - AbbrCode: 0
151b61ac4a8Savl-llvm        - AbbrCode: 5
152b61ac4a8Savl-llvm          Values:
153b61ac4a8Savl-llvm            - CStr: var
154b61ac4a8Savl-llvm            - Value:  0x000000FF
155b61ac4a8Savl-llvm            - Value:  0x0000002d
156b61ac4a8Savl-llvm        - AbbrCode: 0
157b61ac4a8Savl-llvm...
158