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