1RUN: llvm-dwarfdump -v %p/Inputs/dwarfdump-objc.x86_64.o | FileCheck %s 2RUN: not llvm-dwarfdump -verify %p/Inputs/dwarfdump-objc.x86_64.o | FileCheck %s --check-prefix=VERIFY 3 4Gather some DIE indexes to verify the accelerator table contents. 5CHECK: .debug_info contents 6CHECK: [[TESTINTERFACE:0x[0-9a-f]*]]:{{.*}}DW_TAG_structure_type 7CHECK-NOT: DW_TAG 8CHECK: DW_AT_name{{.*}}"TestInterface" 9CHECK: [[READONLY:0x[0-9a-f]*]]:{{.*}}DW_TAG_subprogram 10CHECK-NOT: DW_TAG 11CHECK: DW_AT_name{{.*}}"-[TestInterface ReadOnly]" 12CHECK: [[ASSIGN:0x[0-9a-f]*]]:{{.*}}DW_TAG_subprogram 13CHECK-NOT: DW_TAG 14CHECK: DW_AT_name{{.*}}"-[TestInterface Assign]" 15CHECK: [[SETASSIGN:0x[0-9a-f]*]]:{{.*}}DW_TAG_subprogram 16CHECK-NOT: DW_TAG 17CHECK: DW_AT_name{{.*}}"-[TestInterface setAssign:]" 18 19 20Check that the section header is printed correclty. 21CHECK: .apple_names contents: 22CHECK: Magic: 0x48415348 23CHECK: Version: 0x1 24CHECK: Hash function: 0x0 25CHECK: Bucket count: 21 26CHECK: Hashes count: 42 27CHECK: HeaderData length: 12 28CHECK: DIE offset base: 0 29CHECK: Number of atoms: 1 30 31CHECK: Atom 0 { 32CHECK-NEXT: Type: DW_ATOM_die_offset 33CHECK-NEXT: Form: DW_FORM_data4 34 35Check that the accelerators point to the right DIEs. 36CHECK: String:{{.*}}"-[TestInterface ReadOnly]" 37CHECK-NOT: String 38CHECK: Atom[0]: [[READONLY]] 39 40Check that empty buckets are handled correctly. 41CHECK: Bucket 3 42CHECK: EMPTY 43CHECK: Bucket 4 44 45Check that the accelerators point to the right DIEs. 46CHECK: String:{{.*}}"-[TestInterface Assign]" 47CHECK-NOT: String 48CHECK: Atom[0]: [[ASSIGN]] 49CHECK: String:{{.*}}"-[TestInterface setAssign:]" 50CHECK-NOT: String 51CHECK: Atom[0]: [[SETASSIGN]] 52 53Check that types are referenced correctly. 54CHECK: .apple_types contents: 55CHECK: String:{{.*}}"TestInterface" 56CHECK-NOT: String 57CHECK: Atom[0]: [[TESTINTERFACE]] 58 59Check that an empty accelerator section is handled correctly. 60CHECK: .apple_namespaces contents: 61CHECK-NOT: Magic 62 63Check ObjC specific accelerators. 64CHECK: .apple_objc contents: 65CHECK: String{{.*}}"TestInterface" 66CHECK-NOT: String 67CHECK: Atom[0]: [[READONLY]] 68CHECK: Atom[0]: [[ASSIGN]] 69CHECK: Atom[0]: [[SETASSIGN]] 70 71Verify the debug info in the apple_names accelerator table. 72VERIFY: Verifying .apple_names... 73VERIFY-NEXT: Verifying .apple_types... 74VERIFY-NEXT: Verifying .apple_namespaces... 75VERIFY-NEXT: error: Section too small: cannot read buckets and hashes. 76VERIFY-NEXT: Verifying .apple_objc... 77VERIFY-NEXT: Errors detected. 78