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 <pola...@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