mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-23 13:02:52 +02:00
bc16c3ba43
This patch verifies the number of atoms, the validity of the form for each atom, as well as the validity of the hashdata. For hashdata, we're verifying that the hashdata offset is correct and that the offset in the .debug_info for each DIE in the hashdata is also valid. llvm-svn: 306735
71 lines
2.2 KiB
Plaintext
71 lines
2.2 KiB
Plaintext
RUN: llvm-dwarfdump %p/Inputs/dwarfdump-objc.x86_64.o | FileCheck %s
|
|
RUN: llvm-dwarfdump -verify %p/Inputs/dwarfdump-objc.x86_64.o | FileCheck %s --check-prefix=VERIFY
|
|
|
|
Gather some DIE indexes to verify the accelerator table contents.
|
|
CHECK: .debug_info contents
|
|
CHECK: [[TESTINTERFACE:0x[0-9a-f]*]]:{{.*}}DW_TAG_structure_type
|
|
CHECK-NOT: DW_TAG
|
|
CHECK: DW_AT_name{{.*}}"TestInterface"
|
|
CHECK: [[READONLY:0x[0-9a-f]*]]:{{.*}}DW_TAG_subprogram
|
|
CHECK-NOT: DW_TAG
|
|
CHECK: DW_AT_name{{.*}}"-[TestInterface ReadOnly]"
|
|
CHECK: [[ASSIGN:0x[0-9a-f]*]]:{{.*}}DW_TAG_subprogram
|
|
CHECK-NOT: DW_TAG
|
|
CHECK: DW_AT_name{{.*}}"-[TestInterface Assign]"
|
|
CHECK: [[SETASSIGN:0x[0-9a-f]*]]:{{.*}}DW_TAG_subprogram
|
|
CHECK-NOT: DW_TAG
|
|
CHECK: DW_AT_name{{.*}}"-[TestInterface setAssign:]"
|
|
|
|
|
|
Check that the section header is printed correclty.
|
|
CHECK: .apple_names contents:
|
|
CHECK: Magic = 0x48415348
|
|
CHECK: Version = 0x0001
|
|
CHECK: Hash function = 0x00000000
|
|
CHECK: Bucket count = 21
|
|
CHECK: Hashes count = 42
|
|
CHECK: HeaderData length = 12
|
|
CHECK: DIE offset base = 0
|
|
CHECK: Number of atoms = 1
|
|
CHECK: Atom[0] Type: DW_ATOM_die_offset Form: DW_FORM_data4
|
|
|
|
Check that the accelerators point to the right DIEs.
|
|
CHECK: Name:{{.*}}"-[TestInterface ReadOnly]"
|
|
CHECK-NOT: Name
|
|
CHECK: {Atom[0]: [[READONLY]]}
|
|
|
|
Check that empty buckets are handled correctly.
|
|
CHECK: Bucket[3]
|
|
CHECK: EMPTY
|
|
CHECK: Bucket[4]
|
|
|
|
Check that the accelerators point to the right DIEs.
|
|
CHECK: Name:{{.*}}"-[TestInterface Assign]"
|
|
CHECK-NOT: Name
|
|
CHECK: {Atom[0]: [[ASSIGN]]}
|
|
CHECK: Name:{{.*}}"-[TestInterface setAssign:]"
|
|
CHECK-NOT: Name
|
|
CHECK: {Atom[0]: [[SETASSIGN]]}
|
|
|
|
Check that types are referenced correctly.
|
|
CHECK: .apple_types contents:
|
|
CHECK: Name{{.*}}"TestInterface"
|
|
CHECK-NOT: Name
|
|
CHECK: {Atom[0]: [[TESTINTERFACE]]}
|
|
|
|
Check that an empty accelerator section is handled correctly.
|
|
CHECK: .apple_namespaces contents:
|
|
CHECK-NOT: Magic
|
|
|
|
Check ObjC specific accelerators.
|
|
CHECK: .apple_objc contents:
|
|
CHECK: Name{{.*}}"TestInterface"
|
|
CHECK-NOT: Name
|
|
CHECK: {Atom[0]: [[READONLY]]}
|
|
CHECK: {Atom[0]: [[ASSIGN]]}
|
|
CHECK: {Atom[0]: [[SETASSIGN]]}
|
|
|
|
Verify the debug info in the apple_names accelerator table.
|
|
VERIFY: Verifying .apple_names
|
|
VERIFY-NEXT: No errors.
|