Commit Graph

3584 Commits

Author SHA1 Message Date
Petr Hosek
44197a11b1 [libcxx] Use C++14 when building libc++ with musl
musl's pthread implementations use volatile types in their structs
which is not being constexpr in C++11 but is in C++14.

Differential Revision: https://reviews.llvm.org/D25491

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284950 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-23 21:48:27 +00:00
Eric Fiselier
1e836f0cc7 Fix breakage introduced by adding -Wshadow.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284946 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-23 19:26:39 +00:00
Eric Fiselier
6547b4fa2b Fix libc++ specific assertion in permissions(...) tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284945 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-23 19:14:58 +00:00
Eric Fiselier
c8e7821916 Turn on -Wshadow so I find occurances before STL does
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284944 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-23 19:01:10 +00:00
Eric Fiselier
26cbb8d03e Make make_from_tuple tests more portable. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284943 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-23 18:55:51 +00:00
Eric Fiselier
317120240b Fix unreferenced parameters. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284942 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-23 18:52:58 +00:00
Eric Fiselier
e2c4227504 Fix shadowing warning. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284941 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-23 18:47:58 +00:00
Tim Shen
741cb8b8e6 [libcxx] Support std::regex_constants::match_not_null
Summary: Fixes PR21597.

Reviewers: mclow.lists, EricWF

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D25595

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284881 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-21 20:41:47 +00:00
Bruno Cardoso Lopes
2d164cbf6f [ModuleMap] Add more module entries to cover some non modular headers
These modules are necessary on Darwin to allow modules with
'no_undeclared_includes' (introduced in clang r284797) to work properly
while using libc++ headers.

Patch extracted from a suggested module.modulemap from Richard Smith!

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284801 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-21 03:14:27 +00:00
Marshall Clow
464abc8aee Adding a missing constexpr test for reverse_iterator operator[].
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284731 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-20 14:57:34 +00:00
Eric Fiselier
6d36efa497 Attempt to workaround XPASS for aligned allocation tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284691 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-20 03:31:07 +00:00
Marshall Clow
4414a6a911 Implement constexpr support for reverse_iterator. Reviewed as https://reviews.llvm.org/D25534
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284602 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-19 15:12:50 +00:00
Michal Gorny
4f031f899c [cmake] Allow testing against installed LLVM with no sources
Adjust the stand-alone build files to accept either CMake files from
LLVM_CMAKE_PATH or from LLVM_MAIN_SRC_DIR instead of requiring both.
This makes it possible to run libcxx tests on top of installed LLVM
and lit, without having to unpack a copy of LLVM sources. Furthermore,
it avoids adding duplicate paths.

Differential Revision: https://reviews.llvm.org/D25093

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284583 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-19 12:34:17 +00:00
Michal Gorny
7c2afba80b [solaris] Convert the support library to C++ to fix -std=c++11 build
Convert the Solaris xlocale.c compatibility library from plain C to C++
in order to fix the build failures caused by the addition of -std=c++11
to LIBCXX_COMPILE_FLAGS. The additional flag got propagated to the C
file, resulting in error with strict compilers.

Differential Revision: https://reviews.llvm.org/D25431

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284494 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-18 16:54:59 +00:00
Michal Gorny
bf9e11c4a6 [solaris] Fix iswxdigit_l() support function prototype
Fix the iswxdigit_l() function prototype to take wint_t parameter
instead of incorrect wchar_t.

Differential Revision: https://reviews.llvm.org/D25431

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284493 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-18 16:54:54 +00:00
Eric Fiselier
4035b668e6 Make any_cast<void()>(nullptr) compile
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284333 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 11:56:38 +00:00
Eric Fiselier
2a901dae5a Update LWG 2754 status
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284326 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 03:52:48 +00:00
Eric Fiselier
100603508d Fix use of non-constexpr C++14 addressof
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284325 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 03:49:18 +00:00
Eric Fiselier
fcdb3f77e8 Update LWG 2767 and add test case
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284324 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 03:45:06 +00:00
Eric Fiselier
46c0fcb2b3 Update status for std::optional LWG issues and fix an optional SFINAE bug
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284323 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 03:21:35 +00:00
Eric Fiselier
846edfb837 Update issue status for LWG 2744
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284322 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 02:51:50 +00:00
Eric Fiselier
100a39d169 Update issue status for LWG 2768 and 2769
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284321 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 01:43:43 +00:00
Eric Fiselier
6e5869a3fb Update notes for LWG 2678
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284319 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 00:49:33 +00:00
Eric Fiselier
1e1bbc7437 Implement LWG 2712 and update other issues status
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284318 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 00:47:59 +00:00
Eric Fiselier
451f34db16 Implement LWG 2681 and 2682
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284316 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 00:29:22 +00:00
Eric Fiselier
8bbf53fc93 Mark LWG 2680 as done
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284315 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-15 23:12:30 +00:00
Eric Fiselier
25dc5bdb88 Implement LWG 2672.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284314 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-15 23:05:04 +00:00
Eric Fiselier
620a9a5ecf Implement modified LWG 2665
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284313 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-15 22:37:42 +00:00
Eric Fiselier
4ca4e5038b Implement LWG2664 and update its status
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284310 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-15 21:29:44 +00:00
Eric Fiselier
9f39437989 Update the status of issues
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284309 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-15 20:58:51 +00:00
Eric Fiselier
9ffd1d56b4 Prevent new/delete replacement tests from being optimized away.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284289 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 22:47:08 +00:00
Eric Fiselier
e630058e90 Clarify XFAIL comments
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284282 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 21:30:35 +00:00
Asiri Rathnayake
4f2c83f055 [libcxx] Improve the gcc workaround for the missing __has_include macro.
NFC.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284237 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 13:56:58 +00:00
Asiri Rathnayake
7250d3341e [libcxx] Do not declare the thread api when __external_threading is present
This fixes a small omission where even when __external_threading is provided,
we attempt to declare a pthread based threading API. Instead, we should leave
out everything for the __external_threading header to take care of.

