xref: /llvm-project/bolt/test/runtime/exceptions-plt.cpp (revision 34c6c5e72f48de65a7e332033af9566576c1895d)
1*34c6c5e7SMaksim Panchenko // Verify that PLT optimization in BOLT preserves exception-handling info.
2*34c6c5e7SMaksim Panchenko 
3*34c6c5e7SMaksim Panchenko // REQUIRES: system-linux
4*34c6c5e7SMaksim Panchenko 
5*34c6c5e7SMaksim Panchenko // RUN: %clangxx %cxxflags -O1 -Wl,-q,-znow %s -o %t.exe
6*34c6c5e7SMaksim Panchenko // RUN: llvm-bolt %t.exe -o %t.bolt.exe --plt=all
7*34c6c5e7SMaksim Panchenko // RUN: %t.bolt.exe
8*34c6c5e7SMaksim Panchenko 
9*34c6c5e7SMaksim Panchenko int main() {
10*34c6c5e7SMaksim Panchenko   try {
11*34c6c5e7SMaksim Panchenko     throw new int;
12*34c6c5e7SMaksim Panchenko   } catch (...) {
13*34c6c5e7SMaksim Panchenko     return 0;
14*34c6c5e7SMaksim Panchenko   }
15*34c6c5e7SMaksim Panchenko   return 1;
16*34c6c5e7SMaksim Panchenko }
17