Revision tags: 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 |
|
#
e61764c3 |
| 06-Jul-2023 |
varconst <varconsteq@gmail.com> |
[libc++][hardening][NFC] Rename the `has-debug-mode` feature to `has-legacy-debug-mode`.
This will allow reusing the `has-debug-mode` feature for the new debug mode without accidentally reenabling o
[libc++][hardening][NFC] Rename the `has-debug-mode` feature to `has-legacy-debug-mode`.
This will allow reusing the `has-debug-mode` feature for the new debug mode without accidentally reenabling old debug mode tests. The `has-legacy-debug-mode` feature is deliberately never set -- the old tests are left checked in to have a point of reference for the level of checking that was supported by the legacy debug mode, making it easier to verify we've reached feature parity in the future.
show more ...
|
Revision tags: 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, 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 |
|
#
f3966eaf |
| 01-Apr-2022 |
Louis Dionne <ldionne.2@gmail.com> |
[libc++] Make the Debug mode a configuration-time only option
The debug mode has been broken pretty much ever since it was shipped because it was possible to enable the debug mode in user code witho
[libc++] Make the Debug mode a configuration-time only option
The debug mode has been broken pretty much ever since it was shipped because it was possible to enable the debug mode in user code without actually enabling it in the dylib, leading to ODR violations that caused various kinds of failures.
This commit makes the debug mode a knob that is configured when building the library and which can't be changed afterwards. This is less flexible for users, however it will actually work as intended and it will allow us, in the future, to add various kinds of checks that do not assume the same ABI as the normal library. Furthermore, this will make the debug mode more robust, which means that vendors might be more tempted to support it properly, which hasn't been the case with the current debug mode.
This patch shouldn't break any user code, except folks who are building against a library that doesn't have the debug mode enabled and who try to enable the debug mode in their code. Such users will get a compile-time error explaining that this configuration isn't supported anymore.
In the future, we should further increase the granularity of the debug mode checks so that we can cherry-pick which checks to enable, like we do for unspecified behavior randomization.
Differential Revision: https://reviews.llvm.org/D122941
show more ...
|
#
f3a970a8 |
| 06-May-2022 |
John Brawn <john.brawn@arm.com> |
[libc++] Mark tests that use check_assertion.h as requiring unix headers
On targets without unistd.h or sys/wait.h (such as bare metal targets) any test that uses check_assertion.h will fail, so add
[libc++] Mark tests that use check_assertion.h as requiring unix headers
On targets without unistd.h or sys/wait.h (such as bare metal targets) any test that uses check_assertion.h will fail, so add REQUIRES: has-unix-headers to them and autodetect whether we have these headers or not.
These tests currently have unsupported on windows, but that's exactly because windows doesn't have these headers so we can remove the specific check for windows.
Differential Revision: https://reviews.llvm.org/D124623
show more ...
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
#
f6fd1c14 |
| 07-Mar-2022 |
Louis Dionne <ldionne.2@gmail.com> |
[libc++] Overhaul all tests for assertions and debug mode
Prior to this patch, there was no distinction between tests that check basic assertions and tests that check full-fledged iterator debugging
[libc++] Overhaul all tests for assertions and debug mode
Prior to this patch, there was no distinction between tests that check basic assertions and tests that check full-fledged iterator debugging assertions. Both were disabled when support for the debug mode is not provided in the dylib, which is stronger than it needs to be.
Furthermore, all of the tests using "debug_macros.h" that contain more than one assertion in them were broken -- any code after the first assertion would never be executed.
This patch refactors all of our assertion-related tests to: 1. Be enabled whenever they can, i.e. basic assertions tests are run even when the debug mode is disabled. 2. Use the superior `check_assertion.h` (previously `debug_mode_helper.h`) instead of `debug_macros.h`, which allows multiple assertions in the same program. 3. Coalesce some tests into the same file to make them more readable. 4. Use consistent naming for test files -- no more db{1,2,3,...,10} tests.
This is a large but mostly mechanical patch.
Differential Revision: https://reviews.llvm.org/D121462
show more ...
|