The __threading_support header provides a proof-of-concept externally threaded
libc++ variant when _LIBCPP_HAS_THREAD_API_EXTERNAL is defined. But if the
__external_threading header is present, we should exclude all of that POC stuff.

Reviewers: EricWF

Differential revision: https://reviews.llvm.org/D25468

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284232 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 13:00:07 +00:00
Eric Fiselier
29026ad78a Disable Modules when building the libc++ sources.
Libc++ will not build with modules enabled. In order to support an in-tree
libc++ when LLVM_ENABLE_MODULES is ON we need to explicitly disable the feature.

Unfortunately the libc++ sources are fundamentally non-modular. For example
iostream.cpp defines cout, cerr, wout, ... as char buffers instead of streams
in order to better control initialization/destruction. Not shockingly Clang
diagnoses this. Many other sources files define _LIBCPP_BUILDING_FOO macros to
provide definitions for normally inline symbols (See bind.cpp). Finally The
current module.map prohibits using <strstream> in C++11 so we can't build
strstream.cpp.

I think I can fix most of these issues but until then just disable modules.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284230 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 12:56:52 +00:00
Eric Fiselier
78c020bd78 Work around Clang driver segfault when --coverage is used with -c and /dev/null
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284225 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 10:30:33 +00:00
Eric Fiselier
472c8c6612 Remove dead CMake target
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284216 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 09:06:38 +00:00
Eric Fiselier
f172df1f43 XFAIL aligned allocation tests for older Clang versions
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284214 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 08:47:09 +00:00
Eric Fiselier
34c6b805cf XFAIL aligned allocation test failures with UBSAN
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284210 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 07:49:15 +00:00
Eric Fiselier
48aa2e14a2 Add void_t and invoke feature test macros
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284209 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 07:19:52 +00:00
Eric Fiselier
bf702696d4 Update OS X ABI list
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284208 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 06:49:30 +00:00
Eric Fiselier
06e44a7ea8 Correct ABI changelog revision number
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284207 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 06:47:37 +00:00
Eric Fiselier
9acbffa370 Implement P0035R4 -- Add C++17 aligned allocation functions
Summary:
This patch implements the library side of P0035R4. The implementation is thanks to @rsmith.

In addition to the C++17 implementation, the library implementation can be explicitly turned on using `-faligned-allocation` in all dialects.


Reviewers: mclow.lists, rsmith

Subscribers: rsmith, cfe-commits

Differential Revision: https://reviews.llvm.org/D25591

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284206 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 06:46:30 +00:00
Eric Fiselier
4289b6ea05 Cleanup LIT testing doc
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284205 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 06:15:27 +00:00
Eric Fiselier
9dbc053b47 Remove two ABI symbols added after the 3.9 release
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284200 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 05:29:46 +00:00
Eric Fiselier
8efec5eeb6 Add ABI changelog entry for <any>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284199 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 05:10:06 +00:00
Eric Fiselier
852b521720 Sort ABI lists by name so that changes don't generate big diffs
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284198 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 05:04:00 +00:00
Eric Fiselier
7fa27fcbaf Revert r284193 - it is not correct on OS X
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284194 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 04:21:24 +00:00
Eric Fiselier
c3d49c930b Re-export two previously exported std::string functions.
These functions were removed from the dylib sometime between the 3.9 release
and now. This patch manually exports them to re-gain ABI compatibility.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284193 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 04:14:24 +00:00
Eric Fiselier
977cd9f231 Add ABI list for 3.9 linux
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284192 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 04:06:19 +00:00