Skip to content

Commit 64addd6

Browse files
[libc++][test] Enhance ADDITIONAL_COMPILE_FLAGS, use TEST_MEOW_DIAGNOSTIC_IGNORED sparingly (#75317)
This is the last PR that's needed (for now) to get libc++'s tests working with MSVC's STL. The ADDITIONAL_COMPILE_FLAGS machinery is very useful, but also very problematic for MSVC, as it doesn't understand most of Clang's compiler options. We've been dealing with this by simply marking anything that uses ADDITIONAL_COMPILE_FLAGS as FAIL or SKIPPED, but that creates significant gaps in test coverage. Fortunately, ADDITIONAL_COMPILE_FLAGS also supports "features", which can be slightly enhanced to send Clang-compatible and MSVC-compatible options to the right compilers. This patch adds the gcc-style-warnings and cl-style-warnings Lit features, and uses that to pass the appropriate warning flags to tests. It also uses TEST_MEOW_DIAGNOSTIC_IGNORED for a few local suppressions of MSVC warnings.
1 parent 4070dff commit 64addd6

File tree

35 files changed

+96
-42
lines changed

35 files changed

+96
-42
lines changed

libcxx/test/std/algorithms/alg.modifying.operations/alg.replace/ranges.replace.pass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9+
// MSVC warning C4244: 'argument': conversion from 'const _Ty2' to 'T', possible loss of data
10+
// ADDITIONAL_COMPILE_FLAGS(cl-style-warnings): /wd4244
11+
912
// <algorithm>
1013

1114
// UNSUPPORTED: c++03, c++11, c++14, c++17

libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@
1919
// equal(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2);
2020

2121
// We test the cartesian product, so we sometimes compare differently signed types
22-
// ADDITIONAL_COMPILE_FLAGS: -Wno-sign-compare
22+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-sign-compare
23+
// MSVC warning C4242: 'argument': conversion from 'int' to 'const _Ty', possible loss of data
24+
// MSVC warning C4244: 'argument': conversion from 'wchar_t' to 'const _Ty', possible loss of data
25+
// MSVC warning C4389: '==': signed/unsigned mismatch
26+
// ADDITIONAL_COMPILE_FLAGS(cl-style-warnings): /wd4242 /wd4244 /wd4389
2327

2428
#include <algorithm>
2529
#include <cassert>
@@ -58,6 +62,10 @@ struct Test {
5862
struct TestNarrowingEqualTo {
5963
template <class UnderlyingType>
6064
TEST_CONSTEXPR_CXX20 void operator()() {
65+
TEST_DIAGNOSTIC_PUSH
66+
// MSVC warning C4310: cast truncates constant value
67+
TEST_MSVC_DIAGNOSTIC_IGNORED(4310)
68+
6169
UnderlyingType a[] = {
6270
UnderlyingType(0x1000),
6371
UnderlyingType(0x1001),
@@ -71,6 +79,8 @@ struct TestNarrowingEqualTo {
7179
UnderlyingType(0x1603),
7280
UnderlyingType(0x1604)};
7381

82+
TEST_DIAGNOSTIC_POP
83+
7484
assert(std::equal(a, a + 5, b, std::equal_to<char>()));
7585
#if TEST_STD_VER >= 14
7686
assert(std::equal(a, a + 5, b, b + 5, std::equal_to<char>()));

libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
// ADDITIONAL_COMPILE_FLAGS: -Wno-sign-compare
9+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-sign-compare
10+
// MSVC warning C4389: '==': signed/unsigned mismatch
11+
// ADDITIONAL_COMPILE_FLAGS(cl-style-warnings): /wd4389
1012

1113
// <algorithm>
1214

libcxx/test/std/algorithms/alg.nonmodifying/alg.find/ranges.find.pass.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@
1010

1111
// UNSUPPORTED: c++03, c++11, c++14, c++17
1212

13-
// ADDITIONAL_COMPILE_FLAGS: -Wno-sign-compare
13+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-sign-compare
14+
// MSVC warning C4242: 'argument': conversion from 'const _Ty' to 'ElementT', possible loss of data
15+
// MSVC warning C4244: 'argument': conversion from 'const _Ty' to 'ElementT', possible loss of data
16+
// ADDITIONAL_COMPILE_FLAGS(cl-style-warnings): /wd4242 /wd4244
1417

1518
// template<input_iterator I, sentinel_for<I> S, class T, class Proj = identity>
1619
// requires indirect_binary_predicate<ranges::equal_to, projected<I, Proj>, const T*>

libcxx/test/std/atomics/atomics.types.generic/general.compile.pass.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,15 @@ void test() {
7474

7575
TEST_IGNORE_NODISCARD a.is_lock_free();
7676

77+
TEST_DIAGNOSTIC_PUSH
78+
// MSVC warning C4197: 'volatile std::atomic<operator_hijacker>': top-level volatile in cast is ignored
79+
TEST_MSVC_DIAGNOSTIC_IGNORED(4197)
80+
7781
TEST_IGNORE_NODISCARD T();
7882
TEST_IGNORE_NODISCARD T(v);
7983

84+
TEST_DIAGNOSTIC_POP
85+
8086
TEST_IGNORE_NODISCARD a.load();
8187
TEST_IGNORE_NODISCARD static_cast<typename T::value_type>(a);
8288
a.store(v);

libcxx/test/std/atomics/atomics.types.generic/pointer.compile.pass.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,16 @@ void test() {
9898

9999
a.store(v);
100100
a = v;
101+
102+
TEST_DIAGNOSTIC_PUSH
103+
// MSVC warning C4197: 'volatile std::atomic<operator_hijacker *>': top-level volatile in cast is ignored
104+
TEST_MSVC_DIAGNOSTIC_IGNORED(4197)
105+
101106
TEST_IGNORE_NODISCARD T();
102107
TEST_IGNORE_NODISCARD T(v);
108+
109+
TEST_DIAGNOSTIC_POP
110+
103111
TEST_IGNORE_NODISCARD a.load();
104112
TEST_IGNORE_NODISCARD static_cast<typename T::value_type>(a);
105113
TEST_IGNORE_NODISCARD* a;

libcxx/test/std/concepts/concepts.lang/concept.default.init/default_initializable.compile.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
// We voluntarily use std::default_initializable on types that have redundant
1212
// or ignored cv-qualifiers -- don't warn about it.
13-
// ADDITIONAL_COMPILE_FLAGS: -Wno-ignored-qualifiers
13+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-ignored-qualifiers
1414

1515
// template<class T>
1616
// concept default_initializable = constructible_from<T> &&

libcxx/test/std/containers/associative/map/map.modifiers/insert_range.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
1010
// Some fields in the test case variables are deliberately not explicitly initialized, this silences a warning on GCC.
11-
// ADDITIONAL_COMPILE_FLAGS: -Wno-missing-field-initializers
11+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-missing-field-initializers
1212

1313
// <map>
1414

libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_range.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
1010
// Some fields in the test case variables are deliberately not explicitly initialized, this silences a warning on GCC.
11-
// ADDITIONAL_COMPILE_FLAGS: -Wno-missing-field-initializers
11+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-missing-field-initializers
1212

1313
// <map>
1414

libcxx/test/std/containers/associative/multiset/insert_range.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
1010
// Some fields in the test case variables are deliberately not explicitly initialized, this silences a warning on GCC.
11-
// ADDITIONAL_COMPILE_FLAGS: -Wno-missing-field-initializers
11+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-missing-field-initializers
1212

1313
// <set>
1414

libcxx/test/std/containers/associative/set/insert_range.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
1010
// Some fields in the test case variables are deliberately not explicitly initialized, this silences a warning on GCC.
11-
// ADDITIONAL_COMPILE_FLAGS: -Wno-missing-field-initializers
11+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-missing-field-initializers
1212

1313
// <set>
1414

libcxx/test/std/containers/sequences/array/array.tuple/get.verify.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// template <size_t I, class T, size_t N> T& get(array<T, N>& a);
1212

1313
// Prevent -Warray-bounds from issuing a diagnostic when testing with clang verify.
14-
// ADDITIONAL_COMPILE_FLAGS: -Wno-array-bounds
14+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-array-bounds
1515

1616
#include <array>
1717
#include <cassert>

libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_range.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
1010
// Some fields in the test case variables are deliberately not explicitly initialized, this silences a warning on GCC.
11-
// ADDITIONAL_COMPILE_FLAGS: -Wno-missing-field-initializers
11+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-missing-field-initializers
1212

1313
// <unordered_map>
1414

libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_range.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
1010
// Some fields in the test case variables are deliberately not explicitly initialized, this silences a warning on GCC.
11-
// ADDITIONAL_COMPILE_FLAGS: -Wno-missing-field-initializers
11+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-missing-field-initializers
1212

1313
// <unordered_map>
1414

libcxx/test/std/containers/unord/unord.multiset/insert_range.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
1010
// Some fields in the test case variables are deliberately not explicitly initialized, this silences a warning on GCC.
11-
// ADDITIONAL_COMPILE_FLAGS: -Wno-missing-field-initializers
11+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-missing-field-initializers
1212

1313
// <set>
1414

libcxx/test/std/containers/unord/unord.set/insert_range.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
1010
// Some fields in the test case variables are deliberately not explicitly initialized, this silences a warning on GCC.
11-
// ADDITIONAL_COMPILE_FLAGS: -Wno-missing-field-initializers
11+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-missing-field-initializers
1212

1313
// <set>
1414

libcxx/test/std/containers/views/mdspan/layout_stride/deduction.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
//
77
//===----------------------------------------------------------------------===//
88
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
9-
// ADDITIONAL_COMPILE_FLAGS: -Wno-ctad-maybe-unsupported
9+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-ctad-maybe-unsupported
1010

1111
// <mdspan>
1212

libcxx/test/std/containers/views/mdspan/mdspan/conversion.pass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
//===----------------------------------------------------------------------===//
88
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
99

10+
// MSVC warning C4244: 'initializing': conversion from '_Ty' to '_Ty', possible loss of data
11+
// ADDITIONAL_COMPILE_FLAGS(cl-style-warnings): /wd4244
12+
1013
// <mdspan>
1114

1215
// template<class OtherElementType, class OtherExtents,

libcxx/test/std/depr/depr.c.headers/setjmp_h.compile.pass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9+
// MSVC warning C4611: interaction between '_setjmp' and C++ object destruction is non-portable
10+
// ADDITIONAL_COMPILE_FLAGS(cl-style-warnings): /wd4611
11+
912
// test <setjmp.h>
1013
//
1114
// Even though <setjmp.h> is not provided by libc++, we still test that

libcxx/test/std/depr/depr.numeric.limits.has.denorm/deprecated.verify.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
1010

11-
// ADDITIONAL_COMPILE_FLAGS: -Wno-unused-value
11+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-unused-value
1212

1313
#include <limits>
1414

libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/buffered_reads.pass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
//===----------------------------------------------------------------------===//
88

99
// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS -D_LIBCPP_ENABLE_CXX26_REMOVED_CODECVT
10+
// MSVC warning C4242: '+=': conversion from 'const _Ty' to 'size_t', possible loss of data
11+
// MSVC warning C4244: 'argument': conversion from 'std::streamsize' to 'size_t', possible loss of data
12+
// ADDITIONAL_COMPILE_FLAGS(cl-style-warnings): /wd4242 /wd4244
1013
// UNSUPPORTED: c++03
1114

1215
// <fstream>

libcxx/test/std/input.output/file.streams/fstreams/ofstream.members/buffered_writes.pass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
//===----------------------------------------------------------------------===//
88

99
// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS -D_LIBCPP_ENABLE_CXX26_REMOVED_CODECVT
10+
// MSVC warning C4242: '+=': conversion from 'const _Ty' to 'size_t', possible loss of data
11+
// MSVC warning C4244: 'argument': conversion from 'std::streamsize' to 'size_t', possible loss of data
12+
// ADDITIONAL_COMPILE_FLAGS(cl-style-warnings): /wd4242 /wd4244
1013
// UNSUPPORTED: c++03
1114

1215
// <fstream>

libcxx/test/std/iterators/iterator.primitives/iterator.operations/advance.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
// <TODO:Remove brackets> below
2828

2929
// Make sure we catch forced conversions to the difference_type if they happen.
30-
// ADDITIONAL_COMPILE_FLAGS<TODO:Remove brackets>: -Wsign-conversion
30+
// ADDITIONAL_COMPILE_FLAGS<TODO:Remove brackets>(gcc-style-warnings): -Wsign-conversion
3131

3232
#include <iterator>
3333
#include <cassert>

libcxx/test/std/language.support/support.runtime/csetjmp.pass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9+
// MSVC warning C4611: interaction between '_setjmp' and C++ object destruction is non-portable
10+
// ADDITIONAL_COMPILE_FLAGS(cl-style-warnings): /wd4611
11+
912
// test <csetjmp>
1013

1114
#include <csetjmp>

libcxx/test/std/ranges/range.adaptors/range.lazy.split/constraints.compile.pass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88

99
// UNSUPPORTED: c++03, c++11, c++14, c++17
1010

11+
// This is a compile-only test, so "inline function is not defined" warnings are irrelevant.
12+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-undefined-inline
13+
1114
// template<input_range V, forward_range Pattern>
1215
// requires view<V> && view<Pattern> &&
1316
// indirectly_comparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> &&

libcxx/test/std/ranges/range.utility/range.utility.conv/to.pass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9+
// MSVC warning C4244: 'argument': conversion from '_Ty' to 'int', possible loss of data
10+
// ADDITIONAL_COMPILE_FLAGS(cl-style-warnings): /wd4244
11+
912
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
1013

1114
// template<class C, input_range R, class... Args> requires (!view<C>)

libcxx/test/std/strings/basic.string/string.cons/from_range_deduction.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
1212
// To silence a GCC warning-turned-error re. `BadAlloc::value_type`.
13-
// ADDITIONAL_COMPILE_FLAGS: -Wno-unused-local-typedefs
13+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-unused-local-typedefs
1414

1515
// template<ranges::input_range R,
1616
// class Allocator = allocator<ranges::range_value_t<R>>>

libcxx/test/std/thread/thread.condition/notify_all_at_thread_exit_lwg3343.pass.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,19 @@
3535

3636
int condition_variable_lock_skipped_counter = 0;
3737

38+
TEST_DIAGNOSTIC_PUSH
39+
// MSVC warning C4583: 'X::cv_': destructor is not implicitly called
40+
TEST_MSVC_DIAGNOSTIC_IGNORED(4583)
41+
3842
union X {
3943
X() : cv_() {}
4044
~X() {}
4145
std::condition_variable cv_;
4246
unsigned char bytes_[sizeof(std::condition_variable)];
4347
};
4448

49+
TEST_DIAGNOSTIC_POP
50+
4551
void test()
4652
{
4753
constexpr int N = 3;

libcxx/test/std/thread/thread.jthread/assign.move.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// UNSUPPORTED: libcpp-has-no-experimental-stop_token
1111
// UNSUPPORTED: c++03, c++11, c++14, c++17
1212
// XFAIL: availability-synchronization_library-missing
13-
// ADDITIONAL_COMPILE_FLAGS: -Wno-self-move
13+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-self-move
1414

1515
// jthread& operator=(jthread&&) noexcept;
1616

libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@
2323

2424
// Ignore warnings about volatile in parameters being deprecated.
2525
// We know it is, but we still have to test it.
26-
#if defined(TEST_COMPILER_GCC)
27-
# pragma GCC diagnostic ignored "-Wvolatile"
28-
#endif
26+
TEST_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-volatile")
27+
TEST_GCC_DIAGNOSTIC_IGNORED("-Wvolatile")
28+
// MSVC warning C5215: a function parameter with a volatile qualified type is deprecated in C++20
29+
TEST_MSVC_DIAGNOSTIC_IGNORED(5215)
2930

3031
struct wat
3132
{
@@ -65,9 +66,6 @@ void test_result_of_imp()
6566
#endif
6667
}
6768

68-
// Do not warn on deprecated uses of 'volatile' below.
69-
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
70-
7169
int main(int, char**)
7270
{
7371
{
@@ -184,5 +182,3 @@ int main(int, char**)
184182

185183
return 0;
186184
}
187-
188-
_LIBCPP_SUPPRESS_DEPRECATED_POP

libcxx/test/std/utilities/meta/meta.unary/dependent_return_type.compile.pass.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
// UNSUPPORTED: c++03, c++11
1212

1313
// ignore deprecated volatile return types
14-
// ADDITIONAL_COMPILE_FLAGS: -Wno-deprecated-volatile
14+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-deprecated-volatile
15+
// MSVC warning C5216: 'volatile int' a volatile qualified return type is deprecated in C++20
16+
// ADDITIONAL_COMPILE_FLAGS(cl-style-warnings): /wd5216
1517

1618
#include <type_traits>
1719
#include <utility>

libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.asgn/move.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
// UNSUPPORTED: c++03
1010

1111
// Self assignment post-conditions are tested.
12-
// ADDITIONAL_COMPILE_FLAGS: -Wno-self-move
12+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-self-move
1313

1414
// <memory>
1515

libcxx/test/std/utilities/variant/variant.variant/implicit_ctad.pass.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616

1717
// We make sure that it is not ill-formed, however we still produce a warning for
1818
// this one because explicit construction from a variant using CTAD is ambiguous
19-
// (in the sense that the programer intent is not clear).
20-
// ADDITIONAL_COMPILE_FLAGS: -Wno-ctad-maybe-unsupported
19+
// (in the sense that the programmer intent is not clear).
20+
// ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-ctad-maybe-unsupported
2121

2222
#include <variant>
2323

libcxx/test/support/msvc_stdlib_force_include.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,4 @@ const AssertionDialogAvoider assertion_dialog_avoider{};
104104

105105
#define _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST
106106

107-
#ifdef __clang__
108-
# define _LIBCPP_SUPPRESS_DEPRECATED_PUSH \
109-
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wdeprecated\"")
110-
# define _LIBCPP_SUPPRESS_DEPRECATED_POP _Pragma("GCC diagnostic pop")
111-
#else // ^^^ clang / MSVC vvv
112-
# define _LIBCPP_SUPPRESS_DEPRECATED_PUSH \
113-
__pragma(warning(push)) __pragma(warning(disable : 4996)) __pragma(warning(disable : 5215))
114-
# define _LIBCPP_SUPPRESS_DEPRECATED_POP __pragma(warning(pop))
115-
#endif // __clang__
116-
117107
#endif // SUPPORT_MSVC_STDLIB_FORCE_INCLUDE_H

0 commit comments

Comments
 (0)