mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-25 10:48:14 +00:00
Code cleanup and re-indent cxa_exception.hpp
llvm-svn: 206108
This commit is contained in:
parent
834da75d44
commit
aacc1c76f9
@ -26,98 +26,99 @@ static const uint64_t kOurExceptionClass = 0x434C4E47432B2B00; // CLNGC
|
||||
static const uint64_t kOurDependentExceptionClass = 0x434C4E47432B2B01; // CLNGC++\1
|
||||
static const uint64_t get_vendor_and_language = 0xFFFFFFFFFFFFFF00; // mask for CLNGC++
|
||||
|
||||
struct __cxa_exception {
|
||||
struct __cxa_exception {
|
||||
#if __LP64__
|
||||
// This is a new field to support C++ 0x exception_ptr.
|
||||
// For binary compatibility it is at the start of this
|
||||
// struct which is prepended to the object thrown in
|
||||
// __cxa_allocate_exception.
|
||||
size_t referenceCount;
|
||||
size_t referenceCount;
|
||||
#endif
|
||||
|
||||
// Manage the exception object itself.
|
||||
std::type_info *exceptionType;
|
||||
void (*exceptionDestructor)(void *);
|
||||
std::unexpected_handler unexpectedHandler;
|
||||
std::terminate_handler terminateHandler;
|
||||
|
||||
__cxa_exception *nextException;
|
||||
|
||||
int handlerCount;
|
||||
|
||||
std::type_info *exceptionType;
|
||||
void (*exceptionDestructor)(void *);
|
||||
std::unexpected_handler unexpectedHandler;
|
||||
std::terminate_handler terminateHandler;
|
||||
|
||||
__cxa_exception *nextException;
|
||||
|
||||
int handlerCount;
|
||||
|
||||
#ifdef __ARM_EABI_UNWINDER__
|
||||
__cxa_exception* nextPropagatingException;
|
||||
int propagationCount;
|
||||
__cxa_exception* nextPropagatingException;
|
||||
int propagationCount;
|
||||
#else
|
||||
int handlerSwitchValue;
|
||||
const unsigned char *actionRecord;
|
||||
const unsigned char *languageSpecificData;
|
||||
void *catchTemp;
|
||||
void *adjustedPtr;
|
||||
int handlerSwitchValue;
|
||||
const unsigned char *actionRecord;
|
||||
const unsigned char *languageSpecificData;
|
||||
void *catchTemp;
|
||||
void *adjustedPtr;
|
||||
#endif
|
||||
|
||||
#if !__LP64__
|
||||
// This is a new field to support C++ 0x exception_ptr.
|
||||
// For binary compatibility it is placed where the compiler
|
||||
// previously adding padded to 64-bit align unwindHeader.
|
||||
size_t referenceCount;
|
||||
size_t referenceCount;
|
||||
#endif
|
||||
|
||||
_Unwind_Exception unwindHeader;
|
||||
};
|
||||
|
||||
_Unwind_Exception unwindHeader;
|
||||
};
|
||||
|
||||
// http://sourcery.mentor.com/archives/cxx-abi-dev/msg01924.html
|
||||
|
||||
struct __cxa_dependent_exception {
|
||||
struct __cxa_dependent_exception {
|
||||
#if __LP64__
|
||||
void* primaryException;
|
||||
void* primaryException;
|
||||
#endif
|
||||
|
||||
std::type_info *exceptionType;
|
||||
void (*exceptionDestructor)(void *);
|
||||
std::unexpected_handler unexpectedHandler;
|
||||
std::terminate_handler terminateHandler;
|
||||
|
||||
__cxa_exception *nextException;
|
||||
|
||||
int handlerCount;
|
||||
std::type_info *exceptionType;
|
||||
void (*exceptionDestructor)(void *);
|
||||
std::unexpected_handler unexpectedHandler;
|
||||
std::terminate_handler terminateHandler;
|
||||
|
||||
__cxa_exception *nextException;
|
||||
|
||||
int handlerCount;
|
||||
|
||||
#ifdef __ARM_EABI_UNWINDER__
|
||||
__cxa_exception* nextPropagatingException;
|
||||
int propagationCount;
|
||||
__cxa_exception* nextPropagatingException;
|
||||
int propagationCount;
|
||||
#else
|
||||
int handlerSwitchValue;
|
||||
const unsigned char *actionRecord;
|
||||
const unsigned char *languageSpecificData;
|
||||
void * catchTemp;
|
||||
void *adjustedPtr;
|
||||
int handlerSwitchValue;
|
||||
const unsigned char *actionRecord;
|
||||
const unsigned char *languageSpecificData;
|
||||
void * catchTemp;
|
||||
void *adjustedPtr;
|
||||
#endif
|
||||
|
||||
#if !__LP64__
|
||||
void* primaryException;
|
||||
void* primaryException;
|
||||
#endif
|
||||
|
||||
_Unwind_Exception unwindHeader;
|
||||
};
|
||||
|
||||
struct __cxa_eh_globals {
|
||||
__cxa_exception * caughtExceptions;
|
||||
unsigned int uncaughtExceptions;
|
||||
|
||||
_Unwind_Exception unwindHeader;
|
||||
};
|
||||
|
||||
struct __cxa_eh_globals {
|
||||
__cxa_exception * caughtExceptions;
|
||||
unsigned int uncaughtExceptions;
|
||||
#ifdef __ARM_EABI_UNWINDER__
|
||||
__cxa_exception* propagatingExceptions;
|
||||
__cxa_exception* propagatingExceptions;
|
||||
#endif
|
||||
};
|
||||
};
|
||||
|
||||
#pragma GCC visibility pop
|
||||
#pragma GCC visibility push(default)
|
||||
|
||||
extern "C" __cxa_eh_globals * __cxa_get_globals ();
|
||||
extern "C" __cxa_eh_globals * __cxa_get_globals_fast ();
|
||||
extern "C" __cxa_eh_globals * __cxa_get_globals ();
|
||||
extern "C" __cxa_eh_globals * __cxa_get_globals_fast ();
|
||||
|
||||
extern "C" void * __cxa_allocate_dependent_exception ();
|
||||
extern "C" void __cxa_free_dependent_exception (void * dependent_exception);
|
||||
extern "C" void * __cxa_allocate_dependent_exception ();
|
||||
extern "C" void __cxa_free_dependent_exception (void * dependent_exception);
|
||||
|
||||
#pragma GCC visibility pop
|
||||
}
|
||||
|
||||
} // namespace __cxxabiv1
|
||||
|
||||
#endif // _CXA_EXCEPTION_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user