// Verify that PLT optimization in BOLT preserves exception-handling info. // REQUIRES: system-linux // RUN: %clang %cflags -fpic -shared -xc /dev/null -o %t.so // Link against a DSO to ensure PLT entries. // RUN: %clangxx %cxxflags -O1 -Wl,-z,undefs,-q,-znow %s %t.so -o %t.exe // RUN: llvm-bolt %t.exe -o %t.bolt.exe --plt=all --print-only=.*main.* \ // RUN: --print-finalized 2>&1 | FileCheck %s // CHECK-LABEL: Binary Function // CHECK: adrp {{.*}}__cxa_throw // CHECK-NEXT: ldr {{.*}}__cxa_throw // CHECK-NEXT: blr x17 {{.*}} handler: {{.*}} PLTCall: int main() { try { throw new int; } catch (...) { return 0; } return 1; }