aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2020-02-24 12:56:00 -0500
committerMarek Polacek <polacek@redhat.com>2020-02-26 10:14:33 -0500
commitb9934ad88d6b27e5cf1a34d88dbefb2bbe928753 (patch)
treec44fcb5272b54f5d515563f41b0ef3b3d98a5a7d
parentd6ff22074126d38829f25981de9d6940cd2a234c (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/DRs/dr1423.C7
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" }