Commit Graph

1169 Commits

Author SHA1 Message Date
Eric Fiselier
f3e2a7180a Print stacktrace with UBSAN
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@256729 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-04 03:54:58 +00:00
Eric Fiselier
b1ece9c037 Fix locale feature testing in test suite.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@256621 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-30 04:45:42 +00:00
Eric Fiselier
2c9141a0a2 Fix test failure in 32 bit mode
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@256598 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-29 23:19:00 +00:00
Ben Craig
41f24f9348 [libcxx] Fixing the Mac / Darwin build
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@256594 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-29 23:01:07 +00:00
Ben Craig
4273e31ebc [libcxx] Fixing silly mistake from last commit.
Tested on Linux x86_64 targeting Linux x86_64.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@256592 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-29 22:55:55 +00:00
Ben Craig
424a05ccfe [libcxx] Fixing the Linux sanitizer builds
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@256591 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-29 22:43:17 +00:00
Ben Craig
75ea3d368d [libcxx] Refactoring target_info.py
This patch makes it easier to support running the lit tests for new and
unusual platforms. It will break existing users that set
LIBCXX_TARGET_INFO to anything other than the default. I think this is
fine, because the old LIBCXX_TARGET_INFO wasn't terribly useful.

The old way of supporting the different test platforms was to have
conditional code scattered throughout config.py. New platforms would need
to add conditionals there. Alternatively, the new platform could set
no_default_flags to true, and reconstitue almost the entire compile and
link line, including things that don't vary across platforms.

The new way of supporting new platforms is to create a new target info
class, and have make_target_info return an instance of it. For platforms
supported in-tree, that will be done by modifying make_target_info. For
out-of-tree platforms, users can set LIBCXX_TARGET_INFO at cmake configure
time.

The target info sub-classes can provide fine-grained information back to
config.py. The hooks that will most commonly be provided will be
add_cxx_compile_flags and add_cxx_link_flags. These hooks can provide the
platform specific flags, while letting config.py handle all the invariant
flags.

Target info hooks were added for each area that the existing config.py had
platform specific behavior. config.py is now mostly free of platform
specific conditionals.

This patch was tested on Linux x86_64. I both targeted Linux x86_64, and
an out-of-tree platform with a custom target_info. In both cases I was
able to run libcxx and libcxxabi tests. I do not have access to FreeBSD,
Darwin, or Windows machines that are set up for lit testing.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@256588 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-29 22:21:38 +00:00
Eric Fiselier
9bef1ff571 [libcxx] Fix LWG Issue #2367 - Fixing std::tuple and std::pair's default constructors.
Summary: This patch implements the solution for LWG Issue #2367. See http://cplusplus.github.io/LWG/lwg-active.html#2367

Reviewers: mclow.lists, EricWF

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D13750

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@256325 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-23 08:20:26 +00:00
Eric Fiselier
9a6a9c08e4 Fix type in tuple test. Sorry for the noise
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255944 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-18 01:04:36 +00:00
Eric Fiselier
199bee0ea7 [libcxx] LWG2485: get() should be overloaded for const tuple&&. Patch from K-Ballo.
Review: http://reviews.llvm.org/D14839

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255941 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-18 00:36:55 +00:00
Eric Fiselier
e39f4b996e Fix various GCC mis-configurations for newer versions.
This patch goes through and enables C++11 and C++14 features for newer GCC's.
The main changes are:

