diff options
Diffstat (limited to 'runtime/GCCLibraries/crtend/SJLJ-Exception.h')
-rw-r--r-- | runtime/GCCLibraries/crtend/SJLJ-Exception.h | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/runtime/GCCLibraries/crtend/SJLJ-Exception.h b/runtime/GCCLibraries/crtend/SJLJ-Exception.h deleted file mode 100644 index ac27cbed7f..0000000000 --- a/runtime/GCCLibraries/crtend/SJLJ-Exception.h +++ /dev/null @@ -1,80 +0,0 @@ -//===- SJLJ-Exception.h - SetJmp/LongJmp Exception Handling -----*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file defines the data structures and API used by the Setjmp/Longjmp -// exception handling runtime library. -// -//===----------------------------------------------------------------------===// - -#ifndef SJLJ_EXCEPTION_H -#define SJLJ_EXCEPTION_H - -#include "Exception.h" - -struct llvm_sjlj_exception { - // JmpBuffer - This is the buffer which was longjmp'd with. - // - void *JmpBuffer; - - // LongJmpValue - The value passed into longjmp, which the corresponding - // setjmp should return. Note that this value will never be equal to 0. - // - int LongJmpValue; - - // BaseException - The language independent portion of the exception state. - // This is at the end of the record so that we can add additional members to - // this structure without breaking binary compatibility. - // - llvm_exception BaseException; -}; - -extern "C" { - // __llvm_sjljeh_throw_longjmp - This function creates the longjmp exception - // and returns. It takes care of mapping the longjmp value from 0 -> 1 as - // appropriate. The caller should immediately call llvm.unwind after this - // function call. - void __llvm_sjljeh_throw_longjmp(void *JmpBuffer, int Val) throw(); - - // __llvm_sjljeh_init_setjmpmap - This funciton initializes the pointer - // provided to an empty setjmp map, and should be called on entry to a - // function which calls setjmp. - void __llvm_sjljeh_init_setjmpmap(void **SetJmpMap) throw(); - - // __llvm_sjljeh_destroy_setjmpmap - This function frees all memory associated - // with the specified setjmpmap structure. It should be called on all exits - // (returns or unwinds) from the function which calls ...init_setjmpmap. - void __llvm_sjljeh_destroy_setjmpmap(void **SetJmpMap) throw(); - - // __llvm_sjljeh_add_setjmp_to_map - This function adds or updates an entry to - // the map, to indicate which setjmp should be returned to if a longjmp - // happens. - void __llvm_sjljeh_add_setjmp_to_map(void **SetJmpMap, void *JmpBuf, - unsigned SetJmpID) throw(); - - // __llvm_sjljeh_is_longjmp_exception - This function returns true if the - // current uncaught exception is a longjmp exception. This is the first step - // of catching a sjlj exception. - bool __llvm_sjljeh_is_longjmp_exception() throw(); - - // __llvm_sjljeh_get_longjmp_value - This function returns the value that the - // setjmp call should "return". This requires that the current uncaught - // exception be a sjlj exception, though it does not require the exception to - // be caught by this function. - int __llvm_sjljeh_get_longjmp_value() throw(); - - // __llvm_sjljeh_try_catching_longjmp_exception - This function checks to see - // if the current uncaught longjmp exception matches any of the setjmps - // collected in the setjmpmap structure. If so, it catches and destroys the - // exception, returning the index of the setjmp which caught the exception. - // If not, it leaves the exception uncaught and returns a value of ~0. - unsigned __llvm_sjljeh_try_catching_longjmp_exception(void **SetJmpMap) - throw(); -} - -#endif |