-
Notifications
You must be signed in to change notification settings - Fork 15.4k
[libc++][test] Fix MSVC warning C4127 in array.cons/initialization.pass.cpp
#79793
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[libc++][test] Fix MSVC warning C4127 in array.cons/initialization.pass.cpp
#79793
Conversation
Testing TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED by itself doesn't emit this warning, but the condition here is more complicated. I'm expanding the macro and mechanically simplifying the resulting code.
|
@llvm/pr-subscribers-libcxx Author: Stephan T. Lavavej (StephanTLavavej) ChangesThis fixes MSVC warning C4127: conditional expression is constant. Testing (Yeah, this warning is often annoying, and I introduced Full diff: https://github.com/llvm/llvm-project/pull/79793.diff 1 Files Affected:
diff --git a/libcxx/test/std/containers/sequences/array/array.cons/initialization.pass.cpp b/libcxx/test/std/containers/sequences/array/array.cons/initialization.pass.cpp
index 7991d4738d9699..acd176cce91d9e 100644
--- a/libcxx/test/std/containers/sequences/array/array.cons/initialization.pass.cpp
+++ b/libcxx/test/std/containers/sequences/array/array.cons/initialization.pass.cpp
@@ -28,7 +28,10 @@ struct test_initialization {
// Before C++20, default initialization doesn't work inside constexpr for
// trivially default constructible types. This only apply to non-empty arrays,
// since empty arrays don't hold an element of type T.
- if (TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATED || !std::is_trivially_default_constructible<T>::value) {
+#if TEST_STD_VER < 20
+ if (!TEST_IS_CONSTANT_EVALUATED || !std::is_trivially_default_constructible<T>::value)
+#endif
+ {
std::array<T, 1> a1; (void)a1;
std::array<T, 2> a2; (void)a2;
std::array<T, 3> a3; (void)a3;
|
|
✅ With the latest revision this PR passed the C/C++ code formatter. |
libcxx/test/std/containers/sequences/array/array.cons/initialization.pass.cpp
Outdated
Show resolved
Hide resolved
Co-authored-by: Louis Dionne <ldionne.2@gmail.com>
|
Merged as all checks passed, except for a surely-unrelated XPASS in one configuration of |
This fixes MSVC warning C4127: conditional expression is constant.
Testing
TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATEDby itself doesn't emit this warning, but the condition here is more complicated. I'm expanding the macro and mechanically simplifying the resulting code.(Yeah, this warning is often annoying, and I introduced
TEST_STD_AT_LEAST_20_OR_RUNTIME_EVALUATEDto avoid this warning elsewhere, so it's disappointing that it doesn't make the compiler happy here. If this change is undesirable, I can replace it withADDITIONAL_COMPILE_FLAGS(cl-style-warnings), but ideally I'd like to avoid having to suppress it.)