xref: /aosp_15_r20/external/clang/test/CodeGenCXX/PR5863-unreachable-block.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -triple %itanium_abi_triple -fcxx-exceptions -fexceptions -emit-llvm-only %s
2*67e74705SXin Li 
3*67e74705SXin Li // PR5863
4*67e74705SXin Li class E { };
5*67e74705SXin Li 
P1()6*67e74705SXin Li void P1() {
7*67e74705SXin Li  try {
8*67e74705SXin Li   int a=0, b=0;
9*67e74705SXin Li   if (a > b) // simply filling in 0 or 1 doesn't trigger the assertion
10*67e74705SXin Li     throw E(); // commenting out 'if' or 'throw' 'fixes' the assertion failure
11*67e74705SXin Li   try { } catch (...) { } // empty try/catch block needed for failure
12*67e74705SXin Li  } catch (...) { } // this try/catch block needed for failure
13*67e74705SXin Li }
14