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 7991d4738d969..a23211f5464d6 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,10 +28,16 @@ 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::value) { - std::array a1; (void)a1; - std::array a2; (void)a2; - std::array a3; (void)a3; +#if TEST_STD_VER < 20 + if (!(TEST_IS_CONSTANT_EVALUATED && std::is_trivially_default_constructible::value)) +#endif + { + std::array a1; + (void)a1; + std::array a2; + (void)a2; + std::array a3; + (void)a3; } std::array nodefault; (void)nodefault;