freebsd-dev/auxhelper.cc

42 lines
1.1 KiB
C++
Raw Normal View History

/**
* 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();
}