From b9934ad88d6b27e5cf1a34d88dbefb2bbe928753 Mon Sep 17 00:00:00 2001 From: Marek Polacek Date: Mon, 24 Feb 2020 12:56:00 -0500 Subject: [PATCH] c++: Add test for DR 1423, Convertibility of nullptr to bool. DR 1423, which supersedes DR 654, says that you can't copy-init a bool from a std::nullptr_t: bool b = nullptr; // error Conversely, it works with direct-initialization which is more permissive than copy-initialization. No code changes necessary since we handle it right. 2020-02-26 Marek Polacek DR 1423, Convertibility of nullptr to bool. * g++.dg/DRs/dr1423.C: New test. --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/DRs/dr1423.C | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 gcc/testsuite/g++.dg/DRs/dr1423.C diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4f46c385403..a18b1f2ef89 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-02-26 Marek Polacek + + DR 1423, Convertibility of nullptr to bool. + * g++.dg/DRs/dr1423.C: New test. + 2020-02-26 Marek Polacek PR c++/93803 - ICE with constexpr init and [[no_unique_address]]. diff --git a/gcc/testsuite/g++.dg/DRs/dr1423.C b/gcc/testsuite/g++.dg/DRs/dr1423.C new file mode 100644 index 00000000000..d82baae9985 --- /dev/null +++ b/gcc/testsuite/g++.dg/DRs/dr1423.C @@ -0,0 +1,7 @@ +// DR 1423 - Convertibility of nullptr to bool. +// { dg-do compile { target c++11 } } + +bool b = nullptr; // { dg-error "converting to .bool. from .std::nullptr_t. requires direct-initialization" } +bool b2(nullptr); +bool b3{nullptr}; +bool b4 = { nullptr }; // { dg-error "converting to .bool. from .std::nullptr_t. requires direct-initialization" } -- 2.30.2