1. Turn on variable templates. (Uses __cpp_variable_templates)
2. Assert atomic<Tp> is trivially copyable (Uses _GNUC_VER >= 501).
3. Turn on trailing return support for GCC. (Uses _GNUC_VER >= 404)
4. XFAIL void_t test for GCC 5.1 and 5.2. Fixed in GCC 6.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255585 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-15 00:32:21 +00:00
Eric Fiselier
ed99798624 Update how libc++/libc++abi link the tests. Follow up on r255559.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255560 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-14 22:24:19 +00:00
Marshall Clow
90e328c271 K-Ballo pointed out a mistake in the add_lvalue_ref tests I checked in; now more of them are passing. Thanks
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255519 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-14 18:11:51 +00:00
Marshall Clow
b6621c5259 Fix a corner case that involved calling rethrow_if_nested with a type that had a deleted operator&. Added a test to catch this as well. Thanks to Ville for the heads-up.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255517 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-14 18:01:56 +00:00
Marshall Clow
633fe505fe Add add_lvalue_ref tests for a few function types, with a note why not more
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255513 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-14 17:34:03 +00:00
Eric Fiselier
76d2446cf4 Use __make_integer_seq builtin for std::make_integer_sequence. Patch by K-ballo.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255162 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-09 22:03:06 +00:00
Marshall Clow
a3866e4c89 Last bit of P0006; mark it as complete
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254290 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 05:39:30 +00:00
Marshall Clow
ea972908a3 Fix bugs in alignment_of_v, etc. Re-enable the newly added tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254289 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 05:20:00 +00:00
Marshall Clow
c180f34dd3 Temporarily disable new tests while I figure out what's going on
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254288 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 05:15:10 +00:00
Marshall Clow
5c2fabf7f7 Fix bad macros
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254287 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 05:10:10 +00:00
Marshall Clow
8254964ef0 Implement more of P0006; Type Traits Variable Templates. <ratio>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254285 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 05:04:22 +00:00
Marshall Clow
b5599c682f Fix bad macros in tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254284 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 05:03:35 +00:00
Marshall Clow
a3e7f528a2 Implement more of P0006; Type Traits Variable Templates.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254283 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 04:30:02 +00:00
Marshall Clow
14ba0ad689 Add static_assert to set/multiset/map/multimap/forward_list/deque that the allocator's value_type match the container's value_type. vector/unordered/list/string already do this. Add tests for all the containers to verify this.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254119 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-26 01:24:04 +00:00
Marshall Clow
5a579cfea4 Silence a -Wmissing-braces warning in the tests; mbstate_t is defined differently on different C libraries.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254050 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-25 01:06:36 +00:00
Marshall Clow
eefcf8206e Remove undefined behavior from tests; specifically, ensure that the value type of the allocators match the value type of the containers
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254030 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-24 22:10:51 +00:00
Eric Fiselier
55dbcdab7f Fix bad variable name. project_root -> project_obj_root
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@253382 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-17 21:48:29 +00:00
Marshall Clow
99b6e56ae9 Add tests for the extended integer types - as required by LWG#2119
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@253376 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-17 21:04:24 +00:00
Marshall Clow
f60d092766 Implement P0007: Constant View: A proposal for a std::as_const helper function template.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@253274 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-17 00:08:08 +00:00
Marshall Clow
ffc9c61015 Fix compile error in test. Can't use operator[] for multimap.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@253271 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-16 23:40:27 +00:00
Marshall Clow
15a326c525 More tests for LWG#2156
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@253257 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-16 22:18:36 +00:00
Marshall Clow
7b7c9ec355 LWG#2156 loosened the requirements on unordered containers 'rehash' calls. Add tests to make sure we meet these requirements. Since we met the stricter ones, no code change needed to meet the looser ones.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@253223 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-16 16:42:16 +00:00
Marshall Clow
fe99a30bd0 Implement P0013R1: Logical Operator Type Traits. Make a hidden implementation (__and_, __or_, and __not_) so that we can use them elsewhere in non-C++17 code - for example, in the LFTS
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@253215 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-16 15:54:13 +00:00
Marshall Clow
3f159e874c Implement P0074: Making owner_less more flexible
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252905 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-12 15:56:44 +00:00
Asiri Rathnayake
94d9b1c5b2 [libcxx] Fixup a few fumbles in the initial no-exceptions XFAILs list.
The initial buildbot run found a few missing bits in the initial XFAIL list
for the no-exceptions libc++ variant. These discrepancies are as follows:

[1] Following two tests need XFAILs on the no-exceptions library variant.
My local runs had these two disabled for other reasons (unsupported):

  - localization/locales/locale/locale.cons/char_pointer.pass.cpp
  - numerics/complex.number/complex.ops/complex_divide_complex.pass.cpp

[2] These three does not need XFAILs, they were failing on my local runs for
other reasons:

  - depr/depr.c.headers/uchar_h.pass.cpp
  - input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp
  - .../category.collate/locale.collate.byname/transform.pass.cpp

(these are failing on my box for the default build as well)

The current patch fixes both the cases above. Additionally, I've run the
following scan to make sure I've covered all the cases:

