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