[libcxx-commits] [libcxx] [libc++][NFC] Moved `nodiscard.verify.cpp` tests (PR #175285)

Hristo Hristov via libcxx-commits libcxx-commits at lists.llvm.org
Fri Jan 9 23:02:23 PST 2026


https://github.com/H-G-Hristov updated https://github.com/llvm/llvm-project/pull/175285

>From 565ebf421d7a6dd272fc5a23a244f8fda87ef3ad Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sat, 10 Jan 2026 08:01:34 +0200
Subject: [PATCH 1/2] [libc++][NFC] Moved `nodiscard.verify.cpp` tests

Moved tests to the correct locations.
Removed redundant test.
---
 .../node_handle.nodiscard.verify.cpp           |  0
 .../node_handle.nodiscard.verify.cpp           | 18 ------------------
 .../memory/nodiscard.verify.cpp}               |  0
 3 files changed, 18 deletions(-)
 rename libcxx/test/{std => libcxx}/containers/container.node/node_handle.nodiscard.verify.cpp (100%)
 delete mode 100644 libcxx/test/libcxx/diagnostics/node_handle.nodiscard.verify.cpp
 rename libcxx/test/libcxx/{diagnostics/memory.nodiscard.verify.cpp => utilities/memory/nodiscard.verify.cpp} (100%)

diff --git a/libcxx/test/std/containers/container.node/node_handle.nodiscard.verify.cpp b/libcxx/test/libcxx/containers/container.node/node_handle.nodiscard.verify.cpp
similarity index 100%
rename from libcxx/test/std/containers/container.node/node_handle.nodiscard.verify.cpp
rename to libcxx/test/libcxx/containers/container.node/node_handle.nodiscard.verify.cpp
diff --git a/libcxx/test/libcxx/diagnostics/node_handle.nodiscard.verify.cpp b/libcxx/test/libcxx/diagnostics/node_handle.nodiscard.verify.cpp
deleted file mode 100644
index 84aeafeaa279e..0000000000000
--- a/libcxx/test/libcxx/diagnostics/node_handle.nodiscard.verify.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++03, c++11, c++14
-
-// check that <__node_handle> functions are marked [[nodiscard]]
-
-#include <set>
-
-void func() {
-  std::set<int> set;
-  set.extract(0).empty(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
-}
diff --git a/libcxx/test/libcxx/diagnostics/memory.nodiscard.verify.cpp b/libcxx/test/libcxx/utilities/memory/nodiscard.verify.cpp
similarity index 100%
rename from libcxx/test/libcxx/diagnostics/memory.nodiscard.verify.cpp
rename to libcxx/test/libcxx/utilities/memory/nodiscard.verify.cpp

>From ffcc393e9d964a9f6b2fcf6765994f5bdd25dbab Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sat, 10 Jan 2026 09:00:25 +0200
Subject: [PATCH 2/2] Addressed post-review comments

---
 .../libcxx/language.support/nodiscard.verify.cpp | 16 +++++++++-------
 .../utilities/variant/nodiscard.verify.cpp       |  2 +-
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/libcxx/test/libcxx/language.support/nodiscard.verify.cpp b/libcxx/test/libcxx/language.support/nodiscard.verify.cpp
index 3512dffa2cd24..a5ac8b6cfc8e9 100644
--- a/libcxx/test/libcxx/language.support/nodiscard.verify.cpp
+++ b/libcxx/test/libcxx/language.support/nodiscard.verify.cpp
@@ -103,16 +103,18 @@ void test() {
       nex.nested_ptr(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
     }
 
-#if TEST_STD_VER <= 14
-    std::get_unexpected(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
-#endif
+    { // Removed in C++17
+      // expected-warning at +1 {{ignoring return value of function declared with 'nodiscard' attribute}}
+      std::get_unexpected();
+    }
 
     std::get_terminate(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
 
-#if _LIBCPP_STD_VER <= 17
-    // expected-warning at +1 {{ignoring return value of function declared with 'nodiscard' attribute}}
-    std::uncaught_exception();
-#endif
+    { // Removed in C++20
+      // expected-warning at +1 {{ignoring return value of function declared with 'nodiscard' attribute}}
+      std::uncaught_exception();
+    }
+
     // expected-warning at +1 {{ignoring return value of function declared with 'nodiscard' attribute}}
     std::uncaught_exceptions();
 
diff --git a/libcxx/test/libcxx/utilities/variant/nodiscard.verify.cpp b/libcxx/test/libcxx/utilities/variant/nodiscard.verify.cpp
index b74a66f446311..b8ed7fe0321cd 100644
--- a/libcxx/test/libcxx/utilities/variant/nodiscard.verify.cpp
+++ b/libcxx/test/libcxx/utilities/variant/nodiscard.verify.cpp
@@ -66,7 +66,7 @@ void test() {
   }
 
   {
-    std::hash< std::variant<int, float>> hash;
+    std::hash<std::variant<int, float>> hash;
 
     // expected-warning at +1 {{ignoring return value of function declared with 'nodiscard' attribute}}
     hash(std::variant<int, float>{});



More information about the libcxx-commits mailing list