llvm/llvm/test/tools/dsymutil/X86/objc.test

RUN: dsymutil --verify-dwarf=output -f -oso-prepend-path=%p/.. %p/../Inputs/objc.macho.x86_64 -o %t.d4
RUN: llvm-dwarfdump -apple-types -apple-objc %t.d4 | FileCheck %s

; Test DWARF 5 tables
RUN: dsymutil --verify-dwarf=output --accelerator='Dwarf' -f -oso-prepend-path=%p/.. %p/../Inputs/objc.macho.x86_64 -o %t.d5
RUN: llvm-dwarfdump -debug-names %t.d5 | FileCheck %s --check-prefix=D5

D5: String: {{.*}} "method1:"
D5: String: {{.*}} "method2:"
D5: String: {{.*}} "A"
D5: String: {{.*}} "-[A(Category) method2:]"
D5: String: {{.*}} "-[A method1:]"
D5: String: {{.*}} "-[Amethod2:]"

CHECK: .apple_types contents:
CHECK: String: 0x00000066 "A"
CHECK-NEXT: Data 0 [
CHECK-NEXT:   Atom[0]: 0x0000012d
CHECK-NEXT:   Atom[1]: 0x0013 (DW_TAG_structure_type)
CHECK-NEXT:   Atom[2]: 0x02
CHECK-NEXT:   Atom[3]: 0x0b87b15a
CHECK-NEXT: ]

CHECK: .apple_objc contents:
CHECK-NEXT: Header {
CHECK-NEXT:   Magic: 0x48415348
CHECK-NEXT:   Version: 0x1
CHECK-NEXT:   Hash function: 0x0
CHECK-NEXT:   Bucket count: 2
CHECK-NEXT:   Hashes count: 2
CHECK-NEXT:   HeaderData length: 12
CHECK-NEXT: }
CHECK-NEXT: DIE offset base: 0
CHECK-NEXT: Number of atoms: 1
CHECK-NEXT: Size of each hash data entry: 4
CHECK-NEXT: Atoms [
CHECK-NEXT:   Atom 0 {
CHECK-NEXT:     Type: DW_ATOM_die_offset
CHECK-NEXT:     Form: DW_FORM_data4
CHECK-NEXT:   }
CHECK-NEXT: ]
CHECK-NEXT: Bucket 0 [
CHECK-NEXT:   Hash 0x2b5e6 [
CHECK-NEXT:     Name@0x38 {
CHECK-NEXT:       String: 0x00000066 "A"
CHECK-NEXT:       Data 0 [
CHECK-NEXT:         Atom[0]: 0x00000027
CHECK-NEXT:       ]
CHECK-NEXT:       Data 1 [
CHECK-NEXT:         Atom[0]: 0x0000007a
CHECK-NEXT:       ]
CHECK-NEXT:     }
CHECK-NEXT:   ]
CHECK-NEXT: ]
CHECK-NEXT: Bucket 1 [
CHECK-NEXT:   Hash 0x3fa0f4b5 [
CHECK-NEXT:     Name@0x4c {
CHECK-NEXT:       String: 0x0000009d "A(Category)"
CHECK-NEXT:       Data 0 [
CHECK-NEXT:         Atom[0]: 0x0000007a
CHECK-NEXT:       ]
CHECK-NEXT:     }
CHECK-NEXT:   ]
CHECK-NEXT: ]