brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.7 KiB · 99cc6d5 Raw
382 lines · plain
1# RUN: yaml2obj %s -o %t.o2# RUN: echo '---' > %t2.map3# RUN: echo "triple:          'x86_64-apple-darwin'" >> %t2.map4# RUN: echo 'objects:'  >> %t2.map5# RUN: echo " -  filename: '%t.o'" >> %t2.map6# RUN: echo '    symbols:' >> %t2.map7# RUN: echo '      - { sym: __Z3foov, objAddr: 0x0, binAddr: 0x10000, size: 0x10 }' >> %t2.map8# RUN: echo '...' >> %t2.map9# RUN: dsymutil --linker=parallel -y %t2.map -f -o %t1.out10# RUN: llvm-dwarfdump -a %t1.out | FileCheck %s11 12## This test checks debug info for the case when one compilation unit13## contains forward declaration of the type and another compilation unit14## contains definition for that type. The result should have type table15## containing definition for that type and corresponding variables should16## properly reference that type.17 18## CU1:19##20## class class1;21## template<int> class class2;22##23## class1 *var1;24## class2<int> *var2;25##26## CU2:27##28## class class1 {29##   char member1;30##   float member2;31## };32##33## template<int> class class2 {34##   char member1;35## };36##37## class1 *var1;38## class2<int> *var2;39 40# CHECK: file format Mach-O 64-bit x86-6441# CHECK: .debug_info contents:42# CHECK: Compile Unit:43# CHECK: DW_TAG_compile_unit44# CHECK: DW_AT_name{{.*}}"__artificial_type_unit"45 46# CHECK: 0x[[CHAR:[0-9a-f]*]]: DW_TAG_base_type47# CHECK: DW_AT_name{{.*}}"char"48 49# CHECK: 0x[[FLOAT:[0-9a-f]*]]: DW_TAG_base_type50# CHECK: DW_AT_name{{.*}}"float"51 52# CHECK: 0x[[INT:[0-9a-f]*]]: DW_TAG_base_type53# CHECK: DW_AT_name{{.*}}"int"54 55# CHECK: 0x[[CLASS1:[0-9a-f]*]]: DW_TAG_class_type{{.*[[:space:]].*}}DW_AT_name{{.*}}"class1"56# CHECK: DW_TAG_member57# CHECK: DW_AT_type{{.*}}0x[[CHAR]] "char"58# CHECK: DW_AT_name{{.*}}"member1"59 60# CHECK: DW_TAG_member61# CHECK: DW_AT_type{{.*}}0x[[FLOAT]] "float"62# CHECK: DW_AT_name{{.*}}"member2"63 64# CHECK: 0x[[CLASS2:[0-9a-f]*]]: DW_TAG_class_type{{.*[[:space:]].*}}DW_AT_name{{.*}}"class2"65# CHECK: DW_TAG_template_type_parameter{{.*[[:space:]].*}}DW_AT_type{{.*}}0x[[INT]] "int"66# CHECK: DW_TAG_member67# CHECK: DW_AT_type{{.*}}0x[[CHAR]] "char"68# CHECK: DW_AT_name{{.*}}"member1"69 70# CHECK: 0x[[PTR_CLASS1:[0-9a-f]*]]: DW_TAG_pointer_type{{.*[[:space:]].*}}DW_AT_type{{.*}}0x[[CLASS1]] "class1"71 72# CHECK: 0x[[PTR_CLASS2:[0-9a-f]*]]: DW_TAG_pointer_type{{.*[[:space:]].*}}DW_AT_type{{.*}}0x[[CLASS2]] "class2<int>"73 74# CHECK: DW_TAG_compile_unit75# CHECK: DW_AT_name{{.*}}"CU1"76# CHECK: DW_TAG_variable77# CHECK: DW_AT_name{{.*}}"var1"78# CHECK: DW_AT_type{{.*}}0x{{.*}}[[PTR_CLASS1]] "class1 *"79# CHECK: DW_TAG_variable80# CHECK: DW_AT_name{{.*}}"var2"81# CHECK: DW_AT_type{{.*}}0x{{.*}}[[PTR_CLASS2]] "class2<int> *"82 83# CHECK: DW_TAG_compile_unit84# CHECK: DW_AT_name{{.*}}"CU2"85# CHECK: DW_TAG_variable86# CHECK: DW_AT_name{{.*}}"var1"87# CHECK: DW_AT_type{{.*}}0x{{.*}}[[PTR_CLASS1]] "class1 *"88# CHECK: DW_TAG_variable89# CHECK: DW_AT_name{{.*}}"var2"90# CHECK: DW_AT_type{{.*}}0x{{.*}}[[PTR_CLASS2]] "class2<int> *"91 92--- !mach-o93FileHeader:94  magic:      0xFEEDFACF95  cputype:    0x0100000796  cpusubtype: 0x0000000397  filetype:   0x0000000198  ncmds:      299  sizeofcmds: 376100  flags:      0x00002000101  reserved:   0x00000000102LoadCommands:103  - cmd:      LC_SEGMENT_64104    cmdsize:  232105    segname:  ''106    vmaddr:   0x00107    vmsize:   0x300108    fileoff:  0x300109    filesize: 0x300110    maxprot:  7111    initprot: 7112    nsects:   2113    flags:    0114    Sections:115      - sectname:  __debug_abbrev116        segname:   __DWARF117        addr:      0x000000000000000F118        size:      0x9c119        offset:    0x00000380120        align:     0121        reloff:    0x00000000122        nreloc:    0123        flags:     0x02000000124        reserved1: 0x00000000125        reserved2: 0x00000000126        reserved3: 0x00000000127      - sectname:  __debug_info128        segname:   __DWARF129        addr:      0x000000000000100130        size:      0xed131        offset:    0x0000041c132        align:     0133        reloff:    0x00000600134        nreloc:    1135        flags:     0x02000000136        reserved1: 0x00000000137        reserved2: 0x00000000138        reserved3: 0x00000000139        relocations:140          - address:         0x000001FC141            symbolnum:       1142            pcrel:           true143            length:          3144            extern:          false145            type:            0146            scattered:       false147            value:           0148  - cmd:             LC_SYMTAB149    cmdsize:         24150    symoff:          0x700151    nsyms:           1152    stroff:          0x710153    strsize:         10154LinkEditData:155  NameList:156    - n_strx:          1157      n_type:          0x0F158      n_sect:          1159      n_desc:          0160      n_value:         0161  StringTable:162    - ''163    - '__Z3foov'164    - ''165DWARF:166  debug_abbrev:167    - Table:168      - Tag:      DW_TAG_compile_unit169        Children: DW_CHILDREN_yes170        Attributes:171          - Attribute: DW_AT_producer172            Form:      DW_FORM_string173          - Attribute: DW_AT_language174            Form:      DW_FORM_data2175          - Attribute: DW_AT_name176            Form:      DW_FORM_string177      - Tag:      DW_TAG_class_type178        Children: DW_CHILDREN_yes179        Attributes:180          - Attribute: DW_AT_name181            Form:      DW_FORM_string182      - Tag:      DW_TAG_member183        Children: DW_CHILDREN_no184        Attributes:185          - Attribute: DW_AT_type186            Form:      DW_FORM_ref_addr187          - Attribute: DW_AT_name188            Form:      DW_FORM_string189      - Tag:      DW_TAG_class_type190        Children: DW_CHILDREN_no191        Attributes:192          - Attribute: DW_AT_name193            Form:      DW_FORM_string194          - Attribute: DW_AT_declaration195            Form:      DW_FORM_flag_present196      - Tag:      DW_TAG_class_type197        Children: DW_CHILDREN_yes198        Attributes:199          - Attribute: DW_AT_name200            Form:      DW_FORM_string201          - Attribute: DW_AT_declaration202            Form:      DW_FORM_flag_present203      - Tag:      DW_TAG_template_type_parameter204        Children: DW_CHILDREN_no205        Attributes:206          - Attribute: DW_AT_type207            Form:      DW_FORM_ref_addr208      - Tag:      DW_TAG_base_type209        Children: DW_CHILDREN_no210        Attributes:211          - Attribute: DW_AT_name212            Form:      DW_FORM_string213      - Tag:      DW_TAG_pointer_type214        Children: DW_CHILDREN_no215        Attributes:216          - Attribute: DW_AT_type217            Form:      DW_FORM_ref_addr218      - Tag:      DW_TAG_variable219        Children: DW_CHILDREN_no220        Attributes:221          - Attribute: DW_AT_name222            Form:      DW_FORM_string223          - Attribute: DW_AT_const_value224            Form:      DW_FORM_data4225          - Attribute: DW_AT_type226            Form:      DW_FORM_ref_addr227    - Table:228      - Tag:      DW_TAG_compile_unit229        Children: DW_CHILDREN_yes230        Attributes:231          - Attribute: DW_AT_producer232            Form:      DW_FORM_string233          - Attribute: DW_AT_language234            Form:      DW_FORM_data2235          - Attribute: DW_AT_name236            Form:      DW_FORM_string237      - Tag:      DW_TAG_class_type238        Children: DW_CHILDREN_yes239        Attributes:240          - Attribute: DW_AT_name241            Form:      DW_FORM_string242      - Tag:      DW_TAG_member243        Children: DW_CHILDREN_no244        Attributes:245          - Attribute: DW_AT_type246            Form:      DW_FORM_ref_addr247          - Attribute: DW_AT_name248            Form:      DW_FORM_string249      - Tag:      DW_TAG_class_type250        Children: DW_CHILDREN_no251        Attributes:252          - Attribute: DW_AT_name253            Form:      DW_FORM_string254          - Attribute: DW_AT_declaration255            Form:      DW_FORM_flag_present256      - Tag:      DW_TAG_class_type257        Children: DW_CHILDREN_yes258        Attributes:259          - Attribute: DW_AT_name260            Form:      DW_FORM_string261          - Attribute: DW_AT_declaration262            Form:      DW_FORM_flag_present263      - Tag:      DW_TAG_template_type_parameter264        Children: DW_CHILDREN_no265        Attributes:266          - Attribute: DW_AT_type267            Form:      DW_FORM_ref_addr268      - Tag:      DW_TAG_base_type269        Children: DW_CHILDREN_no270        Attributes:271          - Attribute: DW_AT_name272            Form:      DW_FORM_string273      - Tag:      DW_TAG_pointer_type274        Children: DW_CHILDREN_no275        Attributes:276          - Attribute: DW_AT_type277            Form:      DW_FORM_ref_addr278      - Tag:      DW_TAG_variable279        Children: DW_CHILDREN_no280        Attributes:281          - Attribute: DW_AT_name282            Form:      DW_FORM_string283          - Attribute: DW_AT_const_value284            Form:      DW_FORM_data4285          - Attribute: DW_AT_type286            Form:      DW_FORM_ref_addr287  debug_info:288    - Version: 4289      Entries:290        - AbbrCode: 1291          Values:292            - CStr: by_hand293            - Value:  0x04294            - CStr: CU1295        - AbbrCode: 4296          Values:297            - CStr: class1298        - AbbrCode: 5299          Values:300            - CStr: class2301        - AbbrCode: 6302          Values:303            - Value:  0x00000030304        - AbbrCode: 0305        - AbbrCode: 7306          Values:307            - CStr: int308        - AbbrCode: 8309          Values:310            - Value:  0x0000001a311        - AbbrCode: 8312          Values:313            - Value:  0x00000022314        - AbbrCode: 9315          Values:316            - CStr: var1317            - Value:  0x00000000318            - Value:  0x00000035319        - AbbrCode: 9320          Values:321            - CStr: var2322            - Value:  0x00000000323            - Value:  0x0000003a324        - AbbrCode: 0325    - Version: 4326      Entries:327        - AbbrCode: 1328          Values:329            - CStr: by_hand330            - Value:  0x04331            - CStr: CU2332        - AbbrCode: 2333          Values:334            - CStr: class1335        - AbbrCode: 3336          Values:337            - Value:  0x000000b9338            - CStr: member1339        - AbbrCode: 3340          Values:341            - Value:  0x000000bf342            - CStr: member2343        - AbbrCode: 0344        - AbbrCode: 2345          Values:346            - CStr: class2347        - AbbrCode: 6348          Values:349            - Value:  0x000000b4350        - AbbrCode: 3351          Values:352            - Value:  0x000000b9353            - CStr: member1354        - AbbrCode: 0355        - AbbrCode: 7356          Values:357            - CStr: int358        - AbbrCode: 7359          Values:360            - CStr: char361        - AbbrCode: 7362          Values:363            - CStr: float364        - AbbrCode: 8365          Values:366            - Value:  0x00000076367        - AbbrCode: 8368          Values:369            - Value:  0x00000099370        - AbbrCode: 9371          Values:372            - CStr: var1373            - Value:  0x00000000374            - Value:  0x000000c6375        - AbbrCode: 9376          Values:377            - CStr: var2378            - Value:  0x00000000379            - Value:  0x000000cb380        - AbbrCode: 0381...382