28 lines · plain
1REQUIRES: system-linux,bolt-runtime2 3RUN: %clangxx %cxxflags -pie -fPIC %p/Inputs/pie-exceptions-failed-split.s \4RUN: -Wl,-q -o %t5RUN: llvm-bolt %t -o %t.instr --instrument --instrumentation-file=%t.fdata6 7## Record profile with invocation that does not throw exceptions.8RUN: %t.instr9 10RUN: llvm-bolt %t -o %t.bolt --data %t.fdata --reorder-blocks=ext-tsp \11RUN: --split-functions --split-eh --print-after-lowering \12RUN: --print-only=_Z10throw_testiPPc 2>&1 | FileCheck %s13 14## Check that a landing pad is split from its thrower and does not require a15## trampoline LP.16CHECK: Binary Function "_Z10throw_testiPPc"17CHECK: IsSplit :18CHECK-SAME: 119CHECK: callq {{.*}} # handler: [[LPAD:.*]];20CHECK-NOT: Landing Pad{{$}}21CHECK: HOT-COLD SPLIT POINT22CHECK: {{^}}[[LPAD]]23CHECK-NEXT: Landing Pad24 25## Verify the output still executes correctly when the exception path is being26## taken.27RUN: %t.bolt arg1 arg2 arg328