xref: /llvm-project/bolt/test/X86/dwarf5-type-unit-no-cu-str-offset-table.test (revision 6aad62cf5b7f91f4b02266cf72469e2c8e28dbef)
1# REQUIRES: system-linux
2
3# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-basic-cu.s -o %tmain.o
4# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-types-no-cu.s -o %thelper.o
5# RUN: %clang %cflags %tmain.o %thelper.o -o %t.exe -Wl,-q
6# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
7# RUN: llvm-dwarfdump --show-form --verbose --debug-str-offsets %t.exe | FileCheck -check-prefix=PRE-BOLT %s
8# RUN: llvm-dwarfdump --show-form --verbose --debug-str-offsets %t.bolt | FileCheck -check-prefix=POST-BOLT %s
9
10## This test checks we correclty re-generate .debug_str_offsets when there are type units that have an offset not shared with CU.
11
12# PRE-BOLT: .debug_str_offsets contents
13# PRE-BOLT-NEXT: Contribution size = 24, Format = DWARF32, Version = 5
14# PRE-BOLT-NEXT:  "clang version 18.0.0git (git@github.com:llvm/llvm-project.git 44dc1e0baae7c4b8a02ba06dcf396d3d452aa873)"
15# PRE-BOLT-NEXT:  "main.cpp"
16# PRE-BOLT-NEXT:  "/home"
17# PRE-BOLT-NEXT:  "main"
18# PRE-BOLT-NEXT:  "int"
19# PRE-BOLT-NEXT: Contribution size = 60, Format = DWARF32, Version = 5
20# PRE-BOLT-NEXT:  "clang version 18.0.0git (git@github.com:llvm/llvm-project.git 44dc1e0baae7c4b8a02ba06dcf396d3d452aa873)"
21# PRE-BOLT-NEXT:  "helper.cpp"
22# PRE-BOLT-NEXT:  "/home"
23# PRE-BOLT-NEXT:  "f1"
24# PRE-BOLT-NEXT:  "a1"
25# PRE-BOLT-NEXT:  "char"
26# PRE-BOLT-NEXT:  "a2"
27# PRE-BOLT-NEXT:  "a3"
28# PRE-BOLT-NEXT:  "Foo1"
29# PRE-BOLT-NEXT:  "f2"
30# PRE-BOLT-NEXT:  "b1"
31# PRE-BOLT-NEXT:  "int"
32# PRE-BOLT-NEXT:  "b2"
33# PRE-BOLT-NEXT:  "Foo2"
34
35## Checking post bolt
36# POST-BOLT: .debug_str_offsets contents
37# POST-BOLT-NEXT: Contribution size = 60, Format = DWARF32, Version = 5
38# POST-BOLT-NEXT:  "clang version 18.0.0git (git@github.com:llvm/llvm-project.git 44dc1e0baae7c4b8a02ba06dcf396d3d452aa873)"
39# POST-BOLT-NEXT:  "helper.cpp"
40# POST-BOLT-NEXT:  "/home"
41# POST-BOLT-NEXT:  "f1"
42# POST-BOLT-NEXT:  "a1"
43# POST-BOLT-NEXT:  "char"
44# POST-BOLT-NEXT:  "a2"
45# POST-BOLT-NEXT:  "a3"
46# POST-BOLT-NEXT:  "Foo1"
47# POST-BOLT-NEXT:  "f2"
48# POST-BOLT-NEXT:  "b1"
49# POST-BOLT-NEXT:  "int"
50# POST-BOLT-NEXT:  "b2"
51# POST-BOLT-NEXT:  "Foo2"
52# POST-BOLT-NEXT: Contribution size = 24, Format = DWARF32, Version = 5
53# POST-BOLT-NEXT:  "clang version 18.0.0git (git@github.com:llvm/llvm-project.git 44dc1e0baae7c4b8a02ba06dcf396d3d452aa873)"
54# POST-BOLT-NEXT:  "main.cpp"
55# POST-BOLT-NEXT:  "/home"
56# POST-BOLT-NEXT:  "main"
57# POST-BOLT-NEXT:  "int"
58