[libcxx] Fix std::vector construct_iter_iter.pass.cpp test (C++98/03)
authorMikhail Maltsev <mikhail.maltsev@arm.com>
Wed, 10 Jun 2020 13:26:58 +0000 (14:26 +0100)
committerMikhail Maltsev <mikhail.maltsev@arm.com>
Wed, 10 Jun 2020 13:27:33 +0000 (14:27 +0100)
The test is failing on 32-bit targets in C++03 mode. Clang produces
the following warning: 'integer literal is too large to be represented
in type 'long' and is subject to undefined behavior under C++98,
interpreting as 'unsigned long'; this literal will have type 'long
long' in C++11 onwards [-Wc++11-compat]' which is promoted to an error
and causes the test to fail.

There have been no changes in the test itself since 2019, so it looks
like the diagnostic has been updated.

Differential Revision: https://reviews.llvm.org/D81559

libcxx/test/std/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp

index 2b3b212..3b43a89 100644 (file)
@@ -180,7 +180,7 @@ void test_ctor_with_different_value_type() {
     // Though the types are different, initialization can be done with `memcpy`.
     int32_t array[1] = { -1 };
     std::vector<uint32_t> v(array, array + 1);
-    assert(v[0] == 4294967295);
+    assert(v[0] == 4294967295U);
   }
 }