History log of /llvm-project/libcxx/test/std/utilities/variant/variant.visit/visit.pass.cpp (Results 1 – 25 of 32)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2
# 5dfdac74 01-Aug-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++][NFC] Avoid opening namespace std in the tests (#94160)

This also adds a few FIXMEs where we use UB in the tests.


Revision tags: llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3
# dfde6e89 26-Mar-2024 Hui <hui.xie1990@gmail.com>

[libc++][test] Remove tests that testing std::variant<T&> (#84222)

Fixes #83600


Revision tags: llvmorg-18.1.2
# 2a385514 11-Mar-2024 Nikolas Klauser <nikolasklauser@berlin.de>

[libc++] Remove <tuple> from <variant> (#83183)

This moves a utility from `<tuple>` into an implementation detail header
and refactors the selection of the variant index type to use.


Revision tags: llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5
# ec350ad4 01-Nov-2023 philnik777 <nikolasklauser@berlin.de>

[libc++] Remove availability annotations which can never be triggered (#69226)

According to https://developer.apple.com/support/xcode/, quite a few of
our availability macros don't do anything anym

[libc++] Remove availability annotations which can never be triggered (#69226)

According to https://developer.apple.com/support/xcode/, quite a few of
our availability macros don't do anything anymore, so we might as well
remove them to clean up the code a bit.

show more ...


Revision tags: llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1
# f0fc8c48 18-Mar-2023 Louis Dionne <ldionne.2@gmail.com>

[libc++] Use named Lit features to flag back-deployment XFAILs

Instead of writing something like `XFAIL: use_system_cxx_lib && target=...`
to XFAIL back-deployment tests, introduce named Lit feature

[libc++] Use named Lit features to flag back-deployment XFAILs

Instead of writing something like `XFAIL: use_system_cxx_lib && target=...`
to XFAIL back-deployment tests, introduce named Lit features like
`availability-shared_mutex-missing` to represent those. This makes the
XFAIL annotations leaner, and solves the problem of XFAIL comments
potentially getting out of sync. This would also make it easier for
another vendor to add their own annotations to the test suite by simply
changing how the feature is defined for their OS releases, instead
of having to modify hundreds of tests to add repetitive annotations.

This doesn't touch *all* annotations -- only annotations that were widely
duplicated are given named features (e.g. when filesystem or shared_mutex
were introduced). I still think it probably doesn't make sense to have a
named feature for every single fix we make to the dylib.

This is in essence a revert of 2659663, but since then the test suite
has changed significantly. Back when I did 2659663, the configuration
files we have for the test suite right now were being bootstrapped and
it wasn't clear how to provide these features for back-deployment in
that context. Since then, we have a streamlined way of defining these
features in `features.py` and that doesn't impact the ability for a
configuration file to stay minimal.

The original motivation for this change was that I am about to propose
a change that would touch essentially all XFAIL annotations for back-deployment
in the test suite, and this greatly reduces the number of lines changed
by that upcoming change, in addition to making the test suite generally
better.

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

show more ...


Revision tags: llvmorg-16.0.0
# fb855eb9 14-Mar-2023 Mark de Wever <koraq@xs4all.nl>

[libc++] Qualifies size_t.

This has been done using the following command

find libcxx/test -type f -exec perl -pi -e 's|^([^/]+?)((?<!::)size_t)|\1std::\2|' \{} \;

And manually removed some fals

[libc++] Qualifies size_t.

This has been done using the following command

find libcxx/test -type f -exec perl -pi -e 's|^([^/]+?)((?<!::)size_t)|\1std::\2|' \{} \;

And manually removed some false positives in std/depr/depr.c.headers.

The `std` module doesn't export `::size_t`, this is a preparation for that module.

Reviewed By: ldionne, #libc, EricWF, philnik

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

show more ...


Revision tags: llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2
# cb71d77c 29-Dec-2021 Casey Carter <Casey@Carter.net>

[libcxx][test] Add missing includes and suppress warnings

... from testing with MSVC's STL. Mostly truncation warnings and variables that are only used in `LIBCPP_ASSERT`.

Differential Revision: ht

[libcxx][test] Add missing includes and suppress warnings

... from testing with MSVC's STL. Mostly truncation warnings and variables that are only used in `LIBCPP_ASSERT`.

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

show more ...


Revision tags: llvmorg-13.0.1-rc1
# d4b59a05 30-Sep-2021 Arthur O'Dwyer <arthur.j.odwyer@gmail.com>

[libc++] Remove "// -*- C++ -*-" comments from all .cpp files. NFCI.

Even if these comments have a benefit in .h files (for editors that
care about language but can't be configured to treat .h as C+

[libc++] Remove "// -*- C++ -*-" comments from all .cpp files. NFCI.

Even if these comments have a benefit in .h files (for editors that
care about language but can't be configured to treat .h as C++ code),
they certainly have no benefit for files with the .cpp extension.

Discussed in D110794.

show more ...


Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3
# c360553c 18-Jun-2021 Louis Dionne <ldionne.2@gmail.com>

[runtimes] Simplify how we specify XFAIL & friends based on the triple

Now that Lit supports regular expressions inside XFAIL & friends, it is
much easier to write Lit annotations based on the tripl

[runtimes] Simplify how we specify XFAIL & friends based on the triple

Now that Lit supports regular expressions inside XFAIL & friends, it is
much easier to write Lit annotations based on the triple.

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

show more ...


Revision tags: llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1
# 74d096e5 07-May-2021 Louis Dionne <ldionne.2@gmail.com>

[libc++] Move handling of the target triple to the DSL

This fixes a long standing issue where the triple is not always set
consistently in all configurations. This change also moves the
back-deploym

[libc++] Move handling of the target triple to the DSL

This fixes a long standing issue where the triple is not always set
consistently in all configurations. This change also moves the
back-deployment Lit features to using the proper target triple
instead of using something ad-hoc.

This will be necessary for using from scratch Lit configuration files
in both normal testing and back-deployment testing.

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

show more ...


Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4
# 0324b46c 25-Mar-2021 Marek Kurdej <marek.kurdej+llvm.org@gmail.com>

[libc++] [C++2b] [P2162] Allow inheritance from std::variant.

This patch changes the variant even in pre-C++2b.
It should not break anything, only allow use cases that didn't work previously.

Notes

[libc++] [C++2b] [P2162] Allow inheritance from std::variant.

This patch changes the variant even in pre-C++2b.
It should not break anything, only allow use cases that didn't work previously.

Notes:
`__as_variant` is used in `__visitation::__variant::__visit_alt`, but I haven't used it in `__visitation::__variant::__visit_alt_at`.
That's because it is used only in `__visit_value_at`, which in turn is always used on variant specializations (that's in comparison operators).

* https://wg21.link/P2162

Reviewed By: ldionne, #libc, Quuxplusone

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

show more ...


Revision tags: llvmorg-12.0.0-rc3
# 3c62198c 03-Mar-2021 Louis Dionne <ldionne.2@gmail.com>

[libc++] NFC: Normalize links to bug reports


Revision tags: llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init
# 51faba35 25-Jan-2021 Ruslan Arutyunyan <ruslan.arutyunyan@intel.com>

[libc++] Implement P0655R1 visit<R>: Explicit Return Type for visit

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


Revision tags: llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2
# e0ec7a02 17-Aug-2020 Michael Park <mcypark@gmail.com>

[libcxx/variant] Correctly propagate return type of the visitor.

The tests for it were missing so I've added them.

Reviewed By: #libc, EricWF

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


# a175a965 11-Aug-2020 Michael Park <mcypark@gmail.com>

[libcxx/variant] Introduce `switch`-based mechanism for `std::visit`.

This patch introduces mechanism for `std::visit` backed by `switch`.
The `switch` is structured such that it's a flattened manua

[libcxx/variant] Introduce `switch`-based mechanism for `std::visit`.

This patch introduces mechanism for `std::visit` backed by `switch`.
The `switch` is structured such that it's a flattened manual vtable (an n-ary array).
The `switch` mechanism is enabled if `(1 * ... * vs.size()) < 1024`.

The following are performance numbers from the benchmarks added in D85419, tested on my 2017 Macbook Pro.

```
$ ./projects/libcxx/benchmarks/variant_visit_1.libcxx.out
2020-08-09 23:55:14
Running ./projects/libcxx/benchmarks/variant_visit_1.libcxx.out
Run on (8 X 3100 MHz CPU s)
CPU Caches:
L1 Data 32K (x4)
L1 Instruction 32K (x4)
L2 Unified 262K (x4)
L3 Unified 8388K (x1)
Load Average: 2.03, 2.36, 2.43
------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------
BM_Visit<1, 1> 0.260 ns 0.260 ns 1000000000
BM_Visit<1, 2> 1.56 ns 1.56 ns 435925220
BM_Visit<1, 3> 1.55 ns 1.55 ns 444416228
BM_Visit<1, 4> 1.57 ns 1.57 ns 427951336
BM_Visit<1, 5> 1.57 ns 1.56 ns 444766371
BM_Visit<1, 6> 1.70 ns 1.68 ns 446639358
BM_Visit<1, 7> 1.64 ns 1.64 ns 400441630
BM_Visit<1, 8> 1.56 ns 1.56 ns 430729471
BM_Visit<1, 9> 1.58 ns 1.58 ns 449894596
BM_Visit<1, 10> 1.54 ns 1.54 ns 449660506
BM_Visit<1, 20> 1.56 ns 1.56 ns 450813074
BM_Visit<1, 30> 1.59 ns 1.59 ns 440032940
BM_Visit<1, 40> 1.59 ns 1.59 ns 443731656
BM_Visit<1, 50> 1.56 ns 1.56 ns 444709859
BM_Visit<1, 60> 1.59 ns 1.58 ns 439527320
BM_Visit<1, 70> 1.57 ns 1.57 ns 438450890
BM_Visit<1, 80> 1.58 ns 1.58 ns 443001525
BM_Visit<1, 90> 1.63 ns 1.62 ns 448456349
BM_Visit<1, 100> 1.57 ns 1.57 ns 445740630

$ ./projects/libcxx/benchmarks/variant_visit_2.libcxx.out
2020-08-09 23:59:35
Running ./projects/libcxx/benchmarks/variant_visit_2.libcxx.out
Run on (8 X 3100 MHz CPU s)
CPU Caches:
L1 Data 32K (x4)
L1 Instruction 32K (x4)
L2 Unified 262K (x4)
L3 Unified 8388K (x1)
Load Average: 1.40, 1.94, 2.22
-----------------------------------------------------------
Benchmark Time CPU Iterations
-----------------------------------------------------------
BM_Visit<2, 1> 0.261 ns 0.260 ns 1000000000
BM_Visit<2, 2> 1.55 ns 1.54 ns 432844219
BM_Visit<2, 3> 1.30 ns 1.30 ns 532529974
BM_Visit<2, 4> 1.54 ns 1.54 ns 446055910
BM_Visit<2, 5> 1.31 ns 1.31 ns 531099680
BM_Visit<2, 6> 1.56 ns 1.56 ns 443203475
BM_Visit<2, 7> 1.29 ns 1.29 ns 526478087
BM_Visit<2, 8> 1.56 ns 1.56 ns 439000834
BM_Visit<2, 9> 1.30 ns 1.30 ns 528756817
BM_Visit<2, 10> 1.56 ns 1.55 ns 442923039
BM_Visit<2, 20> 1.35 ns 1.35 ns 517021072
BM_Visit<2, 30> 1.60 ns 1.59 ns 419724661
BM_Visit<2, 40> 1.45 ns 1.44 ns 472137163
BM_Visit<2, 50> 1.65 ns 1.65 ns 421389743

$ ./projects/libcxx/benchmarks/variant_visit_3.libcxx.out
2020-08-10 00:01:32
Running ./projects/libcxx/benchmarks/variant_visit_3.libcxx.out
Run on (8 X 3100 MHz CPU s)
CPU Caches:
L1 Data 32K (x4)
L1 Instruction 32K (x4)
L2 Unified 262K (x4)
L3 Unified 8388K (x1)
Load Average: 2.20, 2.01, 2.21
-----------------------------------------------------------
Benchmark Time CPU Iterations
-----------------------------------------------------------
BM_Visit<3, 1> 0.272 ns 0.271 ns 1000000000
BM_Visit<3, 2> 1.87 ns 1.86 ns 361858090
BM_Visit<3, 3> 1.77 ns 1.77 ns 391192579
BM_Visit<3, 4> 1.84 ns 1.84 ns 374694223
BM_Visit<3, 5> 1.75 ns 1.75 ns 408270392
BM_Visit<3, 6> 1.88 ns 1.88 ns 378759185
BM_Visit<3, 7> 1.79 ns 1.79 ns 395498102
BM_Visit<3, 8> 1.85 ns 1.85 ns 371660366
BM_Visit<3, 9> 1.80 ns 1.80 ns 386872851
BM_Visit<3, 10> 1.84 ns 1.84 ns 362367606
BM_Visit<3, 15> 1.77 ns 1.77 ns 392060220
BM_Visit<3, 20> 1.85 ns 1.85 ns 379157188
```

```
$ ./projects/libcxx/benchmarks/variant_visit_1.libcxx.out
2020-08-10 00:05:57
Running ./projects/libcxx/benchmarks/variant_visit_1.libcxx.out
Run on (8 X 3100 MHz CPU s)
CPU Caches:
L1 Data 32K (x4)
L1 Instruction 32K (x4)
L2 Unified 262K (x4)
L3 Unified 8388K (x1)
Load Average: 2.27, 2.36, 2.34
------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------
BM_Visit<1, 1> 0.271 ns 0.271 ns 1000000000
BM_Visit<1, 2> 0.269 ns 0.269 ns 1000000000
BM_Visit<1, 3> 0.271 ns 0.271 ns 1000000000
BM_Visit<1, 4> 0.270 ns 0.270 ns 1000000000
BM_Visit<1, 5> 0.269 ns 0.269 ns 1000000000
BM_Visit<1, 6> 0.270 ns 0.269 ns 1000000000
BM_Visit<1, 7> 0.265 ns 0.265 ns 1000000000
BM_Visit<1, 8> 0.269 ns 0.269 ns 1000000000
BM_Visit<1, 9> 0.268 ns 0.268 ns 1000000000
BM_Visit<1, 10> 0.269 ns 0.269 ns 1000000000
BM_Visit<1, 20> 0.267 ns 0.267 ns 1000000000
BM_Visit<1, 30> 0.272 ns 0.272 ns 1000000000
BM_Visit<1, 40> 0.268 ns 0.268 ns 1000000000
BM_Visit<1, 50> 0.268 ns 0.268 ns 1000000000
BM_Visit<1, 60> 0.268 ns 0.268 ns 1000000000
BM_Visit<1, 70> 0.269 ns 0.269 ns 1000000000
BM_Visit<1, 80> 0.266 ns 0.266 ns 1000000000
BM_Visit<1, 90> 0.268 ns 0.268 ns 1000000000
BM_Visit<1, 100> 0.267 ns 0.267 ns 1000000000

$ ./projects/libcxx/benchmarks/variant_visit_2.libcxx.out
2020-08-12 04:09:59
Running ./projects/libcxx/benchmarks/variant_visit_2.libcxx.out
Run on (8 X 3100 MHz CPU s)
CPU Caches:
L1 Data 32K (x4)
L1 Instruction 32K (x4)
L2 Unified 262K (x4)
L3 Unified 8388K (x1)
Load Average: 2.17, 4.20, 4.78
-----------------------------------------------------------
Benchmark Time CPU Iterations
-----------------------------------------------------------
BM_Visit<2, 1> 0.302 ns 0.301 ns 1000000000
BM_Visit<2, 2> 0.297 ns 0.295 ns 1000000000
BM_Visit<2, 3> 0.353 ns 0.351 ns 1000000000
BM_Visit<2, 4> 0.276 ns 0.276 ns 1000000000
BM_Visit<2, 5> 0.285 ns 0.283 ns 1000000000
BM_Visit<2, 6> 0.290 ns 0.287 ns 1000000000
BM_Visit<2, 7> 0.282 ns 0.280 ns 1000000000
BM_Visit<2, 8> 0.290 ns 0.287 ns 1000000000
BM_Visit<2, 9> 0.291 ns 0.285 ns 1000000000
BM_Visit<2, 10> 0.293 ns 0.287 ns 1000000000
BM_Visit<2, 20> 1.70 ns 1.68 ns 391400375
BM_Visit<2, 30> 1.64 ns 1.63 ns 418925874
BM_Visit<2, 40> 1.63 ns 1.62 ns 423623677
BM_Visit<2, 50> 1.68 ns 1.67 ns 411687212

$ ./projects/libcxx/benchmarks/variant_visit_3.libcxx.out
2020-08-12 04:10:43
Running ./projects/libcxx/benchmarks/variant_visit_3.libcxx.out
Run on (8 X 3100 MHz CPU s)
CPU Caches:
L1 Data 32K (x4)
L1 Instruction 32K (x4)
L2 Unified 262K (x4)
L3 Unified 8388K (x1)
Load Average: 1.57, 3.76, 4.59
-----------------------------------------------------------
Benchmark Time CPU Iterations
-----------------------------------------------------------
BM_Visit<3, 1> 0.271 ns 0.270 ns 1000000000
BM_Visit<3, 2> 0.344 ns 0.334 ns 1000000000
BM_Visit<3, 3> 0.347 ns 0.336 ns 1000000000
BM_Visit<3, 4> 0.300 ns 0.296 ns 1000000000
BM_Visit<3, 5> 0.290 ns 0.286 ns 1000000000
BM_Visit<3, 6> 0.272 ns 0.271 ns 1000000000
BM_Visit<3, 7> 1.72 ns 1.71 ns 415765841
BM_Visit<3, 8> 1.73 ns 1.72 ns 408909555
BM_Visit<3, 9> 2.16 ns 2.04 ns 380898485
BM_Visit<3, 10> 2.45 ns 2.40 ns 295714256
BM_Visit<3, 15> 1.92 ns 1.85 ns 375990332
BM_Visit<3, 20> 1.66 ns 1.65 ns 414456233
```

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

show more ...


Revision tags: llvmorg-11.0.0-rc1
# 2659663e 16-Jul-2020 Louis Dionne <ldionne@apple.com>

[libc++] Remove shortcut Lit features for Apple backdeployment

Some time ago, I introduced shortcut features like dylib-has-no-shared_mutex
to encode whether the deployment target supported shared_m

[libc++] Remove shortcut Lit features for Apple backdeployment

Some time ago, I introduced shortcut features like dylib-has-no-shared_mutex
to encode whether the deployment target supported shared_mutex (say). This
made the test suite annotations cleaner.

However, the problem with building Lit features on top of other Lit
features is that it's easier for them to become stale, especially when
they are generated programmatically. Furthermore, it makes the bar for
defining configurations from scratch higher, since more features have
to be defined. Instead, I think it's better to put the XFAILs in the
tests directly, which allows cleaning them up with a simple grep.

show more ...


Revision tags: llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2
# 31cbe0f2 01-Jun-2020 Louis Dionne <ldionne@apple.com>

[libc++] Remove the c++98 Lit feature from the test suite

C++98 and C++03 are effectively aliases as far as Clang is concerned.
As such, allowing both std=c++98 and std=c++03 as Lit parameters is
ju

[libc++] Remove the c++98 Lit feature from the test suite

C++98 and C++03 are effectively aliases as far as Clang is concerned.
As such, allowing both std=c++98 and std=c++03 as Lit parameters is
just slightly confusing, but provides no value. It's similar to allowing
both std=c++17 and std=c++1z, which we don't do.

This was discovered because we had an internal bot that ran the test
suite under both c++98 AND c++03 -- one of which is redundant.

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

show more ...


Revision tags: llvmorg-10.0.1-rc1
# 8c61114c 17-Apr-2020 Louis Dionne <ldionne@apple.com>

[libc++/abi/unwind] Rename Lit features for no exceptions to 'no-exceptions'

Instead of having different names for the same Lit feature accross code
bases, use the same name everywhere. This NFC com

[libc++/abi/unwind] Rename Lit features for no exceptions to 'no-exceptions'

Instead of having different names for the same Lit feature accross code
bases, use the same name everywhere. This NFC commit is in preparation
for a refactor where all three projects will be using the same Lit
feature detection logic, and hence it won't be convenient to use
different names for the feature.

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

show more ...


Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1, llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3
# cc89063b 21-Aug-2019 Nico Weber <nicolasweber@gmx.de>

libcxx: Rename .hpp files in libcxx/test/support to .h

LLVM uses .h as its extension for header files.

Files renamed using:

for f in libcxx/test/support/*.hpp; do git mv $f ${f%.hpp}.h; done

libcxx: Rename .hpp files in libcxx/test/support to .h

LLVM uses .h as its extension for header files.

Files renamed using:

for f in libcxx/test/support/*.hpp; do git mv $f ${f%.hpp}.h; done

References to the files updated using:

for f in $(git diff master | grep 'rename from' | cut -f 3 -d ' '); do
a=$(basename $f);
echo $a;
rg -l $a libcxx | xargs sed -i '' "s/$a/${a%.hpp}.h/";
done

HPP include guards updated manually using:

for f in $(git diff master | grep 'rename from' | cut -f 3 -d ' '); do
echo ${f%.hpp}.h ;
done | xargs mvim

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

llvm-svn: 369481

show more ...


Revision tags: llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2, llvmorg-8.0.1-rc1, llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2
# f5f2f777 05-Feb-2019 Louis Dionne <ldionne@apple.com>

[libc++] Fix XFAILs on macOS when exceptions are disabled

Some tests are marked as failing on platforms where the dylib does not
provide the required exception classes. However, when testing with
ex

[libc++] Fix XFAILs on macOS when exceptions are disabled

Some tests are marked as failing on platforms where the dylib does not
provide the required exception classes. However, when testing with
exceptions disabled, those tests shouldn't be marked as failing.

llvm-svn: 353210

show more ...


# 51358e45 05-Feb-2019 Louis Dionne <ldionne@apple.com>

[libcxx] Start defining lit features for tests depending on availability

This patch removes some vendor-specific availability XFAILs from the
test suite. In the future, when a new feature is introdu

[libcxx] Start defining lit features for tests depending on availability

This patch removes some vendor-specific availability XFAILs from the
test suite. In the future, when a new feature is introduced in the
dylib, an availability macro should be created and a matching lit
feature should be created. That way, the test suite can XFAIL whenever
the implementation lacks the necessary feature instead of being
cluttered by vendor-specific annotations.

Right now, those vendor-specific annotations are still somewhat cluttering
the test suite by being in `config.py`, but at least they are localized.
In the future, we could design a way to define those less intrusively or
even automatically based on the availability macros that already exist
in <__config>.

llvm-svn: 353201

show more ...


# 2df59c50 04-Feb-2019 JF Bastien <jfbastien@apple.com>

Support tests in freestanding

Summary:
Freestanding is *weird*. The standard allows it to differ in a bunch of odd
manners from regular C++, and the committee would like to improve that
situation. I

Support tests in freestanding

Summary:
Freestanding is *weird*. The standard allows it to differ in a bunch of odd
manners from regular C++, and the committee would like to improve that
situation. I'd like to make libc++ behave better with what freestanding should
be, so that it can be a tool we use in improving the standard. To do that we
need to try stuff out, both with "freestanding the language mode" and
"freestanding the library subset".

Let's start with the super basic: run the libc++ tests in freestanding, using
clang as the compiler, and see what works. The easiest hack to do this:

In utils/libcxx/test/config.py add:

self.cxx.compile_flags += ['-ffreestanding']

Run the tests and they all fail.

Why? Because in freestanding `main` isn't special. This "not special" property
has two effects: main doesn't get mangled, and main isn't allowed to omit its
`return` statement. The first means main gets mangled and the linker can't
create a valid executable for us to test. The second means we spew out warnings
(ew) and the compiler doesn't insert the `return` we omitted, and main just
falls of the end and does whatever undefined behavior (if you're luck, ud2
leading to non-zero return code).

Let's start my work with the basics. This patch changes all libc++ tests to
declare `main` as `int main(int, char**` so it mangles consistently (enabling us
to declare another `extern "C"` main for freestanding which calls the mangled
one), and adds `return 0;` to all places where it was missing. This touches 6124
files, and I apologize.

The former was done with The Magic Of Sed.

The later was done with a (not quite correct but decent) clang tool:

https://gist.github.com/jfbastien/793819ff360baa845483dde81170feed

This works for most tests, though I did have to adjust a few places when e.g.
the test runs with `-x c`, macros are used for main (such as for the filesystem
tests), etc.

Once this is in we can create a freestanding bot which will prevent further
regressions. After that, we can start the real work of supporting C++
freestanding fairly well in libc++.

<rdar://problem/47754795>

Reviewers: ldionne, mclow.lists, EricWF

Subscribers: christof, jkorous, dexonsmith, arphaman, miyuki, libcxx-commits

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

llvm-svn: 353086

show more ...


Revision tags: llvmorg-8.0.0-rc1
# 57b08b09 19-Jan-2019 Chandler Carruth <chandlerc@gmail.com>

Update more file headers across all of the LLVM projects in the monorepo
to reflect the new license. These used slightly different spellings that
defeated my regular expressions.

We understand that

Update more file headers across all of the LLVM projects in the monorepo
to reflect the new license. These used slightly different spellings that
defeated my regular expressions.

We understand that people may be surprised that we're moving the header
entirely to discuss the new license. We checked this carefully with the
Foundation's lawyer and we believe this is the correct approach.

Essentially, all code in the project is now made available by the LLVM
project under our new license, so you will see that the license headers
include that license only. Some of our contributors have contributed
code under our old license, and accordingly, we have retained a copy of
our old license notice in the top-level files in each project and
repository.

llvm-svn: 351648

show more ...


Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3
# 8a063df1 19-Nov-2018 Louis Dionne <ldionne@apple.com>

[libcxx] Add availability markup for bad_optional_access, bad_variant_access and bad_any_cast

Reviewers: dexonsmith, EricWF

Subscribers: christof, arphaman, libcxx-commits

Differential Revision: h

[libcxx] Add availability markup for bad_optional_access, bad_variant_access and bad_any_cast

Reviewers: dexonsmith, EricWF

Subscribers: christof, arphaman, libcxx-commits

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

llvm-svn: 347219

show more ...


Revision tags: llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1, llvmorg-7.0.0, llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2, llvmorg-7.0.0-rc1, llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2, llvmorg-6.0.1-rc1, llvmorg-5.0.2, llvmorg-5.0.2-rc2, llvmorg-5.0.2-rc1, llvmorg-6.0.0, llvmorg-6.0.0-rc3, llvmorg-6.0.0-rc2, llvmorg-6.0.0-rc1, llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2, llvmorg-5.0.1-rc1, llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2
# ade32237 05-Aug-2017 Stephan T. Lavavej <stl@exchange.microsoft.com>

[libcxx] [test] Fix URLs in comments and make them HTTPS. NFC.

llvm-svn: 310156


12