Commit Graph

5523 Commits

Author SHA1 Message Date
Marshall Clow
2b866255ed Make to_chars/from_chars work back to C++11. This means that we can use them to implement to_string as well. Reviewed as https://reviews.llvm.org/D59598.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356585 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-20 18:13:23 +00:00
Louis Dionne
9009625c82 [NFC] Fix a couple of typos in libc++'s __config
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356574 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-20 17:05:52 +00:00
Louis Dionne
292174b1fe [libc++] Do not force going through xcrun to find Clang in the macOS CI scripts
It should be possible to run those CI scripts with different compilers
by simply exporting a different CXX environment variable.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356562 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-20 15:40:56 +00:00
Louis Dionne
51ecd6cd07 [libc++] Mark <filesystem> tests as failing when the dylib doesn't support filesystem
This fixes CI for back-deployment testers on platforms that don't have
<filesystem> support in the dylib.

This is effectively half of https://reviews.llvm.org/D59224. The other
half requires fixes in Clang.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356558 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-20 14:34:00 +00:00
Louis Dionne
2fa9a05abf [libc++] Flag file_clock test as expected to fail with ASAN
This silences a known issue, as can be seen by looking at similar
tests for other clocks, like time.clock.steady/consistency.pass.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356528 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 21:53:32 +00:00
Louis Dionne
b0ee47d012 [libc++] Complete the ABI changelog after landing <filesystem> in the dylib
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356523 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 21:32:37 +00:00
Louis Dionne
3b886a1ce8 [libc++] Build <filesystem> support as part of the dylib
Summary:
This patch treats <filesystem> as a first-class citizen of the dylib,
like all other sub-libraries (e.g. <chrono>). As such, it also removes
all special handling for installing the filesystem library separately
or disabling part of the test suite from the lit command line.

Unlike the previous attempt (r356500), this doesn't remove all the
filesystem tests.

Reviewers: mclow.lists, EricWF, serge-sans-paille

Subscribers: mgorny, christof, jkorous, dexonsmith, jfb, jdoerfert, libcxx-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356518 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 20:56:13 +00:00
Thomas Anderson
3cc1daa7cf [libc++] Speed up certain locale functions on Windows
The issue is that __libcpp_locale_guard makes some slow calls to setlocale().
This change avoids using __libcpp_locale_guard in snprintf_l().

