11deeedb6808c6a2aa24de6317960199f04012345David Blaikie// RUN: %clang_cc1 %s -triple x86_64-none-linux-gnu -emit-llvm -fcxx-exceptions -fexceptions -std=c++11 -o - | FileCheck %s 2ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman// PR13359 3ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman 4ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedmanstruct X { 5ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman ~X(); 6ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman}; 7ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedmanstruct Error { 8ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman Error(const X&) noexcept; 9ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman}; 10ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman 11ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedmanvoid f() { 12ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman try { 13ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman throw Error(X()); 14ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman } catch (...) { } 15ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman} 16ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman 1793ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin// CHECK-LABEL: define void @_Z1fv 18ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman// CHECK: call void @_ZN5ErrorC1ERK1X 19ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman// CHECK: invoke void @__cxa_throw 20ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman// CHECK: landingpad 21ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman// CHECK: call void @_ZN1XD1Ev 22ea66f9f9e17d619d617885e26adc1530cec7c0fdEli Friedman// CHECK-NOT: __cxa_free_exception 23