xref: /llvm-project/bolt/test/X86/indirect-goto-pie.test (revision 887f7002b65f7376c7a5004535bd08c95bdaa8f8)
111791ae7SSayhaan Siddiqui## Check that llvm-bolt fails to process PIC binaries with computed goto, as the
211791ae7SSayhaan Siddiqui## support is not there yet for correctly updating dynamic relocations
311791ae7SSayhaan Siddiqui## referencing code inside functions.
4418e4b0cSMaksim Panchenko
5418e4b0cSMaksim PanchenkoREQUIRES: x86_64-linux
6418e4b0cSMaksim Panchenko
7418e4b0cSMaksim PanchenkoRUN: %clang %S/Inputs/indirect_goto.c -o %t -fpic -pie -Wl,-q
8418e4b0cSMaksim PanchenkoRUN: not llvm-bolt %t -o %t.bolt --relocs=1 --print-cfg --print-only=main \
9*887f7002SConnieRUN:   2>&1 | FileCheck %s
10418e4b0cSMaksim Panchenko
1111791ae7SSayhaan Siddiqui## Check that processing works if main() is skipped.
12418e4b0cSMaksim PanchenkoRUN: llvm-bolt %t -o %t.bolt --relocs=1 --skip-funcs=main
13418e4b0cSMaksim Panchenko
14418e4b0cSMaksim PanchenkoCHECK:  jmpq    *%rax # UNKNOWN CONTROL FLOW
15418e4b0cSMaksim Panchenko
16418e4b0cSMaksim PanchenkoCHECK: BOLT-ERROR: unable to get new address
17