[PATCH] D40144: Implement `std::launder`

Eric Fiselier via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 21 19:32:13 PST 2017


EricWF added inline comments.


================
Comment at: test/std/language.support/support.dynamic/ptr.launder/launder.nodiscard.fail.cpp:16
+// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17
+// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8
+
----------------
mclow.lists wrote:
> EricWF wrote:
> > Why is this test unsupported with older compilers? The version of `std::launder` in this patch should work regardless of compiler support for `__builtin_launder`.
> > 
> > Although, it's possible the compiler requirements were intended to avoid older clang versions without `[[nodiscard]]`. However, I don't think `clang-3.8` supports C++2a, so the condition seems redundant.
> > 
> We're testing the `[[nodiscard]]` bit here, not the `launder` bit. And that didn't come in until clang 3.9
Perhaps we should fall back to `__attribute__((warn_unused_result))` when we don't have `[[nodiscard]]`? All supported Clang versions should provide that, as well as GCC 4.9 and newer.


https://reviews.llvm.org/D40144





More information about the cfe-commits mailing list