summaryrefslogtreecommitdiffstats
path: root/libcxxabi/test
Commit message (Collapse)AuthorAgeFilesLines
* Fix LIBCXXABI_HAS_NO_THREADS configuration.Eric Fiselier2015-10-141-8/+4
| | | | llvm-svn: 250316
* Configure for config site headerEric Fiselier2015-10-141-0/+1
| | | | llvm-svn: 250313
* Add config.project_obj_root to the libc++abi testsuiteEric Fiselier2015-10-141-0/+1
| | | | llvm-svn: 250307
* Fix Bug 25103 - _cxa_demangle improperly demangles virtual thunks. Thanks to ↵Marshall Clow2015-10-121-0/+2
| | | | | | Jason King for the report and suggested fix llvm-svn: 250097
* Fix incorrect parsing of arguments for nested functions. Reviewed as ↵Marshall Clow2015-10-081-0/+1
| | | | | | http://reviews.llvm.org/D13192. Thanks to Anseny Kapoulkine for the patch. llvm-svn: 249649
* Convert LIBCXXABI_BUILD_32_BITS to LLVM_BUILD_32_BITS.Eric Fiselier2015-09-012-2/+2
| | | | llvm-svn: 246516
* Fix or disable C++11 tests in C++03 modeEric Fiselier2015-08-204-22/+14
| | | | llvm-svn: 245531
* Revert r243752, it broke running tests on OS X (PR24491).Nico Weber2015-08-181-5/+0
| | | | llvm-svn: 245325
* [libc++abi] Allow use just compiled clang++ for testsRenato Golin2015-07-311-0/+5
| | | | | | | | | | | Currently, the tests assume the system compiler is the one we want to test, but if we build libcxxabi together with LLVM+Clang, it'll get the wrong compiler. This patch allows us to test if we have clang++ in our /bin directory, and if so, use it. llvm-svn: 243752
* [libcxxabi] Add -funwind-tables to the test compilation options.Daniel Sanders2015-07-271-0/+1
| | | | | | | | | | | | | | | | | | Summary: backtrace_test.pass.cpp depends on unwind tables. These are generated by -funwind-tables which is the default for x86 but not for other targets. Thanks to Nitesh Jain for helping to narrow this down. Fixes PR24148 Reviewers: jroelofs Subscribers: cfe-commits, jroelofs, llvm-commits, hans Differential Revision: http://reviews.llvm.org/D11529 llvm-svn: 243296
* Implement uncaught_exceptions() to get a count, rather than a bool. Update ↵Marshall Clow2015-06-021-0/+36
| | | | | | the libc++abi version. Reviewed as http://reviews.llvm.org/D10067 llvm-svn: 238827
* Disallow conversions from function pointers to void*.Eric Fiselier2015-05-011-0/+16
| | | | | | | | | Function pointers and member function pointers cannot be converted to void*. libc++abi incorrectly allows this conversion for function pointers. Review URL: http://reviews.llvm.org/D8811 llvm-svn: 236299
* libc++abi: move tests backSaleem Abdulrasool2015-04-246-0/+771
| | | | | | | These are apparently related to libc++'s unwind personality handler and not unwind core. Move them back to the correct location. llvm-svn: 235765
* libc++abi: remove the duplicated unwind contentSaleem Abdulrasool2015-04-246-771/+0
| | | | | | | | | | The unwinder has been moved into its own project setup at http://svn.llvm.org/projects/libunwind/trunk. This simply removes the now duplicated content. This move was previously discussed on llvmdev at [1]. [1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-January/081507.html llvm-svn: 235759
* [libcxxabi] Disallow Base to Derived conversions for catching pointers to ↵Eric Fiselier2015-04-063-12/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | members. Summary: I accidentally implemented the 4.11 [conv.mem] conversions for libc++abi in a recent patch. @majnemer pointed out that 5.13 [except.handle] only allows the pointer conversions in 4.10 and not those is 4.11. This patch no longer allows the following example code: ```c++ struct A {}; struct B : public A {}; int main() { try { throw (int A::*)0; } catch (int B::*) { // exception caught here. } } ``` Reviewers: mclow.lists, jroelofs, majnemer Reviewed By: majnemer Subscribers: majnemer, cfe-commits Differential Revision: http://reviews.llvm.org/D8845 llvm-svn: 234254
* [libcxxabi] Fix multi-level pointer conversions and pointer to member ↵Eric Fiselier2015-04-023-4/+297
| | | | | | | | | | | | | | | | | | | | | | | | | | | conversion detection. Summary: Currently there are bugs in out detection of multi-level pointer conversions and pointer to member conversions. This patch fixes the following issues. * Allow multi-level pointers with different nested qualifiers. * Allow multi-level mixed pointers to objects and pointers to members with different nested qualifiers. * Allow conversions from `int Base::*` to `int Derived::*` but only for non-nested pointers. There is still some work that needs to be done to clean this patch up but I want to get some input on it. Open questions: * Does `__pointer_to_member_type_info::can_catch(...)` need to adjust the pointer if a base to derived conversion is performed? Reviewers: danalbert, compnerd, mclow.lists Reviewed By: mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D8758 llvm-svn: 233984
* Let libc++'s LIT configuration setup our linker paths and env.Eric Fiselier2015-03-172-18/+2
| | | | llvm-svn: 232529
* add option to tell LIT where to find the libc++ library when built out of treeEric Fiselier2015-03-172-2/+8
| | | | llvm-svn: 232518
* [libcxxabi] Build both static and shared versions of libc++abi by default.Eric Fiselier2015-03-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | Summary: This patch builds both static and shared versions of libc++abi by default. It adds/repurposes the following cmake options: * `LIBCXXABI_ENABLE_SHARED`: Enable/disable building the shared library. (Previously using `OFF` would build the static library instead) * `LIBCXXABI_ENABLE_STATIC`: Enable/disable building the static library. This patch also re-purposes the CMake target `cxxabi` to be a meta-target for `cxxabi_shared` and `cxxabi_static`. This could potentially break other builds that depend on `cxxabi` being a library target. We will need to apply a patch to libc++'s CMake before committing this change. Running the tests is still only supported when the shared version is built. Support for running the tests against the static library will come in another patch. Reviewers: jroelofs, mclow.lists, danalbert, compnerd Reviewed By: danalbert, compnerd Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D8013 llvm-svn: 231075
* Add remote testing support to the lit configJonathan Roelofs2015-02-262-0/+6
| | | | | | | Now that the corresponding support in libcxx has landed (r230592), adding support here is pretty simple. llvm-svn: 230643
* Add temporary workaround for missing symbol __cxa_throw_bad_new_array_length ↵Eric Fiselier2015-02-211-0/+9
| | | | | | on OS X. llvm-svn: 230125
* Fix libcxxabi's library and object root for tests.Eric Fiselier2015-02-113-9/+14
| | | | llvm-svn: 228779
* Make test require 'linux' instead of 'linux2'Eric Fiselier2015-02-031-1/+1
| | | | llvm-svn: 228073
* [libcxxabi] Teach CMake better ways to find the libc++ source directory (and ↵Eric Fiselier2015-01-223-46/+36
| | | | | | | | | | | | | | | | | | | | | | misc cleanup). Summary: The main section of this patch teaches CMake a new option `LIBCXXABI_LIBCXX_PATH` that specifies the path to the libcxx source root. This information is passed to lit so that it can better find libc++'s python module. `LIBCXXABI_LIBCXX_PATH` is also used to help find the libc++ headers. The rest of this patch is misc cleanup, mostly to make pep8 and pylint happy. I've also copied libc++'s .gitignore into libc++abi. Reviewers: jroelofs, danalbert Reviewed By: danalbert Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D7130 llvm-svn: 226855
* Enable backtrace_test for ARM.Logan Chien2015-01-221-1/+0
| | | | llvm-svn: 226824
* Merge libc++abi's lit configuration with libc++'sJonathan Roelofs2015-01-216-288/+133
| | | | | | http://reviews.llvm.org/D6985 llvm-svn: 226737
* Rename all of the tests in preparation for merging lit configs with libcxxJonathan Roelofs2015-01-2140-1/+1
| | | | | | http://reviews.llvm.org/D7101 llvm-svn: 226691
* [cmake/multilib] Teach libc++abi's CMake build to support multilibChandler Carruth2014-12-293-20/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | libdir suffixes like 'lib64' or 'lib32'. This support is currently very rhudimentary. We define a variable LIBCXXABI_LIBDIR_SUFFIX. In a standalone build of libc++abi this can be directly set as a cached variable to control the multilib suffix used. When building libc++abi within a larger LLVM build, it is hard wired to whatever LLVM libdir suffix has been selected. If this doesn't work for someone, just let me know. I'm happy to change it. Unfortunately, libc++abi's lit setup made this somewhat problematic to change. It was setting variables up in a way that caused the resulting build to not work with lit at all. To fix that, I've moved some variables around in the CMake build to more closely match where and how they are defined in the libc++ CMake build. This includes specifically defining a library root variable in the CMake build where the libdir suffix can be applied, and then using that rather than re-computing it from the object directory in the lit config. This is essentially new functionality for libc++abi so I don't expect it to have any impact for folks until they start setting these variables. However, I know libc++abi is built in a diverse set of environments so just let me know if this causes you any problems. llvm-svn: 224927
* [libcxxabi] Add __cxa_thread_atexit for TLS support on Linux.Dan Albert2014-12-182-0/+35
| | | | | | | | | | | | | | | | | | | | | Summary: Fixes PR21738. The implementation for this is handled by __cxa_thread_atexit_impl, which is supplied by libc. More information: https://sourceware.org/glibc/wiki/Destructor%20support%20for%20thread_local%20variables Reviewers: mclow.lists, EricWF, jroelofs Reviewed By: jroelofs Subscribers: majnemer, cfe-commits Differential Revision: http://reviews.llvm.org/D6708 llvm-svn: 224477
* Use the newer python syntax for exceptionsJustin Bogner2014-12-131-1/+1
| | | | | | | We've dropped support for python 2.5, so now we can use the forward compatible "except ... as" syntax. llvm-svn: 224182
* Fix comment on end of #endif to match #ifEric Fiselier2014-11-251-1/+1
| | | | llvm-svn: 222719
* Use lit.util.executeCommand instead of our own versionEric Fiselier2014-11-251-20/+2
| | | | llvm-svn: 222718
* [libcxxabi] Refactor building and testing libc++abi without threadsEric Fiselier2014-11-245-2/+25
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds CMake support for building and testing libc++abi without threads. 1. Add `LIBCXXABI_ENABLE_THREADS` option to CMake. 2. Propagate `LIBCXXABI_ENABLE_THREADS` to lit via lit.site.cfg.in 3. Configure tests for `LIBCXXABI_ENABLE_THREADS=OFF Currently the test suite does not work when libc++abi is built without threads because that information does not propagate to the test suite. Reviewers: danalbert, mclow.lists, jroelofs Reviewed By: jroelofs Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6393 llvm-svn: 222702
* [libcxxabi] Refactor test timing logic and disable by default.Eric Fiselier2014-11-247-43/+69
| | | | | | | | | | | | | | | | | | Summary: When using LIT the timing output is entirely unused but introduces a dependency on `<chrono>`. When libc++ is built without a montonic clock this causes some of the tests to fail. This patch factors out all of the timing logic into `support/timer.hpp` and disables it by default. To enable the timing you must define `LIBCXXABI_TIME_TESTS`. Reviewers: mclow.lists, danalbert, jroelofs Reviewed By: jroelofs Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6391 llvm-svn: 222701
* Ensure llvm-sanitizer is found by the tests when using sanitizers.Eric Fiselier2014-11-211-6/+22
| | | | llvm-svn: 222496
* [libcxxabi] Cleanup memory in tests to placate ASAN.Eric Fiselier2014-11-213-12/+15
| | | | | | | | | | | | | | Summary: ASAN fires on these tests because they don't clean up their memory. Reviewers: danalbert, jroelofs, mclow.lists Reviewed By: jroelofs Subscribers: dblaikie, cfe-commits Differential Revision: http://reviews.llvm.org/D6281 llvm-svn: 222493
* Add support for LLVM_USE_SANITIZER=Thread to test suiteEric Fiselier2014-11-181-0/+3
| | | | llvm-svn: 222260
* Add -g -fno-omit-frame-pointer when compiling tests with sanitizersEric Fiselier2014-11-141-0/+1
| | | | llvm-svn: 222053
* Move ARM failure from FIXME to XFAILRenato Golin2014-11-071-5/+1
| | | | llvm-svn: 221515
* Add support for UNSUPPORTED tag to litEric Fiselier2014-11-061-1/+12
| | | | llvm-svn: 221460
* Disable backtrace libcxxabi test on ARMRenato Golin2014-11-051-0/+5
| | | | | | | | _Unwind_Backtrace is not clearly defined in EHABI and needs more testing. A bug was created with some initial investigation done http://llvm.org/PR21444. This test fails with both libunwind and libgcc_s. llvm-svn: 221348
* Change uses of `sys.platform == 'linux2' to `sys.platform.startswith('linux')Eric Fiselier2014-10-231-3/+3
| | | | | | | | Although the current method is valid up till python 3.3 (which is not supported) this seems to be a clearer way of checking for linux and moves the tests towards python 3 compatibility. llvm-svn: 220535
* Only link the tests against -ldl on linuxEric Fiselier2014-10-231-1/+1
| | | | llvm-svn: 220509
* [libcxxabi] Add support for running libc++abi tests with sanitizersEric Fiselier2014-10-232-0/+26
| | | | | | | | | | | | | | Summary: Add support for LLVM_USE_SANITIZER to the libc++abi tests. Currently, if libc++abi is configured with LLVM_USE_SANITIZER then none of the tests will pass. Reviewers: jroelofs, mclow.lists, danalbert Reviewed By: danalbert Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D5926 llvm-svn: 220464
* Adding ABI support for __cxa_throw_bad_array_new_length.Aaron Ballman2014-09-111-0/+38
| | | | llvm-svn: 217604
* s/LIBCXXABI_SINGLE_THREADED/LIBCXXABI_HAS_NO_THREADS/ for consistency with ↵Jonathan Roelofs2014-09-051-3/+3
| | | | | | | | | libcxx Also remove the audotedection part so that if you're crazy enough to want a single-threaded abi library, you'll say so explicitly in the build. llvm-svn: 217262
* Add missing include to a test case.Dan Albert2014-08-291-0/+1
| | | | | | | Some platforms get size_t defined transitively by another include, but Android does not. llvm-svn: 216738
* Make _Unwind_Backtrace() work on ARM.Dan Albert2014-08-291-0/+61
| | | | | | | | | | | | | | | | | | | | | | Summary: Since the personality functions do the actual unwinding on ARM, and will also stop unwinding when they encounter a handler, we invoke _Unwind_VRS_Interpret() directly form _Unwind_Backtrace(). To simplify, the logic for decoding an EHT is moved out of unwindOneFrame() and into its own function, decode_eht_entry(). Unlike unwindOneFrame(), which could only handle ARM's compact personality function entries (section 6.3) decode_eht_entry() can handle the generic entries (section 6.2). Reviewers: jroelofs Reviewed By: jroelofs Subscribers: piman, aemerson, cfe-commits Differential Revision: http://reviews.llvm.org/D5112 llvm-svn: 216730
* Add support for building and testing the unwinder.Dan Albert2014-07-113-1/+17
| | | | | | | 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
* Add lit configs for libcxxabi tests.Dan Albert2014-07-103-0/+274
| | | | | | | | | | | | | | | 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
OpenPOWER on IntegriCloud