1REQUIRES: system-linux,bolt-runtime 2 3RUN: %clangxx %cxxflags -pie -fPIC %p/Inputs/pie-exceptions-failed-split.s \ 4RUN: -Wl,-q -o %t 5RUN: llvm-bolt %t -o %t.instr --instrument --instrumentation-file=%t.fdata 6 7## Record profile with invocation that does not throw exceptions. 8RUN: %t.instr 9 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 %s 13 14## Check that a landing pad is split from its thrower and does not require a 15## trampoline LP. 16CHECK: Binary Function "_Z10throw_testiPPc" 17CHECK: IsSplit : 18CHECK-SAME: 1 19CHECK: callq {{.*}} # handler: [[LPAD:.*]]; 20CHECK-NOT: Landing Pad{{$}} 21CHECK: HOT-COLD SPLIT POINT 22CHECK: {{^}}[[LPAD]] 23CHECK-NEXT: Landing Pad 24 25## Verify the output still executes correctly when the exception path is being 26## taken. 27RUN: %t.bolt arg1 arg2 arg3 28