summaryrefslogtreecommitdiffstats
path: root/libcxxabi
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix arc config to use httpsEric Fiselier2016-07-181-1/+1
| | | | llvm-svn: 275752
* libc++abi: add a top level option for using CompilerRTSaleem Abdulrasool2016-07-152-1/+7
| | | | | | | | | | Add an option to opt into compiler-rt instead of libgcc. This option defaults to OFF to avoid a behaviour change. It is not possible to mix and match different runtime libraries. Disabling this requires that libc++ is built accordingly. This knob is particularly useful for targets that are GCC by default (i.e. Linux). llvm-svn: 275505
* Fix [libcxxabi] Fix warning about uninitialized const member.Eric Fiselier2016-06-151-1/+2
| | | | llvm-svn: 272824
* Fix warning about uninitialized const member. NFCEric Fiselier2016-06-151-0/+1
| | | | llvm-svn: 272823
* [libcxxabi] Reorder base class initializers in libc++abi tests to prevent ↵Eric Fiselier2016-06-152-4/+4
| | | | | | | | | | | | | | | | | | | -Wreorder Summary: This patch fixes -Wreorder warnings on test classes with virtual bases. Since the compiler is performing the reordering anyway this change *should* have NFC. However the test notes that it is checking that "virtual base classes work properly". Since initialization order is clearly part of correctness I want to confirm that this wasn't an intentional mistake. Reviewers: mclow.lists, howard.hinnant Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D21396 llvm-svn: 272821
* Suppress warnings about the operations currently under test.Eric Fiselier2016-06-158-0/+54
| | | | llvm-svn: 272819
* Partially revert r270816: build with -fvisibility=hidden.Eric Fiselier2016-06-022-3/+0
| | | | | | | | | | | | | | | | | This patch breaks the ABI on linux when libc++abi.a is statically linked into libc++.so. Certain libc++ symbols get exported from libc++abi.a as hidden and therefore they also get hidden in libc++.so. The symbols is question are: * _ZNKSt3__121__basic_string_commonILb1EE20__throw_out_of_rangeEv * _ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv * _ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv I imagine we just need to fix the visibility for these symbols in the libc++ headers but I'm reverting the patch until it's sorted. llvm-svn: 271500
* [libcxxabi] Allow target flags to affect configuration tests.Eric Fiselier2016-06-023-11/+33
| | | | | | | | | | | | | | | | | | | | | Summary: This patch changes the libc++abi CMake so that it adds certain target flags like '-m32' or '--gcc-toolchain' before including `config-ix.cmake`. Since these flags can affect things like `check_library_exists([...])` they needed to be added before the tests are performed. Additionally this patch adds `LIBCXXABI_BUILD_32_BITS` which defaults to `LLVM_BUILD_32_BITS`. This patch fixes: https://llvm.org/bugs/show_bug.cgi?id=27950 https://llvm.org/bugs/show_bug.cgi?id=27959 Reviewers: danalbert, jroelofs, bcraig, compnerd, EricWF Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D20886 llvm-svn: 271470
* [libcxxabi][test] Add missing return statement.Asiri Rathnayake2016-06-011-1/+1
| | | | | | | | This causes a test failure when running with -Werror=return-type. NFC. llvm-svn: 271423
* Missed part of D16545 (static lib testing)Ben Craig2016-06-011-11/+20
| | | | | | http://reviews.llvm.org/D16545 llvm-svn: 271388
* [CMake] Update to requiring CMake 3.4.3Chris Bieneman2016-05-311-1/+1
| | | | | | | | | | | | | | Summary: This is as per the discussions on developer lists: http://lists.llvm.org/pipermail/llvm-dev/2016-April/098780.html http://lists.llvm.org/pipermail/llvm-dev/2016-May/100058.html Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D20829 llvm-svn: 271330
* [libcxxabi] Introduce a -fno-exceptions libc++abi libary variantAsiri Rathnayake2016-05-3149-17/+450
| | | | | | | | | | | | | | | | | Currently there is only support for a -fno-exceptions libc++ build. This is problematic for functions such as std::terminate() which are defined in libc++abi and using any of those functions throws away most of the benefits of using -fno-exceptions (code-size). This patch introduces a -fno-exceptions libc++abi build to address this issue. This new variant of libc++abi cannot be linked against any with-exceptions code as some symbols necessary for handling exceptions are missing in this library. Differential revision: http://reviews.llvm.org/D20677 Reviewers: EricWF, mclow.lists, bcraig llvm-svn: 271267
* libc++abi: build with -fvisibility=hiddenSaleem Abdulrasool2016-05-265-3/+12
| | | | | | | | Enable building libc++abi with hidden visibility by default. The ABI mandated interfaces (and a few extra) are already set up to be externally visible. This allows us to ensure that any implementation details are not leaked. llvm-svn: 270816
* Allow explicit pthread opt-inBen Craig2016-05-251-0/+10
| | | | | | | | | | | | | | When building libcxxabi in tree (i.e. in llvm/projects/libcxxabi, along with llvm/projects/libcxx), libcxx's config_site.in doesn't get created in a timely manner. This means that any configuration that is normally set in libcxx's config_site.in needs to be duplicated in libcxxabi to successfully build libcxxabi. This patch does exactly that for the _LIBCPP_HAS_THREAD_API_PTHREAD preprocessor define. http://reviews.llvm.org/D20574 llvm-svn: 270732
* libc++abi: make __cxa_call_unexpected visibleSaleem Abdulrasool2016-05-111-1/+1
| | | | | | | This may be invoked by the compiler, and needs to be made available so that the users can reference it. llvm-svn: 269255
* libc++abi: fix visibility of personalitiesSaleem Abdulrasool2016-05-041-2/+3
| | | | | | | The personality routines need to be exposed to the users as the functions reference the personality routine to handle exceptions. llvm-svn: 268477
* Enable testing for static libc++abiBen Craig2016-04-193-11/+13
| | | | | | | | | | | | | This change leverages framework changes made in libcxx. See those changes for more details. (http://reviews.llvm.org/D16544) Some Mac specific logic for testing against libc++abi had to be moved from libcxxabi's config.py, as it was overriding choices made in libcxx's config.py. That logic is now in libcxx's target_info.py. http://reviews.llvm.org/D16545 llvm-svn: 266729
* [CMake] Fix misleading error message in CMakeLists.txt.Eugene Zelenko2016-04-181-1/+1
| | | | | | Differential revision: http://reviews.llvm.org/D17117 llvm-svn: 266635
* Respect LIBCXXABI_LIBDIR_SUFFIX before an installBen Craig2016-04-181-3/+3
| | | | | | | | | | | | | | Prior to this patch, setting LIBCXXABI_LIBDIR_SUFFIX would confuse the check-libcxxabi target. libc++abi.* would get output to lib instead of lib${LIBCXXABI_LIBDIR_SUFFIX}, but the tests would look in the suffixed directory. Now, we match what libcxx does, and set the CMAKE_*_OUTPUT_DIRECTORY to the LIBRARY_DIR. http://reviews.llvm.org/D17410 llvm-svn: 266611
* Update copyright year to 2016.Paul Robinson2016-03-301-1/+1
| | | | llvm-svn: 264952
* [libcxxabi] Disable cxa_thread_atexit_test if unavailableJonas Hahnfeld2016-03-174-0/+8
| | | | | | | | | The feature check is already in place when building the library but wasn't honored for the tests. Differential Revision: http://reviews.llvm.org/D18205 llvm-svn: 263699
* Reducing stack usage of testBen Craig2016-03-041-36/+36
| | | | | | | | This test has a lot of classes with large amounts of manually inserted padding in them, presumably to prevent various optimizations. The test then creates lots of these objects on the stack. On embedded targets, this was usually enough to overflow the stack. I moved the objects to global / namespace scope. Since the tests are each in their own namespace, there should be no cross-test conflicts. llvm-svn: 262717
* [libcxxabi] Teach cxa_demangle about Hexagon's long double sizeBen Craig2016-01-201-1/+1
| | | | | | | cxa_demangle's default size for a long double is 10 bytes. Hexagon only has an 8 byte long double though. llvm-svn: 258313
* [libcxxabi] Make test tolerant of uncommon floating literal demanglingsBen Craig2016-01-201-5/+62
| | | | | | | | | | | | | | | libcxxabi uses the C99 library's %a format specifier to turn a floating point value into a hexadecimal string representation. The %a format specifier is rather loosely defined in the C spec though, and some C libraries emit a different (but valid) string for a given floating point value. In particular, the C spec only requires that there is a single, non-zero hexadecimal digit on the left of the decimal point. Given that constraint, there are typically four different valid representations of a floating point number. I have updated the test to accept any of the valid representations for demangled floating point literals. llvm-svn: 258311
* Mark some tests as XFAIL with GCC due to compiler bugsEric Fiselier2016-01-203-0/+12
| | | | llvm-svn: 258284
* Fix link flags order in RUN command.Eric Fiselier2016-01-201-1/+1
| | | | llvm-svn: 258277
* Recommit r256322: Fix PR25898 - Check for incomplete pointers types in ↵Eric Fiselier2016-01-192-17/+189
| | | | | | | | | | | can_catch(...) This patch re-commits r256322 and r256323. They were reverted due to a OS X test failure. The test failure has been fixed by libc++ commit r258217. This patch also adds some additional tests. llvm-svn: 258249
* Revert r258222 because it's missing files. Will re-commit complete patchEric Fiselier2016-01-191-17/+17
| | | | llvm-svn: 258228
* Recommit r256322: Fix PR25898 - Check for incomplete pointers types in ↵Eric Fiselier2016-01-191-17/+17
| | | | | | | | | | | can_catch(...) This patch re-commits r256322 and r256323. They were reverted due to a OS X test failure. The test failure has been fixed by libc++ commit r258217. This patch also adds some additional tests. llvm-svn: 258222
* Add missing license headersEric Fiselier2016-01-192-1/+18
| | | | llvm-svn: 258201
* Revert r256322 (and follow-up 256323), the test it added does not pass on OS X.Nico Weber2016-01-152-179/+17
| | | | llvm-svn: 257896
* [WebAssembly] Accomodate wasm's 128-bit long double.Dan Gohman2016-01-131-1/+2
| | | | llvm-svn: 257614
* Add new tests for throwing incomplete pointer typesEric Fiselier2015-12-231-18/+97
| | | | llvm-svn: 256323
* Fix PR25898 - Check for incomplete pointers types in can_catch(...)Eric Fiselier2015-12-232-17/+100
| | | | llvm-svn: 256322
* Fix ARM __cxa_end_cleanup() and gc-sections.Logan Chien2015-12-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This commit adds SHF_ALLOC and SHF_EXECINSTR section flags to `.text.__cxa_end_cleanup` section. This fixes a link error when we are using integrated-as and `ld.gold` (with `-Wl,--gc-sections` and `-Wl,--fatal-warnings`.) Detailed Explanation: 1. There might be some problem with LLVM integrated-as. It is not emitting any section flags for text sections. (This will be fixed in an independent commit.) 2. `ld.gold` will skip the external symbols in the section without SHF_ALLOC. This is the reason why `.text.__cxa_end_cleanup_impl` section is discarded even though it is referenced by `__cxa_end_cleanup()`. This commit workaround the problem by specifying the section flags explicitly. Fix http://llvm.org/PR21292 llvm-svn: 256241
* [libc++abi] Use libgcc and libgcc_s to provide _Unwind symbols instead of ↵Eric Fiselier2015-12-142-4/+6
| | | | | | | | | | | | | | | | | | libgcc_eh.a Summary: libgcc_eh.a cannot be used when building libc++abi as a shared library (the default configuration). See this post for some more discussion: https://gcc.gnu.org/ml/gcc/2012-03/msg00104.html This patch reverts back to using libgcc_s when linking libc++abi.so. Reviewers: danalbert, chandlerc, mclow.lists, ismail, compnerd Subscribers: vkalintiris, cfe-commits Differential Revision: http://reviews.llvm.org/D15440 llvm-svn: 255559
* Replace cmake check for printf with a check for fopen.Evgeniy Stepanov2015-12-101-1/+1
| | | | | | | Printf is a builtin, and the check fails with -Werror because of a clang warning about an incompatible redeclaration. llvm-svn: 255186
* .gitignore: ignore vim swap filesSaleem Abdulrasool2015-12-041-0/+4
| | | | llvm-svn: 254692
* ibc++abi: mark visibilitySaleem Abdulrasool2015-12-0410-212/+264
| | | | | | | | | Mark functions and types with the appropriate visibility. This is particularly useful for environments which explicitly indicate origin of functions (Windows). This aids in generating libc++abi as a DSO which exposes only the public interfaces. llvm-svn: 254691
* c++abi: whitespace adjustmentSaleem Abdulrasool2015-12-0410-322/+243
| | | | | | | Cleanup some code with clang-format to make the following change easier to identify material difference. NFC. llvm-svn: 254690
* c++abi: use __builtin_offsetof instead of offsetofSaleem Abdulrasool2015-11-181-8/+9
| | | | | | | | | Use `__builtin_offsetof` in place of `offsetof`. Certain environments provide a macro definition of `offsetof` which may end up causing issues. This was observed on Windows. Use `__builtin_offsetof` to ensure correct evaluation everywhere. NFC. llvm-svn: 253435
* 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-122-1/+3
| | | | | | Jason King for the report and suggested fix llvm-svn: 250097
* Fix incorrect parsing of arguments for nested functions. Reviewed as ↵Marshall Clow2015-10-082-2/+4
| | | | | | http://reviews.llvm.org/D13192. Thanks to Anseny Kapoulkine for the patch. llvm-svn: 249649
* Let cxa_demangle.cpp compile with gcc/libstdc++ 4.8 and clang-cl/MSVC2013's STL.Nico Weber2015-09-201-0/+24
| | | | | | | libstdc++ needs a few typedefs in malloc_alloc. MSVC's STL needs rebind(), construct(), destroy(). MSVC2013 also has no snprintf, but it exists in 2015. llvm-svn: 248129
* EH: fix register usage for SjLjSaleem Abdulrasool2015-09-201-5/+8
| | | | | | | | | | When using SjLj EH, do not use __builtin_eh_return_regno, map directly to the ID. This would work on some targets, particularly those where the non-SjLj EH personality used the same register mapping (0 -> 0, 1 -> 1). However, this is not guaranteed. Avoiding the use of the builtin enables the use of libc++ with SjLj EH on all targets. llvm-svn: 248108
* 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
OpenPOWER on IntegriCloud