blob: e8ce6e7b76aa822e4360e922ec161f8a1faf3d84 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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();
}
|