[libcxx-commits] [libcxx] [libc++][memory] Applied `[[nodiscard]]` to more functions (PR #172131)

A. Jiang via libcxx-commits libcxx-commits at lists.llvm.org
Wed Dec 24 01:14:40 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:

Yeah. I think when we use <code>-D_LIBCPP_ENABLE_*MEOW*</code>, we should also test the removed features in new modes. But I'm not sure whether the missing was intentional. https://github.com/llvm/llvm-project/pull/170837#r2645216853

https://github.com/llvm/llvm-project/pull/172131


More information about the libcxx-commits mailing list