llvm.org GIT mirror llvm / 30b4738
Fix broken links to the Itanium CXX ABI git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312985 91177308-0d34-0410-b5e6-96231b3b80d8 Vlad Tsyrklevich 2 years ago
6 changed file(s) with 14 addition(s) and 14 deletion(s). Raw diff Collapse all Expand all
118118 ===
119119
120120 * `System V Application Binary Interface `_
121 * `Itanium C++ ABI mentorembedded.github.io/cxx-abi/>`_
121 * `Itanium C++ ABI itanium-cxx-abi.github.io/cxx-abi/>`_
122122
123123 Linux
124124 -----
3131
3232 A more complete description of the Itanium ABI exception handling runtime
3333 support of can be found at `Itanium C++ ABI: Exception Handling
34 mentorembedded.github.com/cxx-abi/abi-eh.html>`_. A description of the
34 itanium-cxx-abi.github.io/cxx-abi/abi-eh.html>`_. A description of the
3535 exception frame format can be found at `Exception Frames
3636 `_,
3737 with details of the DWARF 4 specification at `DWARF 4 Standard
3838 `_. A description for the C++ exception
3939 table formats can be found at `Exception Handling Tables
40 mentorembedded.github.com/cxx-abi/exceptions.pdf>`_.
40 itanium-cxx-abi.github.io/cxx-abi/exceptions.pdf>`_.
4141
4242 Setjmp/Longjmp Exception Handling
4343 ---------------------------------
127127 an address from that pointer, we know that the address can only be one of
128128 ``&A::f``, ``&B::f`` or ``&D::f``.
129129
130 .. _address point: https://mentorembedded.github.io/cxx-abi/abi.html#vtable-general
130 .. _address point: https://itanium-cxx-abi.github.io/cxx-abi/abi.html#vtable-general
131131
132132 Testing Addresses For Type Membership
133133 =====================================
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://mentorembedded.github.com/cxx-abi/abi-eh.html (v1.22)
43 // http://itanium-cxx-abi.github.io/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.
100100 ///
101101 /// Note: The above unwind.h defines struct _Unwind_Exception to be aligned
102102 /// on a double word boundary. This is necessary to match the standard:
103 /// http://mentorembedded.github.com/cxx-abi/abi-eh.html
103 /// http://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html
104104 struct OurBaseException_t {
105105 struct OurExceptionType_t type;
106106
298298 /// This function is the struct _Unwind_Exception API mandated delete function
299299 /// used by foreign exception handlers when deleting our exception
300300 /// (OurException), instances.
301 /// @param reason See @link http://mentorembedded.github.com/cxx-abi/abi-eh.html
301 /// @param reason See @link http://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html
302302 /// @unlink
303303 /// @param expToDelete exception instance to delete
304304 void deleteFromUnwindOurException(_Unwind_Reason_Code reason,
488488 /// are supported. Filters are not supported.
489489 /// See Variable Length Data in:
490490 /// @link http://dwarfstd.org/Dwarf3.pdf @unlink
491 /// Also see @link http://mentorembedded.github.com/cxx-abi/abi-eh.html @unlink
491 /// Also see @link http://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html @unlink
492492 /// @param resultAction reference variable which will be set with result
493493 /// @param classInfo our array of type info pointers (to globals)
494494 /// @param actionEntry index into above type info array or 0 (clean up).
582582
583583
584584 /// Deals with the Language specific data portion of the emitted dwarf code.
585 /// See @link http://mentorembedded.github.com/cxx-abi/abi-eh.html @unlink
585 /// See @link http://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html @unlink
586586 /// @param version unsupported (ignored), unwind version
587587 /// @param lsda language specific data area
588588 /// @param _Unwind_Action actions minimally supported unwind stage
766766
767767 /// This is the personality function which is embedded (dwarf emitted), in the
768768 /// dwarf unwind info block. Again see: JITDwarfEmitter.cpp.
769 /// See @link http://mentorembedded.github.com/cxx-abi/abi-eh.html @unlink
769 /// See @link http://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html @unlink
770770 /// @param version unsupported (ignored), unwind version
771771 /// @param _Unwind_Action actions minimally supported unwind stage
772772 /// (forced specifically not supported)
813813 /// Generates our _Unwind_Exception class from a given character array.
814814 /// thereby handling arbitrary lengths (not in standard), and handling
815815 /// embedded \0s.
816 /// See @link http://mentorembedded.github.com/cxx-abi/abi-eh.html @unlink
816 /// See @link http://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html @unlink
817817 /// @param classChars char array to encode. NULL values not checkedf
818818 /// @param classCharsSize number of chars in classChars. Value is not checked.
819819 /// @returns class value
15701570 catch (...) {
15711571 // Catch all exceptions including our generated ones. This latter
15721572 // functionality works according to the example in rules 1.6.4 of
1573 // http://mentorembedded.github.com/cxx-abi/abi-eh.html (v1.22),
1573 // http://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html (v1.22),
15741574 // given that these will be exceptions foreign to C++
15751575 // (the _Unwind_Exception::exception_class should be different from
15761576 // the one used by C++).
272272 /// An "identifier" for a virtual function. This contains the type identifier
273273 /// represented as a GUID and the offset from the address point to the virtual
274274 /// function pointer, where "address point" is as defined in the Itanium ABI:
275 /// https://mentorembedded.github.io/cxx-abi/abi.html#vtable-general
275 /// https://itanium-cxx-abi.github.io/cxx-abi/abi.html#vtable-general
276276 struct VFuncId {
277277 GlobalValue::GUID GUID;
278278 uint64_t Offset;
7676 return nullptr;
7777
7878 // As the instrumentation tracks the return address and not
79 // the address of the call to `__sanitizer_stats_report` we
79 // the address of the call to `__sanitizer_stat_report` we
8080 // remove one from the address to get the correct DI.
8181 if (Expected LineInfo =
8282 Symbolizer.symbolizeCode(Filename, Addr - 1)) {