[libcxx-commits] [PATCH] D131372: [libc++][spaceship] Implement std::variant::operator<=>

Kent Ross via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu Aug 11 15:33:38 PDT 2022


mumbleskates added inline comments.


================
Comment at: libcxx/test/support/test_macros.h:238-246
+#if TEST_STD_VER >= 17
+#  define TEST_NODISCARD [[nodiscard]]
+#elif defined(TEST_COMPILER_CLANG) || defined(TEST_COMPILER_GCC)
+#  define TEST_NODISCARD __attribute__((warn_unused_result))
+#elif defined(TEST_COMPILER_MSVC) && _MSC_VER >= 1700
+#  define TEST_NODISCARD _Check_return_
+#else
----------------
philnik wrote:
> I think this should just be
> ```
> #if __has_cpp_attribute(nodiscard)
> #  define TEST_NODISCARD [[nodiscard]]
> #else
> #  define TEST_NODISCARD
> #endif
> ```
> I don't really see a reason to use `warn_unused_result`, since both clang and GCC have `[[nodiscard]]` as an extension since C++11 and Microsoft only tests with C++14 and later anyways AFAICT. Also, our `__config` header says:
> ```
> // We can't use GCC's [[gnu::warn_unused_result]] and
> // __attribute__((warn_unused_result)), because GCC does not silence them via
> // (void) cast.
> ```
thanks! done


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131372/new/

https://reviews.llvm.org/D131372



More information about the libcxx-commits mailing list