diff options
author | Marek Polacek <polacek@redhat.com> | 2020-02-24 12:56:00 -0500 |
---|---|---|
committer | Marek Polacek <polacek@redhat.com> | 2020-02-26 10:14:33 -0500 |
commit | b9934ad88d6b27e5cf1a34d88dbefb2bbe928753 (patch) | |
tree | c44fcb5272b54f5d515563f41b0ef3b3d98a5a7d | |
parent | d6ff22074126d38829f25981de9d6940cd2a234c (diff) | |
download | gcc-b9934ad88d6b27e5cf1a34d88dbefb2bbe928753.zip gcc-b9934ad88d6b27e5cf1a34d88dbefb2bbe928753.tar.gz gcc-b9934ad88d6b27e5cf1a34d88dbefb2bbe928753.tar.bz2 |
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 <polacek@redhat.com>
DR 1423, Convertibility of nullptr to bool.
* g++.dg/DRs/dr1423.C: New test.
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/DRs/dr1423.C | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4f46c38..a18b1f2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2020-02-26 Marek Polacek <polacek@redhat.com> + DR 1423, Convertibility of nullptr to bool. + * g++.dg/DRs/dr1423.C: New test. + +2020-02-26 Marek Polacek <polacek@redhat.com> + PR c++/93803 - ICE with constexpr init and [[no_unique_address]]. * g++.dg/cpp2a/constexpr-init16.C: New test. * g++.dg/cpp2a/constexpr-init17.C: New test. diff --git a/gcc/testsuite/g++.dg/DRs/dr1423.C b/gcc/testsuite/g++.dg/DRs/dr1423.C new file mode 100644 index 0000000..d82baae --- /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" } |