[Libreoffice-commits] core.git: compilerplugins/clang

Stephan Bergmann (via logerrit) logerrit at kemper.freedesktop.org
Sun Feb 16 15:30:14 UTC 2020


 compilerplugins/clang/test/consttobool.cxx |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

New commits:
commit 4c13e89d8ef6f1eed1952fbca7ae1476d0ccff65
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Sun Feb 16 15:04:59 2020 +0100
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Sun Feb 16 16:29:41 2020 +0100

    Fix compilerplugins/clang/test/consttobool.cxx
    
    ...after <https://github.com/llvm/llvm-project/commit/
    9ce6dc9872be4081fb98f6161c28581e1cbbe7dc> "CWG1423: don't permit implicit
    conversion of nullptr_t to bool."  (Direct-initialization from std::nullptr_t to
    bool is allowed in C++17, but it appears that will be dropped from C++20, see
    <https://github.com/cplusplus/draft/commit/
    df3e38121431afd9adcf7dce725a670a235463ea> "CWG1781 Converting from nullptr_t to
    bool in overload resolution", at which point the new check for initialization of
    S::b and the res.isNullPointer() branch in ConstToBool::VisitImplicitCastExpr,
    compilerplugins/clang/consttobool.cxx, will probably become moot.)
    
    Change-Id: I99773d13d514d5ba5296843592b740ea949b2b1f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88784
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/compilerplugins/clang/test/consttobool.cxx b/compilerplugins/clang/test/consttobool.cxx
index 684a9739b2ab..28184825556e 100644
--- a/compilerplugins/clang/test/consttobool.cxx
+++ b/compilerplugins/clang/test/consttobool.cxx
@@ -25,6 +25,16 @@ enum E
 int const c1 = 1;
 constexpr int c2 = 2;
 
+struct S
+{
+    S()
+    // expected-error-re at +1 {{implicit conversion of constant {{nullptr|0}} of type 'nullptr_t' to 'bool'; use 'false' instead [loplugin:consttobool]}}
+    : b(nullptr)
+    {
+    }
+    bool b;
+};
+
 int main()
 {
     bool b;
@@ -32,8 +42,6 @@ int main()
     b = 0;
     // expected-error at +1 {{implicit conversion of constant 1 of type 'sal_Bool' (aka 'unsigned char') to 'bool'; use 'true' instead [loplugin:consttobool]}}
     b = sal_True;
-    // expected-error-re at +1 {{implicit conversion of constant {{nullptr|0}} of type 'nullptr_t' to 'bool'; use 'false' instead [loplugin:consttobool]}}
-    b = nullptr;
     // expected-error at +1 {{implicit conversion of constant 1.000000e+00 of type 'double' to 'bool'; use 'true' instead [loplugin:consttobool]}}
     b = 1.0;
     // expected-error at +1 {{implicit conversion of constant 2 of type 'E' to 'bool'; use 'true' instead [loplugin:consttobool]}}


More information about the Libreoffice-commits mailing list