diff options
author | Ryan Pavlik <rpavlik@iastate.edu> | 2011-10-05 17:08:53 -0500 |
---|---|---|
committer | Ryan Pavlik <rpavlik@iastate.edu> | 2011-10-05 17:10:18 -0500 |
commit | 16b463fd357b600888eb90cdb407f3e87023a412 (patch) | |
tree | 98dec94561ef77fa08f42debf8eb0d6cf8efc2d8 /src/auxhelper.cc | |
parent | 8518868b24c9acdb15bf46adadc44758066fa7c4 (diff) | |
download | libcxxrt-16b463fd357b600888eb90cdb407f3e87023a412.tar.gz libcxxrt-16b463fd357b600888eb90cdb407f3e87023a412.tar.bz2 libcxxrt-16b463fd357b600888eb90cdb407f3e87023a412.tar.xz |
Files named aux.anything break Windows.
Diffstat (limited to 'src/auxhelper.cc')
-rw-r--r-- | src/auxhelper.cc | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/auxhelper.cc b/src/auxhelper.cc new file mode 100644 index 0000000..e8ce6e7 --- /dev/null +++ b/src/auxhelper.cc @@ -0,0 +1,41 @@ +/** + * aux.cc - Compiler helper functions. + * + * The functions declared in this file are intended to be called only by code + * that is automatically generated by C++ compilers for some common cases. + */ + +#include <stdlib.h> +#include "stdexcept.h" + +/** + * Called to generate a bad cast exception. This function is intended to allow + * compilers to insert code generating this exception without needing to + * duplicate the code for throwing the exception in every call site. + */ +extern "C" void __cxa_bad_cast() +{ + throw std::bad_cast(); +} + +/** + * Called to generate a bad typeid exception. This function is intended to + * allow compilers to insert code generating this exception without needing to + * duplicate the code for throwing the exception in every call site. + */ +extern "C" void __cxa_bad_typeid() +{ + throw std::bad_typeid(); +} + +/** + * Compilers may (but are not required to) set any pure-virtual function's + * vtable entry to this function. This makes debugging slightly easier, as + * users can add a breakpoint on this function to tell if they've accidentally + * called a pure-virtual function. + */ +extern "C" void __cxa_pure_virtual() +{ + abort(); +} + |