[PATCH] c++: Add test for DR 1423, Convertibility of nullptr to bool.

Jason Merrill jason@redhat.com
Wed Feb 26 04:59:00 GMT 2020


On 2/24/20 1:09 PM, Marek Polacek wrote:
> 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.
> 
> Tested on x86_64-linux, ok for trunk?

OK.

> 2020-02-24  Marek Polacek  <polacek@redhat.com>
> 
> 	DR 1423, Convertibility of nullptr to bool.
> 	* g++.dg/DRs/dr1423.C: New test.
> ---
>   gcc/testsuite/g++.dg/DRs/dr1423.C | 7 +++++++
>   1 file changed, 7 insertions(+)
>   create mode 100644 gcc/testsuite/g++.dg/DRs/dr1423.C
> 
> 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" }
> 
> base-commit: a4dbb9b25a60143c699de55cd6226cebeb3b3c3e
> 



More information about the Gcc-patches mailing list