[PATCH] D13360: [llvm-objdump] Teach -d about AArch64 mapping symbols
[oota-llvm.git] / test / DebugInfo / dwarfdump-accel.test
index e0205f6348fbc03920e94f70de7e60dc76975756..7c1838829562f29845d700b2fd9fa9bab7ee2ca9 100644 (file)
@@ -1,5 +1,22 @@
 RUN: llvm-dwarfdump %p/Inputs/dwarfdump-objc.x86_64.o | FileCheck %s
 
+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
@@ -10,145 +27,37 @@ 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: Bucket[0]
-CHECK:   Hash = 0x248050fe Offset = 0x000000fc
-CHECK:     Name: 00000165 "-[TestInterface Retain]"
-CHECK:     Data[0] => {Atom[0]: 0x0000024f} 
-CHECK: Bucket[1]
-CHECK:   Hash = 0x926d42cc Offset = 0x0000010c
-CHECK:     Name: 00000057 "ReadWrite"
-CHECK:     Data[0] => {Atom[0]: 0x000001cb} 
+
+Check that empty buckets are handled correctly.
 CHECK: Bucket[2]
 CHECK:   EMPTY
 CHECK: Bucket[3]
-CHECK:   Hash = 0x99254268 Offset = 0x0000011c
-CHECK:     Name: 0000013f "-[TestInterface setReadWrite:]"
-CHECK:     Data[0] => {Atom[0]: 0x00000209} 
-CHECK:   Hash = 0x946f52b9 Offset = 0x0000012c
-CHECK:     Name: 000000c6 "-[TestInterface ReadOnly]"
-CHECK:     Data[0] => {Atom[0]: 0x00000109} 
-CHECK: Bucket[4]
-CHECK:   EMPTY
-CHECK: Bucket[5]
-CHECK:   EMPTY
-CHECK: Bucket[6]
-CHECK:   Hash = 0x6e8e91a3 Offset = 0x0000013c
-CHECK:     Name: 000001e0 "-[TestInterface NonAtomic]"
-CHECK:     Data[0] => {Atom[0]: 0x00000357} 
-CHECK:   Hash = 0x7d1a5012 Offset = 0x0000014c
-CHECK:     Name: 0000014d "setReadWrite:"
-CHECK:     Data[0] => {Atom[0]: 0x00000209} 
-CHECK:   Hash = 0xb65f49d3 Offset = 0x0000015c
-CHECK:     Name: 0000020d "setNonAtomic:"
-CHECK:     Data[0] => {Atom[0]: 0x00000395} 
-CHECK:   Hash = 0x354997e2 Offset = 0x0000016c
-CHECK:     Name: 00000120 "-[TestInterface ReadWrite]"
-CHECK:     Data[0] => {Atom[0]: 0x000001cb} 
-CHECK: Bucket[7]
-CHECK:   Hash = 0xce8af9c8 Offset = 0x0000017c
-CHECK:     Name: 0000005e "Retain"
-CHECK:     Data[0] => {Atom[0]: 0x0000024f} 
-CHECK:   Hash = 0xa7e0338a Offset = 0x0000018c
-CHECK:     Name: 0000004d "Assign"
-CHECK:     Data[0] => {Atom[0]: 0x00000147} 
-CHECK:   Hash = 0xa9812410 Offset = 0x0000019c
-CHECK:     Name: 00000105 "setAssign:"
-CHECK:     Data[0] => {Atom[0]: 0x00000185} 
-CHECK:   Hash = 0x218d07f6 Offset = 0x000001ac
-CHECK:     Name: 000001a2 "-[TestInterface Copy]"
-CHECK:     Data[0] => {Atom[0]: 0x000002d3} 
-CHECK:   Hash = 0x0456817c Offset = 0x000001bc
-CHECK:     Name: 000001bc "-[TestInterface setCopy:]"
-CHECK:     Data[0] => {Atom[0]: 0x00000311} 
-CHECK:   Hash = 0x7c83b400 Offset = 0x000001cc
-CHECK:     Name: 0000006c "Copy"
-CHECK:     Data[0] => {Atom[0]: 0x000002d3} 
-CHECK: Bucket[8]
-CHECK:   Hash = 0x0f918046 Offset = 0x000001dc
-CHECK:     Name: 000001c5 "setCopy:"
-CHECK:     Data[0] => {Atom[0]: 0x00000311} 
-CHECK:   Hash = 0xfb097449 Offset = 0x000001ec
-CHECK:     Name: 000001ff "-[TestInterface setNonAtomic:]"
-CHECK:     Data[0] => {Atom[0]: 0x00000395} 
-CHECK:   Hash = 0x71069de3 Offset = 0x000001fc
-CHECK:     Name: 00000042 "ReadOnly"
-CHECK:     Data[0] => {Atom[0]: 0x00000109} 
-CHECK: Bucket[9]
-CHECK:   Hash = 0xd55908c6 Offset = 0x0000020c
-CHECK:     Name: 000000fa "-[TestInterface setAssign:]"
-CHECK:     Data[0] => {Atom[0]: 0x00000185} 
-CHECK:   Hash = 0xa584b20e Offset = 0x0000021c
-CHECK:     Name: 0000018c "setRetain:"
-CHECK:     Data[0] => {Atom[0]: 0x0000028d} 
-CHECK:   Hash = 0x9429886d Offset = 0x0000022c
-CHECK:     Name: 00000076 "NonAtomic"
-CHECK:     Data[0] => {Atom[0]: 0x00000357} 
-CHECK:   Hash = 0x287cc300 Offset = 0x0000023c
-CHECK:     Name: 000000de "-[TestInterface Assign]"
-CHECK:     Data[0] => {Atom[0]: 0x00000147} 
-CHECK:   Hash = 0x51ce5684 Offset = 0x0000024c
-CHECK:     Name: 00000181 "-[TestInterface setRetain:]"
-CHECK:     Data[0] => {Atom[0]: 0x0000028d} 
-CHECK: Bucket[10]
-CHECK:   EMPTY
 
