summaryrefslogtreecommitdiff
path: root/runtime/GCCLibraries/crtend/SJLJ-Exception.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/GCCLibraries/crtend/SJLJ-Exception.h')
-rw-r--r--runtime/GCCLibraries/crtend/SJLJ-Exception.h80
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