summaryrefslogtreecommitdiffstats
path: root/libcxxabi
Commit message (Collapse)AuthorAgeFilesLines
* Fix for libc++abi when using -Wl,--as-needed.Dan Albert2014-07-143-0/+10
| | | | | | | | | | | The cmake files for libc++abi and the unwinder weren't linking against libpthread or an unwind library. If the tests were linked with -Wl,--as-needed, these libraries wouldn't be linked, causing them to fail. Patch contributed by İsmail Dönmez. llvm-svn: 212958
* Support LLVM_LIBDIR_SUFFIX.Dan Albert2014-07-112-4/+4
| | | | | | | | This is useful for distros installing under /usr/lib64. Patch from İsmail Dönmez. llvm-svn: 212826
* Add support for building and testing the unwinder.Dan Albert2014-07-116-8/+124
| | | | | | | Note: The unwinder currently only works on Darwin and on ARM Linux. Non-ARM Linux support is not yet implemented, and will fail to build. llvm-svn: 212824
* Make cmake cxxflags match those in lib/buildit.Dan Albert2014-07-102-11/+32
| | | | llvm-svn: 212768
* Add lit configs for libcxxabi tests.Dan Albert2014-07-106-9/+321
| | | | | | | | | | | | | | | This makes running libcxxabi tests on Linux _much_ easier. Adds a check-libcxxabi target to cmake. Also defaults to building a dynamic libc++abi. This is so that the default options still test the libc++abi that is being built. There are two problems with testing a static libc++abi. In the case of a standalone build, the tests will link the system's libc++, which might not have been built against our libc++abi. In the case of an in tree build, libc++ will prefer a dynamic libc++abi from the system over a static libc++abi from the output directory. llvm-svn: 212672
* Add a cmake build system.Dan Albert2014-07-034-0/+355
| | | | | | | Will add support for tests with lit in a later patch. This does not yet support building the unwinder in src/Unwind. llvm-svn: 212286
* Fix a warning about undeclared call to abort().Dan Albert2014-07-021-1/+3
| | | | llvm-svn: 212232
* Revert the LSDA change to scan_eh_tab.Logan Chien2014-06-301-19/+8
| | | | | | | | | | | This commit reverts the LSDA-related change in r211745. The r211745 adds a new argument to scan_eh_tab(), i.e. lsda. However, IMO, calling _Unwind_GetLanguageSpecificData() directly in scan_eh_tab() was more intuitive and reduces several function call to _Unwind_GetLanguageSpecificData() in __cxx_personality_v0(). llvm-svn: 212037
* Silence the implicit signed/unsigned conversion warning.Logan Chien2014-06-272-27/+29
| | | | llvm-svn: 211912
* Silence unused variable and parameter warnings.Logan Chien2014-06-262-3/+9
| | | | llvm-svn: 211790
* Fix linux build.Logan Chien2014-06-261-8/+10
| | | | | | | | | * Replace strlcpy with snprintf since strlcpy is not available in glibc. * Replace __LINUX__ with __linux__. llvm-svn: 211784
* Add missing header for _LIBUNWIND_LOG().Logan Chien2014-06-261-0/+1
| | | | llvm-svn: 211775
* Fix building for iOSNick Kledzik2014-06-261-1/+1
| | | | llvm-svn: 211751
* Minor libc++abi changes to make things build better with gcc.Nico Weber2014-06-253-1/+3
| | | | llvm-svn: 211748
* Update libc++abi to use the ARM EHABI unwinder from its libunwind.Nico Weber2014-06-253-36/+85
| | | | llvm-svn: 211745
* Land support for ARM EHABI unwinding for libunwind.Nico Weber2014-06-2510-83/+1636
| | | | | | | | | | | This was written by: Albert Wong <ajwong@chromium.org> Antoine Labour <piman@chromium.org> Dana Jansen <danakj@chromium.org Jonathan Roelofs <jonathan@codesourcery.com> Nico Weber <thakis@chromium.org> llvm-svn: 211743
* Start landing support for ARM EHABI unwinding.Nico Weber2014-06-255-17/+75
| | | | | | | | The new code will be behind a LIBCXXABI_ARM_EHABI define (so that platforms that don't want it can continue using e.g. SJLJ). This commit mostly just adds the LIBCXXABI_ARM_EHABI define. llvm-svn: 211739
* Add a FAQ section, with a question about why the std::exception class ↵Marshall Clow2014-06-111-0/+16
| | | | | | destructors live in libc++abi llvm-svn: 210661
* Add test case for inherited exceptionsJonathan Roelofs2014-06-031-0/+165
| | | | | | Test case written by Dana Jansens. llvm-svn: 210129
* Add EH test case checking that handlers in noexcept functions can still unwindJonathan Roelofs2014-05-311-0/+34
| | | | llvm-svn: 209944
* Add EH test cases corresponding to C++ ABI # 15.3.3Jonathan Roelofs2014-05-311-0/+444
| | | | llvm-svn: 209943
* Let libc++abi compile with gcc.Nico Weber2014-05-301-11/+12
| | | | | | | | | | | | | | There was a single problem in cxa_demangle.cpp, where gcc would complain `error: changes meaning of 'String'` about the line `typedef String String;`. According to 3.3.7p2, this diagnostic is allowed (but not required, so clang does not have to report this). As a fix, make string_pair a template and pass String as template parameter. This fixes the error with gcc and also removes some repetition from the code. No behavior change. llvm-svn: 209909
* Fix typo in comment.Logan Chien2014-05-141-1/+1
| | | | llvm-svn: 208795
* PR19091: Track whether we're demangling a function template specialization toRichard Smith2014-05-122-11/+31
| | | | | | | determine whether we get a mangling for a return type, rather than trying to figure it out based on whether the mangled name ended with a '>'. llvm-svn: 208611
* Implement ARM EHABI exception handling.Logan Chien2014-05-107-18/+462
| | | | | | | This commit implements the ARM zero-cost exception handling support for libc++abi. llvm-svn: 208466
* Check exception specification with __cplusplus.Logan Chien2014-05-101-1/+1
| | | | | | | | | To allow the compilation with gcc, we can't use the __has_feature(cxx_noexcept) to detect the default destructor exception specification, which is noexcept(true) by default in C++11. We should use __cplusplus >= 201103L instead. llvm-svn: 208465
* Fixes more incorrect #ifs for SJ/LJ exceptionsJonathan Roelofs2014-05-082-19/+19
| | | | | | Replaces several `#if __arm__` with `#if __USING_SJLJ_EXCEPTIONS__`. llvm-svn: 208352
* Fix broken build from r208135Jonathan Roelofs2014-05-081-0/+1
| | | | llvm-svn: 208350
* Make libc++abi use the implementation of __numstr from libc++. No ↵Marshall Clow2014-05-071-127/+6
| | | | | | functionality change, just removal of duplicated code. llvm-svn: 208246
* On single threaded systems, turn mutexes into nopsJonathan Roelofs2014-05-066-8/+96
| | | | | | http://reviews.llvm.org/D3386 llvm-svn: 208135
* Try harder to get the compiler to use float registers in differentJoerg Sonnenberger2014-05-041-8/+26
| | | | | | places to increase the chance of messing up any preserved registers. llvm-svn: 207938
* Don't use bash features.Joerg Sonnenberger2014-05-031-16/+16
| | | | llvm-svn: 207907
* Add unwind test case that checks restoring of float registers (such as on ↵Nick Kledzik2014-04-291-0/+239
| | | | | | AArch64) llvm-svn: 207481
* Fix cast warningNick Kledzik2014-04-281-2/+2
| | | | llvm-svn: 207469
* Use return address register from CIE. Move ↵Nick Kledzik2014-04-283-91/+20
| | | | | | DwarfInstructions::lastRestoreReg() to Register::lastDwarfRegNum(). llvm-svn: 207467
* No need to specialize DwarfInstructions::getCFA(). It is the same for all archsNick Kledzik2014-04-281-63/+12
| | | | llvm-svn: 207463
* Properly sign extend delta in compact unwind infoNick Kledzik2014-04-251-2/+3
| | | | llvm-svn: 207170
* Fix one missed use of DW_EH_PE_omit in r203626Nick Kledzik2014-04-251-1/+1
| | | | llvm-svn: 207169
* Remove unused/obsolete ARM64 constantsNick Kledzik2014-04-241-10/+1
| | | | llvm-svn: 207064
* Fix virtual class with non-virtual dtor complaintDan Albert2014-04-231-0/+1
| | | | | | | Fixes compiler complaint about: src/Unwind/UnwindCursor.hpp:366:25: error: 'libunwind::AbstractUnwindCursor' has virtual functions but non-virtual destructor [-Werror,-Wnon-virtual-dtor] llvm-svn: 206942
* Fixes incorrect #ifs for SJ/LJ exceptionsDan Albert2014-04-233-5/+5
| | | | | | | The was working because, given __APPLE__, _LIBUNWIND_BUILD_SJLJ_APIS was set to __arm__, but other ARM targets not using SJ/LJ will fail to compile. llvm-svn: 206941
* Fixes type of dyldInfo for glibc/bionic systemsDan Albert2014-04-231-1/+1
| | | | | | | Darwin and the BSDs define a tagged struct dl_info typedef'd as Dl_info. glibc and bionic typedef an anonymous struct as Dl_info. llvm-svn: 206939
* Replace bzero with memsetJonathan Roelofs2014-04-161-8/+9
| | | | | | ... so that we can use newlib as the c library. llvm-svn: 206427
* Properly sign extend sdata2/4 in unwinder. Patch by Patrick WildtNick Kledzik2014-04-121-2/+4
| | | | llvm-svn: 206122
* Properly conditionalize DwarfFDECache<A>::dyldUnloadHook. Patch by Patrick WildtNick Kledzik2014-04-121-0/+2
| | | | llvm-svn: 206121
* Code cleanup and re-indent cxa_exception.hppLogan Chien2014-04-121-54/+55
| | | | llvm-svn: 206108
* The content of .eh_frame may be misaligned, so use memcpy. This is seenJoerg Sonnenberger2014-04-081-7/+31
| | | | | | in the wild on SH3. llvm-svn: 205756
* Include stdlib.h for getenv when !NDEBUG.Joerg Sonnenberger2014-04-031-0/+1
| | | | llvm-svn: 205573
* Simplify.Joerg Sonnenberger2014-03-201-6/+1
| | | | llvm-svn: 204292
* Fix DW_CFA_GNU_args_size handling. The primary architecture using thisJoerg Sonnenberger2014-03-202-3/+2
| | | | | | | | | | | opcode is VAX. A function call pushes the number of arguments given onto the stack and "ret" will pop it automatically. The FDE of the caller contains the amount of stack space used for arguments (and possibly extra padding), so unwinding has to compensate for this when "returning" from a function. This is exactly the case when step() is done. The existing handling in unw_set_reg no longer makes sense. llvm-svn: 204290
OpenPOWER on IntegriCloud