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