1651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 -triple %itanium_abi_triple -fcxx-exceptions -fexceptions -emit-llvm-only %s
292b9bd96ce25630f73717965fcaf4b5a761e49e5Benjamin Kramer
389cf2e3d9d356a8b960a5ab12ccc677fe2dce7f8Benjamin Kramer// PR5863
492b9bd96ce25630f73717965fcaf4b5a761e49e5Benjamin Kramerclass E { };
592b9bd96ce25630f73717965fcaf4b5a761e49e5Benjamin Kramer
692b9bd96ce25630f73717965fcaf4b5a761e49e5Benjamin Kramervoid P1() {
792b9bd96ce25630f73717965fcaf4b5a761e49e5Benjamin Kramer try {
892b9bd96ce25630f73717965fcaf4b5a761e49e5Benjamin Kramer  int a=0, b=0;
992b9bd96ce25630f73717965fcaf4b5a761e49e5Benjamin Kramer  if (a > b) // simply filling in 0 or 1 doesn't trigger the assertion
1092b9bd96ce25630f73717965fcaf4b5a761e49e5Benjamin Kramer    throw E(); // commenting out 'if' or 'throw' 'fixes' the assertion failure
1192b9bd96ce25630f73717965fcaf4b5a761e49e5Benjamin Kramer  try { } catch (...) { } // empty try/catch block needed for failure
1292b9bd96ce25630f73717965fcaf4b5a761e49e5Benjamin Kramer } catch (...) { } // this try/catch block needed for failure
1392b9bd96ce25630f73717965fcaf4b5a761e49e5Benjamin Kramer}
14