Fixes https://bugs.llvm.org/show_bug.cgi?id=41131

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


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356512 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 20:30:58 +00:00
Louis Dionne
e76d13a487 Revert "[libc++] Build <filesystem> support as part of the dylib"
When I applied r356500 (https://reviews.llvm.org/D59152), I somehow
deleted all of filesystem's tests. I will revert r356500 and re-apply
it properly.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356505 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 19:27:29 +00:00
JF Bastien
6ba69cac26 Fix char.traits.specializations.char8_t main return
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356504 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 19:25:07 +00:00
Eric Fiselier
e598abfa71 Fixup ABI lists on Linux after adding <filesystem> to the dylib.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356503 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 19:20:43 +00:00
Eric Fiselier
5dcbdaccb2 Add visibility attributes and inline to some vector methods.
Adding filesystem to the dylib caused some vector symbols to leak
into the set of exported symbols. This patch hides those symbols.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356502 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 19:19:44 +00:00
Louis Dionne
582679a3fe [libc++] Build <filesystem> support as part of the dylib
Summary:
This patch treats <filesystem> as a first-class citizen of the dylib,
like all other sub-libraries (e.g. <chrono>). As such, it also removes
all special handling for installing the filesystem library separately
or disabling part of the test suite from the lit command line.

Reviewers: mclow.lists, EricWF, serge-sans-paille

Subscribers: mgorny, christof, jkorous, dexonsmith, jfb, jdoerfert, libcxx-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356500 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 19:09:33 +00:00
JF Bastien
7dfcf562fe Fix fenv.pass.cpp signature for main
And make main return.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356493 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 18:24:11 +00:00
Louis Dionne
5ac0b8f250 [libc++] Mark internal types of std::filesystem as hidden
Summary:
Otherwise, implicit instantiations of templates with these types can
cause the dylib to start exporting the vtable/RTTI of the instantiation.
Giving hidden visibility to those types causes the compiler to understand
that they are not used outside the dylib, and as a result implicitly
instantiated vtables/RTTI of templates with those internal types will
get hidden visibility.

Reviewers: EricWF

Subscribers: christof, jkorous, dexonsmith, jdoerfert, libcxx-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356488 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 17:47:53 +00:00
Marshall Clow
ddb1b0576a Mark 'front()' and 'back()' as noexcept for array/deque/string/string_view. These are just rebranded 'operator[]', and should be noexcept like it is.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356435 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 03:30:07 +00:00
Eric Fiselier
e7641c9db9 Remove unused try catch blocks from old debug tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356429 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-19 00:00:30 +00:00
Eric Fiselier
f7d368bb1f Fix test failures after debug mode changes
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356421 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-18 22:12:09 +00:00
Eric Fiselier
eb2e397396 Remove exception throwing debug mode handler support.
Summary:
The reason libc++ implemented a throwing debug mode handler was for ease of testing. Specifically,
I thought that if a debug violation aborted, we could only test one violation per file. This made
it impossible to test debug mode. Which throwing behavior we could test more!

However, the throwing approach didn't work either, since there are debug violations underneath noexcept
functions. This lead to the introduction of `_NOEXCEPT_DEBUG`, which was only noexcept when debug
mode was off.

Having thought more and having grown wiser, `_NOEXCEPT_DEBUG` was a horrible decision. It was
viral, it didn't cover all the cases it needed to, and it was observable to the user -- at worst
changing the behavior of their program.

  This patch removes the throwing debug handler, and rewrites the debug tests using 'fork-ing' style
  death tests.

Reviewers: mclow.lists, ldionne, thomasanderson

Reviewed By: ldionne

Subscribers: christof, arphaman, libcxx-commits, #libc

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356417 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-18 21:50:12 +00:00
Louis Dionne
228a6295cf [libc++][NFC] Promote CMake comment to an actual option description
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356386 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-18 18:18:01 +00:00
Louis Dionne
247cbe7327 [libc++] Add a test for PR40977
Even though the header makes the exact same check since https://llvm.org/D59063,
the headers could conceivably change in the future and introduce a bug.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356376 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-18 15:40:49 +00:00
Marshall Clow
527149c670 Update a deque test with more assertions. NFC
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356266 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-15 15:00:41 +00:00
Marshall Clow
9039043195 Mark vector::operator[] and front/back as noexcept. We already do this for string and string_view. This should give better codegen inside of noexcept functions. Add tests for op[]/front/back/at, because apparently we had none.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356224 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-15 00:29:35 +00:00
Marshall Clow
6c8cbbf49c XFAIL this debug-mode test that I just broke. Eric has a patch out for review (D59166) that rewrites this test completely, so I'm not going to bother fixing it.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356211 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-14 22:24:32 +00:00
Marshall Clow
fa199b9339 Add noexcept to operator[] for array and deque. This is an extension. We already do this for string and string_view. This should give better codegen inside of noexcept functions.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356209 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-14 21:56:57 +00:00
Marshall Clow
3f377ef16a Reorg the midpoint pointer test into runtime and constexpr tests; comment out the volatile constexpr tests for GCC because our experimental gcc bot barfs on them.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356177 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-14 17:43:41 +00:00
Marshall Clow
3166f3aa00 Fix two of the three bot failures for midpoint; the ones regarding the lack of '__int128_t'
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356169 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-14 17:20:02 +00:00
Louis Dionne
41aeda8093 [libc++][CMake] Do not define cxx_shared_EXPORTS when building the shared library
CMake will define -Dcxx_shared_EXPORTS when building the shared library
by default. In theory, this is used to signal to the library that we're
building a shared library and that dllimport/dllexport should be used.
However, we already have our own way of doing that, so I'm removing this
define to avoid meaningless command line arguments in the build.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356167 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-14 17:15:47 +00:00
Marshall Clow
5310aa3850 Add std::midpoint for integral and poiner types. Described in P0811, reviewed as D59099.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356162 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-14 16:25:55 +00:00
Louis Dionne
36684e49e2 [libc++][CMake] Fix typo introduced in r356150
That typo broke the build when the shared library build was disabled.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356155 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-14 14:52:26 +00:00
Louis Dionne
e54dd56e8e [libc++] Do not force building with -fPIC (re-applying)
Summary:
In r355746, we stopped forcing to build with -fPIC because that should
be specified by the CMAKE_POSITION_INDEPENDENT_CODE option at CMake
configure time (and by default -fPIC is used for shared libraries anyways).

However, r355746 had to be reverted in r355756 because we were not
actually building the shared library with -fPIC. The reason is that
we were sharing an object library between the static and the shared
library, which caused flags for static libraries to be used when
building object files that were going to be used for a shared library.

Since this was resolved by r356150, we can stop forcing -fPIC again.

Reviewers: EricWF, smeenai

Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356153 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-14 14:38:38 +00:00
Louis Dionne
18616964ee [libc++] Do not share an object library to create the static/shared libraries
Summary:
The problem with using an object library for doing this is that it prevents
the shared library and the static library from being built with the right
default flags. For example, CMake will build shared libraries with -fPIC
by default, but not static libraries. Using an object library to create
the shared library will prevent the right default flags for shared
libraries from being used.

As a side effect, this patch also localizes the logic related to building
a hermetic static library to the static library case, making clear that
this has no effect on the shared library.

Reviewers: phosek, EricWF

Subscribers: mgorny, christof, jkorous, dexonsmith, jdoerfert, libcxx-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356150 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-14 14:19:08 +00:00
Eric Fiselier
a9efe90666 Properly constrain basic_string(Iter, Iter, Alloc = A())
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@356140 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-14 12:31:10 +00:00
Louis Dionne
9807685d51 [libc++] Enable deprecation warnings by default
Summary:
In r342843, I added deprecation warnings to some facilities that were
deprectated in C++14 and C++17. However, those deprecation warnings
were not enabled by default.

After discussing this on IRC, we had finally gotten consensus to enable
those warnings by default, and I'm getting around to doing that only
now.

Reviewers: mclow.lists, EricWF

Subscribers: christof, jkorous, dexonsmith, jdoerfert, libcxx-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355961 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-12 20:10:06 +00:00
Eric Fiselier
2ab98fbcd4 Allow optional to tolerate being used with a nested class.
When Clang tries to complete a type containing `std::optional` it
considers the `in_place_t` constructor with no arguments which checks
if the value type is default constructible. If the value type is a
nested class type, then this check occurs too early and poisons the
is_default_constructible trait.

This patch makes optional deduce `in_place_t` so we can prevent
this early SFINAE evaluation. Technically this could break people
doing weird things with the in_place_t tag, but that seems less
important than making the nested class case work.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355877 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-11 22:55:21 +00:00
Louis Dionne
a50f503562 [libc++] Remove empty header xlocale/xlocale.h
Summary:
I can't think of a reason for shipping this empty header. If there is
a reason to do so, then hopefully this review can uncover it.

Reviewers: mclow.lists, EricWF

Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355829 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-11 15:41:51 +00:00
Eric Fiselier
158cd4dca0 LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()"
Patch by Arthur O'Dwyer.
Reviewed as https://reviews.llvm.org/D47344

new_delete_resource().allocate(n, a) has basically two permissible results:

* Return an appropriately sized and aligned block.
* Throw bad_alloc.

Before this patch, libc++'s new_delete_resource would do a third and impermissible thing, which was
to return an appropriately sized but inappropriately under-aligned block. This is now fixed.

(This came up while I was stress-testing unsynchronized_pool_resource on my MacBook. If we can't
trust the default resource to return appropriately aligned blocks, pretty much everything breaks.
For similar reasons, I would strongly support just patching __libcpp_allocate directly, but I don't
care to die on that hill, so I made this patch as a <memory_resource>-specific workaround.)

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355763 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-09 00:38:19 +00:00
Eric Fiselier
c8839c8db0 Work around dllimport bug with exclude_from_explicit_instantiation.
When dllimport is specified on a class, and
exclude_from_explicit_instatiation is specified on a member, clang-cl
will still expect a definition to be available externally. But this is
not correct.

Surprisingly one one symbol seems to be consistently affected by this
bug. So this patch simply works around it there.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355760 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-08 23:59:29 +00:00
Eric Fiselier
116fd64479 Fix C++03 build failure
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355758 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-08 23:30:26 +00:00
Eric Fiselier
a23faa9455 Revert "[libc++] Do not force building with -fPIC"
This reverts commit r355764.

CMake does not turn -fPIC on for us by default. so this patch breaks
standalone builds. The only reason it hasn't broken any bots is because
LLVM turns on and specifies '-fPIC' for us.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355756 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-08 23:27:46 +00:00
Eric Fiselier
7af39704ff Unbork std::memory_order ABI.
Summary:
We need to pin the underlying type of C++20' `std::memory_order` to match the C++17 version. Anything less is an ABI break.

At the moment it's `unsigned` before C++20 and `int` after. Or if you're using `-fshort-enums` it's `unsigned char` before C++20 and `int` after.

This patch explicitly specifies the underlying type of the  C++20 `memory_order` to be w/e type the compiler would have chosen for the C++17 version.

Reviewers: mclow.lists, ldionne

Reviewed By: ldionne

Subscribers: jfb, jdoerfert, #libc, zoecarver

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355755 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-08 23:15:54 +00:00
Eric Fiselier
975cb9a721 Fix PR41017 - Build failure with _LIBCPP_DEBUG=0 and non-const-ref
comparator for std::sort()

Our debug comparator assumed that the comparator it wraps would always
accepts the values by const ref. This isn't required by the standard.

This patch makes our __debug_less comparator forward the constness.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355752 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-08 22:58:59 +00:00
Louis Dionne
11e3f8c4d4 [libc++] Do not force building with -fPIC
Summary:
Whether we build with -fPIC should be specified by the
CMAKE_POSITION_INDEPENDENT_CODE option at configure time.
Note that this patch doesn't change the behavior when building
by default, since -fPIC is used for shared libraries by default.

Reviewers: EricWF

Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355746 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-08 22:24:12 +00:00
Louis Dionne
6fb366d0be [NFC] Add missing revision information to ABI Changelog
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355732 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-08 21:01:25 +00:00
Matthew Voss
7f35e38753 Revert "[runtimes] Move libunwind, libc++abi and libc++ to lib/ and include/"
This broke the windows bots.

This reverts commit 28302c66d2586074f77497d5dc4eac7182b679e0.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355725 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-08 20:33:55 +00:00
Petr Hosek
7f02475f6c [runtimes] Move libunwind, libc++abi and libc++ to lib/ and include/
This change is a consequence of the discussion in "RFC: Place libs in
Clang-dedicated directories", specifically the suggestion that
libunwind, libc++abi and libc++ shouldn't be using Clang resource
directory.  Tools like clangd make this assumption, but this is
currently not true for the LLVM_ENABLE_PER_TARGET_RUNTIME_DIR build.
This change addresses that by moving the output of these libraries to
lib/<target> and include/ directories, leaving resource directory only
for compiler-rt runtimes and Clang builtin headers.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355665 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-08 05:35:22 +00:00
Thomas Anderson
9ae8fb4a3c [libc++] Fix use-after-free when building with _LIBCPP_DEBUG=1
The issue is the following code:

    __cn1->__add(*__ip);
    (*__ip)->__c_ = __cn1;

`__ip` points into the array of iterators for container `__cn2`.  This code adds
the iterator to the array of iterators for `__cn1`, and updates the iterator to
point to the new container.

This code works fine, except when `__cn1` and `__cn2` are the same container.
`__cn1->__add()` might need to grow the array of iterators, and when it does,
`__ip` becomes invalid, so the second line becomes a use-after-free error.

Simply swapping the order of the above two lines is not sufficient, because of
the memmove() below.  The easiest and most performant solution is just to skip
touching any iterators if the containers are the same.

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


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355550 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-06 21:10:08 +00:00
Eric Fiselier
417a7dee1c Fix ABI compatibility of <stdexcept> with VCRuntime.
Summary:
Currently, libc++'s `<stdexcept>` doesn't play nice with `vcruntime`. Specifically:

* `logic_error` and `runtime_error` have a different layout.
* libc++'s `logic_error` and `runtime_error` override `what()` but `vcruntime` does not.
*  `vcruntime` uses weak vtables for `<stdexcept>` types.
* libc++'s `<stdexcept>` constructors and assignment operators may have different manglings than `vcruntimes`.

This patch makes libc++'s declarations in `<stdexcept>` match those provided by MSVC's STL as closely as possible.
If MSVC doesn't declare a special member, then neither do we. This ensures that the implicit definitions have the same linkage, visibility, triviality, and noexcept-ness.







Reviewers: thomasanderson, ldionne, smeenai

Reviewed By: thomasanderson

Subscribers: jdoerfert, libcxx-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355546 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-06 20:31:57 +00:00
Louis Dionne
30a22af836 [libc++] Do not specify the underlying type of memory_order
Summary:
This breaks ABI for folks using -fshort-enums, and does not really buy
us anything.

http://llvm.org/PR40977

Reviewers: mclow.lists, EricWF

Subscribers: christof, jkorous, dexonsmith, libcxx-commits, zoecarver

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355521 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-06 17:07:24 +00:00
Marshall Clow
526bce48cc Eradicate all the ptrdiff_ts in span left over from applying P1227. A couple of other minor cleanups. NFC
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355481 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-06 03:59:44 +00:00