[llvm-dwp] clang-format this to catch anything I've missed along the way
[oota-llvm.git] / test / tools / llvm-dwp / X86 / simple.test
1 RUN: llvm-dwp %p/../Inputs/simple/a.dwo %p/../Inputs/simple/b.dwo -o %t
2 RUN: llvm-dwarfdump %t | FileCheck %s
3
4 FIXME: For some reason, piping straight from llvm-dwp to llvm-dwarfdump doesn't behave well - looks like dwarfdump is reading/closes before dwp has finished.
5
6 DWP from non-type-unit debug info for these two translation units:
7 a.cpp:
8   struct foo { };
9   foo a;
10
11 b.cpp:
12   struct bar { };
13   void b(bar) {
14   }
15
16 CHECK-LABEL: .debug_abbrev.dwo contents:
17 CHECK-LABEL: Abbrev table for offset:
18 CHECK: 0x0000[[AAOFF:.*]]
19 CHECK: DW_TAG_compile_unit
20 CHECK: DW_TAG_variable
21 CHECK: DW_TAG_structure_type
22 CHECK-LABEL: Abbrev table for offset:
23 CHECK: 0x0000[[BAOFF:.*]]
24 CHECK: DW_TAG_compile_unit
25 CHECK: DW_TAG_structure_type
26 CHECK: DW_TAG_subprogram
27 CHECK: DW_TAG_formal_parameter
28
29 CHECK: .debug_info.dwo contents:
30 CHECK: [[AOFF:0x[0-9a-f]*]]:
31 CHECK-LABEL: Compile Unit: length = 0x00000029 version = 0x0004 abbr_offset =
32 CHECK:         0x[[AAOFF]] addr_size = 0x08 (next unit at [[BOFF:.*]])
33 CHECK: DW_TAG_compile_unit
34 CHECK:   DW_AT_name {{.*}} "a.cpp"
35 CHECK:   DW_AT_GNU_dwo_id {{.*}} ([[DWOA:.*]])
36 CHECK:   DW_TAG_variable
37 CHECK:     DW_AT_name {{.*}} "a"
38 CHECK:   DW_TAG_structure_type
39 CHECK:     DW_AT_signature {{.*}} ([[FOOSIG:.*]])
40
41 CHECK: [[BOFF]]:
42 CHECK-LABEL: Compile Unit: length = 0x00000035 version = 0x0004 abbr_offset =
43 CHECK:         0x[[BAOFF]] addr_size = 0x08 (next unit at [[XOFF:.*]])
44 CHECK:   DW_AT_name {{.*}} "b.cpp"
45 CHECK:   DW_AT_GNU_dwo_id {{.*}} ([[DWOB:.*]])
46 CHECK:   DW_TAG_structure_type
47 CHECK:     DW_AT_signature {{.*}} ([[BARSIG:.*]])
48 CHECK:   DW_TAG_subprogram
49 CHECK:     DW_AT_name {{.*}} "b"
50 CHECK:     DW_TAG_formal_parameter
51
52 CHECK-LABEL: .debug_types.dwo contents:
53 CHECK: [[FOOUOFF:0x[0-9a-f]*]]:
54 CHECK-LABEL: Type Unit: length = 0x00000020 version = 0x0004 abbr_offset =
55 CHECK:         0x[[AAOFF]] addr_size = 0x08 type_signature = [[FOOSIG]] type_offset = 0x[[FOOOFF:.*]] (next unit at [[BARUOFF:.*]])
56 CHECK:             DW_TAG_type_unit
57 CHECK: [[FOOOFF]]:   DW_TAG_structure_type
58 CHECK:                 DW_AT_name {{.*}} "foo"
59 CHECK: [[BARUOFF]]:
60 CHECK-LABEL: Type Unit: length = 0x00000020 version = 0x0004 abbr_offset =
61 CHECK:         0x[[BAOFF]] addr_size = 0x08 type_signature = [[BARSIG]] type_offset = 0x001e (next unit at [[XUOFF:.*]])
62 CHECK:             DW_TAG_type_unit
63 CHECK: 0x00000042:   DW_TAG_structure_type
64 CHECK:                 DW_AT_name {{.*}} "bar"
65
66 CHECK-LABEL: .debug_cu_index contents:
67 CHECK: Index Signature INFO                      ABBREV                             LINE                     STR_OFFSETS
68 CHECK:     1 [[DWOA]]  {{\[}}[[AOFF]], [[BOFF]]) [0x0000[[AAOFF]], 0x0000[[BAOFF]]) [0x00000000, 0x0000001a) [0x00000000, 0x00000010)
69 CHECK:     3 [[DWOB]]  {{\[}}[[BOFF]], [[XOFF]]) [0x0000[[BAOFF]], 0x00000099)      [0x0000001a, 0x00000034) [0x00000010, 0x00000024)
70
71 CHECK-LABEL: .debug_tu_index contents:
72 CHECK: Index Signature  TYPES                           ABBREV                             LINE                     STR_OFFSETS
73 CHECK:     1 [[FOOSIG]] {{\[}}[[FOOUOFF]], [[BARUOFF]]) [0x0000[[AAOFF]], 0x0000[[BAOFF]]) [0x00000000, 0x0000001a) [0x00000000, 0x00000010)
74 CHECK:     4 [[BARSIG]] {{\[}}[[BARUOFF]], [[XUOFF]])   [0x0000[[BAOFF]], 0x00000099)      [0x0000001a, 0x00000034) [0x00000010, 0x00000024)
75
76 CHECK-LABEL: .debug_str.dwo contents:
77 CHECK: "clang version
78 CHECK: 0x[[ACPP:.*]]: "a.cpp"
79 CHECK-NOT: "clang version
80 CHECK: 0x[[BCPP:.*]]: "b.cpp"
81
82 CHECK-LABEL: .debug_str_offsets.dwo contents:
83 CHECK: : 00000000
84 CHECK: : [[ACPP]]
85 CHECK: : 00000000
86 CHECK: : [[BCPP]]