llvm.org GIT mirror llvm / a6f1031
Update links to "Itanium C++ ABI: Exception Handling" document git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172356 91177308-0d34-0410-b5e6-96231b3b80d8 Dmitri Gribenko 6 years ago
1 changed file(s) with 9 addition(s) and 9 deletion(s). Raw diff Collapse all Expand all
4040 // Cases -1 and 7 are caught by a C++ test harness where the validity of
4141 // of a C++ catch(...) clause catching a generated exception with a
4242 // type info type of 7 is explained by: example in rules 1.6.4 in
43 // http://sourcery.mentor.com/public/cxx-abi/abi-eh.html (v1.22)
43 // http://mentorembedded.github.com/cxx-abi/abi-eh.html (v1.22)
4444 //
4545 // This code uses code from the llvm compiler-rt project and the llvm
4646 // Kaleidoscope project.
8181 #endif
8282
8383 // System C++ ABI unwind types from:
84 // http://sourcery.mentor.com/public/cxx-abi/abi-eh.html (v1.22)
84 // http://mentorembedded.github.com/cxx-abi/abi-eh.html (v1.22)
8585
8686 extern "C" {
8787
150150 ///
151151 /// Note: The above unwind.h defines struct _Unwind_Exception to be aligned
152152 /// on a double word boundary. This is necessary to match the standard:
153 /// http://refspecs.freestandards.org/abi-eh-1.21.html
153 /// http://mentorembedded.github.com/cxx-abi/abi-eh.html
154154 struct OurBaseException_t {
155155 struct OurExceptionType_t type;
156156
338338 /// This function is the struct _Unwind_Exception API mandated delete function
339339 /// used by foreign exception handlers when deleting our exception
340340 /// (OurException), instances.
341 /// @param reason @link http://refspecs.freestandards.org/abi-eh-1.21.html
341 /// @param reason @link http://mentorembedded.github.com/cxx-abi/abi-eh.html
342342 /// @unlink
343343 /// @param expToDelete exception instance to delete
344344 void deleteFromUnwindOurException(_Unwind_Reason_Code reason,
511511 /// are supported. Filters are not supported.
512512 /// See Variable Length Data in:
513513 /// @link http://dwarfstd.org/Dwarf3.pdf @unlink
514 /// Also see @link http://refspecs.freestandards.org/abi-eh-1.21.html @unlink
514 /// Also see @link http://mentorembedded.github.com/cxx-abi/abi-eh.html @unlink
515515 /// @param resultAction reference variable which will be set with result
516516 /// @param classInfo our array of type info pointers (to globals)
517517 /// @param actionEntry index into above type info array or 0 (clean up).
598598
599599
600600 /// Deals with the Language specific data portion of the emitted dwarf code.
601 /// See @link http://refspecs.freestandards.org/abi-eh-1.21.html @unlink
601 /// See @link http://mentorembedded.github.com/cxx-abi/abi-eh.html @unlink
602602 /// @param version unsupported (ignored), unwind version
603603 /// @param lsda language specific data area
604604 /// @param _Unwind_Action actions minimally supported unwind stage
782782
783783 /// This is the personality function which is embedded (dwarf emitted), in the
784784 /// dwarf unwind info block. Again see: JITDwarfEmitter.cpp.
785 /// See @link http://refspecs.freestandards.org/abi-eh-1.21.html @unlink
785 /// See @link http://mentorembedded.github.com/cxx-abi/abi-eh.html @unlink
786786 /// @param version unsupported (ignored), unwind version
787787 /// @param _Unwind_Action actions minimally supported unwind stage
788788 /// (forced specifically not supported)
830830 /// Generates our _Unwind_Exception class from a given character array.
831831 /// thereby handling arbitrary lengths (not in standard), and handling
832832 /// embedded \0s.
833 /// See @link http://refspecs.freestandards.org/abi-eh-1.21.html @unlink
833 /// See @link http://mentorembedded.github.com/cxx-abi/abi-eh.html @unlink
834834 /// @param classChars char array to encode. NULL values not checkedf
835835 /// @param classCharsSize number of chars in classChars. Value is not checked.
836836 /// @returns class value
15911591 catch (...) {
15921592 // Catch all exceptions including our generated ones. This latter
15931593 // functionality works according to the example in rules 1.6.4 of
1594 // http://sourcery.mentor.com/public/cxx-abi/abi-eh.html (v1.22),
1594 // http://mentorembedded.github.com/cxx-abi/abi-eh.html (v1.22),
15951595 // given that these will be exceptions foreign to C++
15961596 // (the _Unwind_Exception::exception_class should be different from
15971597 // the one used by C++).