[libcxx-commits] [libcxx] [libc++][memory] Applied `[[nodiscard]]` to more functions (PR #172131)
A. Jiang via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Dec 23 17:49:48 PST 2025
================
@@ -31,12 +38,28 @@ void test_allocator_traits() {
}
void test_allocator() {
- std::allocator<int> allocator;
- allocator.allocate(1); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
-#if TEST_STD_VER <= 17
- allocator.allocate(1, nullptr); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
-#endif
+ [[maybe_unused]] std::allocator<int> allocator;
+
#if TEST_STD_VER >= 23
allocator.allocate_at_least(1); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
#endif
+
+#if TEST_STD_VER <= 17
+ int i = 0;
+ const int ci = 0;
+
+ allocator.address(i); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
+ allocator.address(ci); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
+ allocator.allocate(1); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
+ allocator.allocate(1, nullptr); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
+ allocator.max_size(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
+#endif
}
+
+#if TEST_STD_VER >= 14
----------------
frederick-vs-ja wrote:
> Why do you want to disable testing if we provide the feature conditionally in newer standards?
Partially because there's `#if TEST_STD_VER <= 17` above. Also, in some previous PRs, some removed components are enabled for new modes but only tested in old modes.
https://github.com/llvm/llvm-project/pull/172131
More information about the libcxx-commits
mailing list