summaryrefslogtreecommitdiffstats
path: root/libcxxabi/test
Commit message (Collapse)AuthorAgeFilesLines
...
* [demangler] Support for clang's enable_if attribute.Erik Pilkington2018-03-251-1/+5
| | | | | | Fixes PR33569. llvm-svn: 328462
* [demangler] Support for <template-param>s in generic lambdas.Erik Pilkington2018-03-161-1/+3
| | | | | | | These <template-param>s refer to "artifical" <template-arg>s that don't appear in the mangled name, so we just print them as "auto". llvm-svn: 327690
* [demangler] Simplify printing of structured bindings.Erik Pilkington2018-03-101-3/+3
| | | | | | Thanks to Richard Smith for the post-commit review! llvm-svn: 327228
* [demangler] Support for sequence numbers on lifetime extended temporaries.Erik Pilkington2018-03-101-0/+3
| | | | llvm-svn: 327227
* [demangler] Support for structured bindings.Erik Pilkington2018-03-101-1/+4
| | | | llvm-svn: 327226
* [demangler] Fix a mistake in r326797.Erik Pilkington2018-03-071-0/+2
| | | | | | Thanks to Nico Weber for pointing this out! llvm-svn: 326871
* [demangler] Modernize the rest of the demangler.Erik Pilkington2018-03-061-0/+3
| | | | llvm-svn: 326797
* [demangler] Modernize parse_name.Erik Pilkington2018-03-051-0/+3
| | | | llvm-svn: 326717
* [demangler] Support for exception specifications on function types.Erik Pilkington2018-02-141-0/+16
| | | | llvm-svn: 325093
* [demangler] Support for inheriting constructors.Erik Pilkington2018-02-131-0/+4
| | | | | | Fixes PR33223. llvm-svn: 325023
* [demangler] Support for initializer lists and designated initializers.Erik Pilkington2018-02-131-27/+27
| | | | llvm-svn: 324970
* [demangler] Support for dependent elaborate type specifiers.Erik Pilkington2018-02-131-1/+5
| | | | llvm-svn: 324969
* [demangler] All <qualifiers> on one type should share one entry in the ↵Erik Pilkington2018-02-131-0/+3
| | | | | | | | substitution table. Previously, both <extended-qualifier>s and <CV-qualifiers> got their own entries. llvm-svn: 324968
* [demangler] Clean up the expression parserErik Pilkington2018-02-021-0/+69
| | | | | | | | | | | | | | | | This commit cleans up the expression parser, using a new style: - parse* functions now return Node pointers. - The mangled name is now held in Db and accessed with look() and consume() - LLVM coding style This style is meant to avoid the 2 most common types of bugs in the old demanger, namely misusing the Names stack (ie, calling back() on empty) and going out of bounds on the mangled name. I also think it makes the demangler a lot cleaner. Differential revision: https://reviews.llvm.org/D41887 llvm-svn: 324111
* [demangler] Improve variadic template supportErik Pilkington2018-01-312-40/+8
| | | | | | | | | | | | | | This commit changes how variadic templates are represented in the demangler, in order to fix some longstanding bugs. Now instead of expanding variadic templates during parsing, the expansion is done during printing by reusing the unexpanded AST. This allows the demangler to handle cases where multiple packs contribute to a single production, and correctly handle "Dp" and "sp" productions, which corrispond to pack expansions in type and expression contexts. Differential revision: https://reviews.llvm.org/D41885 llvm-svn: 323906
* Fix standalone test-suite run.Eric Fiselier2018-01-171-4/+5
| | | | | | | | | This patch updates libc++abi's HandleOutOfTreeLLVM.cmake to match libc++'s -- and more importantly, to fix a bug where llvm-lit wasn't found/created when libc++abi was built out-of-tree. This prevented the test suite from running. llvm-svn: 322768
* [libcxxabi] Pass LIBCXXABI_SYSROOT and LIBCXXABI_GCC_TOOLCHAIN to litPetr Hosek2017-12-121-0/+2
| | | | | | | | These are expected to be set by the shared lit scripts used from libc++. Differential Revision: https://reviews.llvm.org/D40818 llvm-svn: 320445
* [demangler] Support for abi_tag attributeErik Pilkington2017-11-221-0/+6
| | | | | | Differential revision: https://reviews.llvm.org/D40279 llvm-svn: 318874
* [demangler] Document some features that the demangler doesn't yet support, NFCErik Pilkington2017-11-211-2/+33
| | | | llvm-svn: 318765
* Mark test as unsupported c++98/03 to fix buildbotsErik Pilkington2017-08-091-0/+2
| | | | llvm-svn: 310530
* [demangler] Improve representation of substitutions/templatesErik Pilkington2017-08-091-0/+123
| | | | | | Differential revision: https://reviews.llvm.org/D36427 llvm-svn: 310525
* [demangler] Fix another oss-fuzz bugErik Pilkington2017-08-061-0/+1
| | | | llvm-svn: 310226
* [demangler] Fix another bug found by oss-fuzz in r309340Erik Pilkington2017-08-011-0/+1
| | | | llvm-svn: 309650
* [demangler] Fix some bugs in r309340 found by oss-fuzzErik Pilkington2017-07-301-0/+7
| | | | llvm-svn: 309520
* [demangler] Use an AST to represent demangled namesErik Pilkington2017-07-281-2/+1
| | | | | | | | | | | | The demangler now demangles by producing an AST, then traverses that AST to produce a demangled name. This is done for performance reasons, now the demangler doesn't manuiplate std::strings, which hurt performance and caused string operations to be inlined into the parser, leading to large code size and stack usage. Differential revision: https://reviews.llvm.org/D35159 llvm-svn: 309340
* [demangler] Respect try_to_parse_template_argsErik Pilkington2017-07-131-0/+1
| | | | | | Fixes an exponential parse found by oss-fuzz. llvm-svn: 307941
* Fix incomplete type test on OS X; workaround weird DYLD_LIBRARY_PATH behaviorEric Fiselier2017-07-061-1/+5
| | | | llvm-svn: 307230
* Add some catch(...) blocks to the tests so that if they fail, we get a good ↵Marshall Clow2017-06-221-0/+13
| | | | | | error message. No functional change. llvm-svn: 305977
* [demangler] Fix a exponential string copying bugErik Pilkington2017-05-281-0/+1
| | | | | | | | | | | The problem was that if base_name() was called from a context without an actual base name, it could gulp up the entire string, which can result in recursive duplications. The fix is to be more strict as to what qualifies as a base name. Differential revision: https://reviews.llvm.org/D33637 llvm-svn: 304113
* __cxa_demangle: Fix constructor cv qualifier handlingTamas Berghammer2017-05-241-0/+1
| | | | | | | | | | | | | | | | | Summary: Previously if we parsed a constructor then we set parsed_ctor_dtor_cv to true and never reseted it. This causes issue when a template argument references a constructor (e.g. type of lambda defined inside a constructor) as we will have the parsed_ctor_dtor_cv flag set what will cause issues when parsing later arguments. Reviewers: EricWF, compnerd Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D33385 llvm-svn: 303737
* [demangler] Fix a crash in the demangler during parsing of a lamdbaErik Pilkington2017-05-241-1/+3
| | | | | | | | | The problem is that multiple types could have been parsed from parse_type(), which the lamdba parameter parsing didn't handle. Differential revision: https://reviews.llvm.org/D33368 llvm-svn: 303718
* [libcxxabi] Fix the test case committed in r303175.Akira Hatanaka2017-05-161-0/+1
| | | | | | | | | | Free the __cxa_exception object allocated with __cxa_allocate_exception. This is an attempt to fix this asan bot: http://lab.llvm.org:8011/builders/libcxx-libcxxabi-x86_64-linux-ubuntu-asan/builds/560 llvm-svn: 303194
* [libcxxabi] Align unwindHeader on a double-word boundary.Akira Hatanaka2017-05-161-0/+33
| | | | | | | | | | | | | | | | | | | | | | | r276215 made a change to annotate _Unwind_Exception with attribute "aligned" so that an exception object following field __cxa_exception is sufficiently aligned. This fix hasn't been incorporated to unwind.h on Darwin since it is an ABI breaking change. Instead of annotating struct _Unwind_Exception with the attribute, this commit annotates field unwindHeader of __cxa_exception. This ensures the exception object is sufficiently aligned without breaking the ABI. This recommits r302978 and r302981, which were reverted in r303016 because a libcxx test was failing on an AArch64 bot. I also modified the libcxxabi test case to check the alignment of the pointer returned by __cxa_allocate_exception rather than compiling the test with -O1 and checking whether it segfaults. rdar://problem/25364625 Differential Revision: https://reviews.llvm.org/D33030 llvm-svn: 303175
* Revert r302978 and r302981.Akira Hatanaka2017-05-141-48/+0
| | | | | | | | | Revert the two commits to understand why the following aarch64 bot is failing. http://lab.llvm.org:8011/builders/libcxx-libcxxabi-libunwind-aarch64-linux llvm-svn: 303016
* [libcxxabi] Align unwindHeader on a double-word boundary.Akira Hatanaka2017-05-131-0/+48
| | | | | | | | | | | | | | | | | | | r276215 made a change to annotate _Unwind_Exception with attribute "aligned" so that an exception object following field __cxa_exception is sufficiently aligned. This fix hasn't been incorporated to unwind.h on Darwin since it is an ABI breaking change. Instead of annotating struct _Unwind_Exception with the attribute, this commit annotates field unwindHeader of __cxa_exception. This ensures the exception object is sufficiently aligned without breaking the ABI. This recommits r302763 with fixes to RUN lines in the test case. rdar://problem/25364625 Differential Revision: https://reviews.llvm.org/D33030 llvm-svn: 302978
* Revert "[libcxxabi] Align unwindHeader on a double-word boundary."Akira Hatanaka2017-05-111-46/+0
| | | | | | | | This reverts commit r302763. The commit caused bot failures. llvm-svn: 302764
* [libcxxabi] Align unwindHeader on a double-word boundary.Akira Hatanaka2017-05-111-0/+46
| | | | | | | | | | | | | | | | | r276215 made a change to annotate _Unwind_Exception with attribute "aligned" so that an exception object following field __cxa_exception is sufficiently aligned. This fix hasn't been incorporated to unwind.h on Darwin since it is an ABI breaking change. Instead of annotating struct _Unwind_Exception with the attribute, this commit annotates field unwindHeader of __cxa_exception. This ensures the exception object is sufficiently aligned without breaking the ABI. rdar://problem/25364625 Differential Revision: https://reviews.llvm.org/D33030 llvm-svn: 302763
* Fix use of now removed %exec test substitutionEric Fiselier2017-05-102-2/+2
| | | | llvm-svn: 302698
* Fix use of removed SH test replacement %execEric Fiselier2017-05-101-1/+1
| | | | llvm-svn: 302629
* XFAIL noexcept member function throw/catch test under GCC.Eric Fiselier2017-05-091-0/+4
| | | | | | | I'm still not exactly sure why the test fails, but I suspect it's a bug in GCC. More investigation needed. llvm-svn: 302489
* Fix PR25874 - cxa_thread_atexit_test.pass.cpp has an incorrect XFAIL.Eric Fiselier2017-04-204-10/+0
| | | | llvm-svn: 300925
* Fix exception address alignment test for EHABIAsiri Rathnayake2017-04-043-4/+21
| | | | | | | | | | | | | | | This test fails on ARM bare-metal targets because it assumes the Itanium ABI, whereas EHABI requires the exception address to be 8-byte aligned. I was a bit puzzled at first because this should've failed on the public arm-linux builder too. I think the reason it passes there is because we don't include libunwind headers in the include path when running the libcxxabi tests, so the system unwind.h gets picked up. Reviewers: rengolin, EricWF Differential revision: https://reviews.llvm.org/D31178 llvm-svn: 299435
* [libc++abi] Delete config.hShoaib Meenai2017-03-302-2/+0
| | | | | | | | | | | | Summary: It's now completely empty, so we can remove it entirely. Reviewers: mclow.lists, EricWF Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D31502 llvm-svn: 299129
* Add missing UNSUPPORTED for -fno-exception modeEric Fiselier2017-03-041-0/+1
| | | | llvm-svn: 296957
* Attempt to suppress test failures on OS XEric Fiselier2017-03-042-0/+14
| | | | llvm-svn: 296955
* [libcxxabi] Fix alignment of allocated exceptions in 32 bit buildsEric Fiselier2017-03-041-0/+28
| | | | | | | | | | | | | | | | | Summary: In 32 bit builds on a 64 bit system `std::malloc` does not return correctly aligned memory. This leads to undefined behavior. This patch switches to using `posix_memalign` to allocate correctly aligned memory instead. Reviewers: mclow.lists, danalbert, jroelofs, compnerd Reviewed By: compnerd Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25417 llvm-svn: 296952
* Fix PR25874 - Detect features required for cxa_thread_atexit_test.pass.cppEric Fiselier2017-03-044-0/+10
| | | | llvm-svn: 296940
* Attempt to fix arm-native libcxxabi tests for the no-exceptions variantAsiri Rathnayake2017-02-272-0/+2
| | | | | | | | These tests embed calls to exceptions-related symbols from the abi library, which are absent in the no-exceptions variant. The tests need to be marked as unsupported for the no-exceptions configuration. llvm-svn: 296344
* Fix test_exception_storage.pass.cpp in C++17 my re-enabling the unexpected ↵Eric Fiselier2017-02-171-0/+4
| | | | | | handlers llvm-svn: 295411
* Fix path to libc++'s python test moduleEric Fiselier2017-02-091-1/+1
| | | | llvm-svn: 294671
OpenPOWER on IntegriCloud