> grep ' catch \| try \| throw ' -R . | perl -pe 's|(.*?):.*|\1|' | sort | \
  uniq > 1.txt
> grep 'libcpp-no-exceptions' -R . | perl -pe 's|(.*?):.*|\1|' | sort | \
  uniq > 2.txt
> diff 1.txt 2.txt

This showed up a few extra interesting cases:

[3] These two tests do not use try/catch/throw statements, but they fail at
runtime. Need to be investigated, I've left the XFAILs in.

  - std/thread/futures/futures.shared_future/dtor.pass.cpp
  - std/thread/futures/futures.unique_future/dtor.pass.cpp

[4] These tests use a macro named TEST_HAS_NO_EXCEPTIONS to conditionally
exclude try/catch/throw statements when running without exceptions. I'm not
entirely sure why this was needed (AFAIK, we didn't have a no-exceptions
library build before). The macro's defintion is quite similar to that of
_LIBCPP_NO_EXCEPTIONS. I will investigate if this can be reused for my test
fixes or if it should be replaced with _LIBCPP_NO_EXCEPTIONS.

  - std/experimental/any/*

Change-Id: I9ad1e0edd78f305406eaa0ab148b1ab693f7e26a

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252870 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-12 10:41:57 +00:00
Marshall Clow
e1c5c419f5 Fix typo I just introduced.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252614 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-10 16:10:17 +00:00
Marshall Clow
1bae7a868b std:: qualify ptrdiff_t in the test. Thanks to Walter for the catch
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252613 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-10 16:04:13 +00:00
Marshall Clow
55d741c32e Walter pointed out some missing includes in the tests. Fixing the includes uncovered a couple bugs in the _v type traits. Fixed those, too
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252612 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-10 15:48:23 +00:00
Marshall Clow
a28344c08b Explicitly #include <utility> so that we get std::move. Thanks to Walter for the bug report.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252610 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-10 15:22:08 +00:00
Asiri Rathnayake
cc2e93cff0 Make it possible to build a no-exceptions variant of libcxx.
Fixes a small omission in libcxx that prevents libcxx being built when
-DLIBCXX_ENABLE_EXCEPTIONS=0 is specified.

This patch adds XFAILS to all those tests that are currently failing
on the new -fno-exceptions library variant. Follow-up patches will
update the tests (progressively) to cope with the new library variant.

Change-Id: I4b801bd8d8e4fe7193df9e55f39f1f393a8ba81a

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252598 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-10 11:41:22 +00:00
NAKAMURA Takumi
84bdf2cbe4 Make check-libcxx Py3-compatible.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252458 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-09 10:55:04 +00:00
Marshall Clow
e9ef988b08 Implement LWG#2353: std::next is over-constrained
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252407 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-07 17:48:49 +00:00
Marshall Clow
6455d85714 More of P0006R0: type traits variable aliases for C++17.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252406 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-07 17:44:36 +00:00
Evgeniy Stepanov
746572b91d Allow deque to handle incomplete types.
Allow deque and deque::iterator instantiation with incomplete element
type. This is an ABI breaking change, and it is only enabled if
LIBCXX_ABI_VERSION >= 2 or LIBCXX_ABI_UNSTABLE=ON.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252350 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-06 22:02:29 +00:00
Marshall Clow
223df2ef0f Implement P0092R1 for C++1z
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252195 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-05 19:33:59 +00:00
Marshall Clow
25bcb0a5a9 Remove undefined behavior from some tests. Same pattern as the unitialized_copy tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251804 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-02 15:29:13 +00:00
Marshall Clow
48bcd27b67 Remove undefined behavior from some tests. Thanks to Walter Brown for the heads-up.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251802 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-02 15:25:53 +00:00
Marshall Clow
59b5ea57c3 Add 'nostdinc++' to the flags used by testit. Makes the tests run better on Mac OS X with the new depr.c headers change
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251768 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-01 21:14:22 +00:00
Marshall Clow
fe11cfdd65 Improve the tests for 'is_literal_type'
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251767 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-01 21:13:10 +00:00
Marshall Clow
94611a888b Implement the first part of P0006R0: Adopt Type Traits Variable Templates for C++17. Significantly augment the existing tests.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251766 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-01 20:24:59 +00:00