2009-09-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[official-gcc.git] / libstdc++-v3 / libsupc++ / eh_aux_runtime.cc
blob579c23986019e0fd40bf81fbdbbbe9fbb2241e39
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.
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.
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.
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/>.
26 #include "typeinfo"
27 #include "exception"
28 #include <cstdlib>
29 #include "unwind-cxx.h"
30 #include "exception_defines.h"
32 extern "C" void
33 __cxxabiv1::__cxa_bad_cast ()
35 #ifdef __EXCEPTIONS
36 throw std::bad_cast();
37 #else
38 std::abort();
39 #endif
42 extern "C" void
43 __cxxabiv1::__cxa_bad_typeid ()
45 #ifdef __EXCEPTIONS
46 throw std::bad_typeid();
47 #else
48 std::abort();
49 #endif