+Check that the accelerators point to the right DIEs.
+CHECK:     Name:{{.*}}"-[TestInterface ReadOnly]"
+CHECK-NOT: Name
+CHECK:     {Atom[0]: [[READONLY]]}
+CHECK:     Name:{{.*}}"-[TestInterface setAssign:]"
+CHECK-NOT: Name
+CHECK:     {Atom[0]: [[SETASSIGN]]}
+CHECK:     Name:{{.*}}"-[TestInterface Assign]"
+CHECK-NOT: Name
+CHECK:     {Atom[0]: [[ASSIGN]]}
 
+Check that types are referenced correctly.
 CHECK: .apple_types contents:
-CHECK: Magic = 0x48415348
-CHECK: Version = 0x0001
-CHECK: Hash function = 0x00000000
-CHECK: Bucket count = 4
-CHECK: Hashes count = 4
-CHECK: HeaderData length = 20
-CHECK: DIE offset base = 0
-CHECK: Number of atoms = 3
-CHECK: Atom[0]  Type: DW_ATOM_die_offset Form: DW_FORM_data4
-CHECK: Atom[1]  Type: DW_ATOM_die_tag Form: DW_FORM_data2
-CHECK: Atom[2]  Type: DW_ATOM_type_flags Form: DW_FORM_data1
-CHECK: Bucket[0]
-CHECK:   Hash = 0x0b888030 Offset = 0x00000058
-CHECK:     Name: 00000046 "int"
-CHECK:     Data[0] => {Atom[0]: 0x000000f4} {Atom[1]: 0x0024} {Atom[2]: 0x00} 
-CHECK: Bucket[1]
-CHECK:   Hash = 0x0b881d29 Offset = 0x0000006b
-CHECK:     Name: 0000021b "SEL"
-CHECK:     Data[0] => {Atom[0]: 0x000003e0} {Atom[1]: 0x0016} {Atom[2]: 0x00} 
-CHECK:   Hash = 0x2c549f3d Offset = 0x0000007e
-CHECK:     Name: 00000067 "NSObject"
-CHECK:     Data[0] => {Atom[0]: 0x00000100} {Atom[1]: 0x0013} {Atom[2]: 0x00} 
-CHECK: Bucket[2]
-CHECK:   Hash = 0x16a83cb6 Offset = 0x00000091
-CHECK:     Name: 00000039 "TestInterface"
-CHECK:     Data[0] => {Atom[0]: 0x0000002f} {Atom[1]: 0x0013} {Atom[2]: 0x00} 
-CHECK: Bucket[3]
-CHECK:   EMPTY
-
+CHECK:     Name{{.*}}"TestInterface"
+CHECK-NOT: Name
+CHECK:     {Atom[0]: [[TESTINTERFACE]]}
 
+Check that an empty ecceleratorsection is handled correctly.
 CHECK: .apple_namespaces contents:
 CHECK-NOT: Magic
 
+Check ObjC specific accelerators.
 CHECK: .apple_objc contents:
-CHECK: Magic = 0x48415348
-CHECK: Version = 0x0001
-CHECK: Hash function = 0x00000000
-CHECK: Bucket count = 1
-CHECK: Hashes count = 1
-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: Bucket[0]
-CHECK:   Hash = 0x16a83cb6 Offset = 0x0000002c
-CHECK:     Name: 00000039 "TestInterface"
-CHECK:     Data[0] => {Atom[0]: 0x00000109} 
-CHECK:     Data[1] => {Atom[0]: 0x00000147} 
-CHECK:     Data[2] => {Atom[0]: 0x00000185} 
-CHECK:     Data[3] => {Atom[0]: 0x000001cb} 
-CHECK:     Data[4] => {Atom[0]: 0x00000209} 
-CHECK:     Data[5] => {Atom[0]: 0x0000024f} 
-CHECK:     Data[6] => {Atom[0]: 0x0000028d} 
-CHECK:     Data[7] => {Atom[0]: 0x000002d3} 
-CHECK:     Data[8] => {Atom[0]: 0x00000311} 
-CHECK:     Data[9] => {Atom[0]: 0x00000357} 
-CHECK:     Data[10] => {Atom[0]: 0x00000395} 
\ No newline at end of file
+CHECK:     Name{{.*}}"TestInterface"
+CHECK-NOT: Name
+CHECK:     {Atom[0]: [[READONLY]]}
+CHECK:     {Atom[0]: [[ASSIGN]]}
+CHECK:     {Atom[0]: [[SETASSIGN]]}