1// -*- C++ -*- Common throw conditions. 2// Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2009 3// Free Software Foundation 4// 5// This file is part of GCC. 6// 7// GCC is free software; you can redistribute it and/or modify 8// it under the terms of the GNU General Public License as published by 9// the Free Software Foundation; either version 3, or (at your option) 10// any later version. 11// 12// GCC is distributed in the hope that it will be useful, 13// but WITHOUT ANY WARRANTY; without even the implied warranty of 14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15// GNU General Public License for more details. 16// 17// Under Section 7 of GPL version 3, you are granted additional 18// permissions described in the GCC Runtime Library Exception, version 19// 3.1, as published by the Free Software Foundation. 20// 21// You should have received a copy of the GNU General Public License and 22// a copy of the GCC Runtime Library Exception along with this program; 23// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 24// <http://www.gnu.org/licenses/>. 25 26#include "typeinfo" 27#include "exception" 28#include <cstdlib> 29#include "unwind-cxx.h" 30#include "exception_defines.h" 31 32extern "C" void 33__cxxabiv1::__cxa_bad_cast () 34{ 35#ifdef __EXCEPTIONS 36 throw std::bad_cast(); 37#else 38 std::abort(); 39#endif 40} 41 42extern "C" void 43__cxxabiv1::__cxa_bad_typeid () 44{ 45#ifdef __EXCEPTIONS 46 throw std::bad_typeid(); 47#else 48 std::abort(); 49#endif 50} 51 52