brintos

brintos / llvm-project-archived public Read only

0
0
Text · 741 B · 01e433c Raw
26 lines · c
1// This test checks that referencing build_id through GOT table2// would result in GOT access after disassembly, not directly3// to build_id address.4 5// RUN: %clang %cflags -fuse-ld=lld -Wl,-T,%S/Inputs/build_id.ldscript -Wl,-q \6// RUN:   -Wl,--no-relax -Wl,--build-id=sha1 %s -o %t.exe7// RUN: llvm-bolt -print-disasm --print-only=get_build_id %t.exe -o %t.bolt | \8// RUN:   FileCheck %s9 10// CHECK: adrp	[[REG:x[0-28]+]], __BOLT_got_zero11// CHECK: ldr x{{.*}}, [[[REG]], :lo12:__BOLT_got_zero{{.*}}]12 13struct build_id_note {14  char pad[16];15  char hash[20];16};17 18extern const struct build_id_note build_id_note;19 20__attribute__((noinline)) char get_build_id() { return build_id_note.hash[0]; }21 22int main() {23  get_build_id();24  return 0;25}26