|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, 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, 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, llvmorg-18.1.2, 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, 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, llvmorg-16.0.0, 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, 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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
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 <[email protected]> |
[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 <[email protected]> |
[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 <[email protected]> |
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 <[email protected]> |
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 <[email protected]> |
[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 <[email protected]> |
[libcxx] [test] Fix URLs in comments and make them HTTPS. NFC.
llvm-svn: 310156
|
|
Revision tags: llvmorg-5.0.0-rc1, llvmorg-4.0.1, llvmorg-4.0.1-rc3, llvmorg-4.0.1-rc2 |
|
| #
215f55f5 |
| 11-May-2017 |
Michael Park <[email protected]> |
Fix `std::visit` for the zero variants case.
Summary: The following code is broken:
``` std::visit([]{}); ```
Reviewers: EricWF
Reviewed By: EricWF
Differential Revision: https://reviews.llv
Fix `std::visit` for the zero variants case.
Summary: The following code is broken:
``` std::visit([]{}); ```
Reviewers: EricWF
Reviewed By: EricWF
Differential Revision: https://reviews.llvm.org/D33090
llvm-svn: 302773
show more ...
|
| #
e9c66ad9 |
| 04-May-2017 |
Mehdi Amini <[email protected]> |
Add markup for libc++ dylib availability
Libc++ is used as a system library on macOS and iOS (amongst others). In order for users to be able to compile a binary that is intended to be deployed to an
Add markup for libc++ dylib availability
Libc++ is used as a system library on macOS and iOS (amongst others). In order for users to be able to compile a binary that is intended to be deployed to an older version of the platform, clang provides the availability attribute <https://clang.llvm.org/docs/AttributeReference.html#availability>_ that can be placed on declarations to describe the lifecycle of a symbol in the library.
See docs/DesignDocs/AvailabilityMarkup.rst for more information.
Differential Revision: https://reviews.llvm.org/D31739
llvm-svn: 302172
show more ...
|
|
Revision tags: llvmorg-4.0.1-rc1, llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3 |
|
| #
a18ef6f1 |
| 09-Feb-2017 |
Eric Fiselier <[email protected]> |
Fix PR31916 - std::visit rejects visitors accepting lvalue arguments
A static assertion was misfiring since it checked is_callable<Visitor, decltype(__variant_alt<T>.value)>. However the decltype ex
Fix PR31916 - std::visit rejects visitors accepting lvalue arguments
A static assertion was misfiring since it checked is_callable<Visitor, decltype(__variant_alt<T>.value)>. However the decltype expression doesn't capture the value category as required. This patch applies extra braces to decltype to fix that.
llvm-svn: 294612
show more ...
|
|
Revision tags: llvmorg-4.0.0-rc2, llvmorg-4.0.0-rc1 |
|
| #
f4770ea9 |
| 16-Jan-2017 |
Michael Park <[email protected]> |
Added a workaround for a `-fdelayed-template-parsing` bug.
Summary: There seems to be an additional bug in `-fdelayed-template-parsing` similar to http://llvm.org/viewvc/llvm-project?view=revision&r
Added a workaround for a `-fdelayed-template-parsing` bug.
Summary: There seems to be an additional bug in `-fdelayed-template-parsing` similar to http://llvm.org/viewvc/llvm-project?view=revision&revision=236063.
This is a workaround for it for <variant> to compile with `clang-cl` on Windows.
Reviewers: EricWF
Differential Revision: https://reviews.llvm.org/D28734
llvm-svn: 292097
show more ...
|
| #
117c4aff |
| 14-Jan-2017 |
Eric Fiselier <[email protected]> |
Mark test as UNSUPPORTED on Windows since it hangs forever
llvm-svn: 292012
|
|
Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3 |
|
| #
0d3d8de0 |
| 02-Dec-2016 |
Eric Fiselier <[email protected]> |
Implement C++17 <variant>. Patch from Michael Park!
This patch was reviewed as https://reviews.llvm.org/D23263.
llvm-svn: 288547
|