ldionne wrote:

> Why do we care to run the test suite against older versions which have parts 
> disabled?

I feel like that's the wrong question to ask. We care that the test suite 
configures itself properly against older versions of the library. On some 
platforms, libc++ is configured with these carve-outs enabled, so ideally we 
would support that gracefully. That's actually already the case for the frozen 
C++03 headers, which had similar needs and are simplified by this patch.

Concretely, this patch was prompted by one very specific failure at (old lines) 
`libcxx/utils/libcxx/test/dsl.py:310` where we did:

```
#if defined(_LIBCPP_VERSION) && !_LIBCPP_HAS_LOCALIZATION
```

With a library before the switch to 0-1 macros, this fails due to `-Wundef` and 
hence causes the test suite configuration to fail entirely. I could have fixed 
that by using something like this:

```
#if defined(_LIBCPP_VERSION) && defined(_LIBCPP_HAS_LOCALIZATION) && 
!_LIBCPP_HAS_LOCALIZATION
```

However, while investigating the fix, I realized that a more consistent way of 
detecting Lit features was to align them with what we already have to do inside 
`test_macros.h`. Instead of duplicating the checks (and them being subtly 
different), we can reuse the detection we already do inside `test_macros.h`, 
that way everything is consistent by construction.

https://github.com/llvm/llvm-project/pull/214820
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to