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

Stephan Bergmann (via logerrit) logerrit at kemper.freedesktop.org
Thu Oct 10 11:03:17 UTC 2019


 compilerplugins/clang/indentation.cxx          |   16 ++++++++++++++++
 compilerplugins/clang/test/indentation.cxx     |    5 +++++
 xmlsecurity/source/gpg/SecurityEnvironment.cxx |    2 +-
 3 files changed, 22 insertions(+), 1 deletion(-)

New commits:
commit bfaf25f59352eb81c7f53c741995a82021f4b0ff
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Thu Oct 10 11:38:18 2019 +0200
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Thu Oct 10 13:02:40 2019 +0200

    Silence -Werror,-Wunused-variable (clang-cl)
    
    Required a workaround for loplugin:indentation, until
    <https://reviews.llvm.org/D68581> "Include leading attributes in DeclStmt's
    SourceRange" lands in Clang.
    
    Change-Id: I7192969d40fa4c50bbd603d059532b9344865248
    Reviewed-on: https://gerrit.libreoffice.org/80596
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/compilerplugins/clang/indentation.cxx b/compilerplugins/clang/indentation.cxx
index eaa795e6765a..57fbd1b382a0 100644
--- a/compilerplugins/clang/indentation.cxx
+++ b/compilerplugins/clang/indentation.cxx
@@ -120,6 +120,22 @@ bool Indentation::VisitCompoundStmt(CompoundStmt const* compoundStmt)
         // these are always weirdly indented
         if (isa<LabelStmt>(stmt))
             continue;
+        // At least until Clang 9.0.0, getBeginLoc of a VarDecl DeclStmt with an UnusedAttr points
+        // after the attr (and getLocation of the attr would point at "maybe_unused", not at the
+        // leading "[["), so just ignore those at least for now:
+        if (auto const declStmt = dyn_cast<DeclStmt>(stmt))
+        {
+            if (declStmt->decl_begin() != declStmt->decl_end())
+            {
+                if (auto const decl = dyn_cast<VarDecl>(*declStmt->decl_begin()))
+                {
+                    if (decl->hasAttr<UnusedAttr>())
+                    {
+                        continue;
+                    }
+                }
+            }
+        }
 
         auto stmtLoc = compat::getBeginLoc(stmt);
 
diff --git a/compilerplugins/clang/test/indentation.cxx b/compilerplugins/clang/test/indentation.cxx
index 685ec7e17e1c..3a76c2c97e2f 100644
--- a/compilerplugins/clang/test/indentation.cxx
+++ b/compilerplugins/clang/test/indentation.cxx
@@ -44,4 +44,9 @@ void top1(int x) {
         foo();
 }
 
+void attr() {
+    [[maybe_unused]] int i = foo();
+    foo();
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/xmlsecurity/source/gpg/SecurityEnvironment.cxx b/xmlsecurity/source/gpg/SecurityEnvironment.cxx
index 468738f34c33..290529bc8ae6 100644
--- a/xmlsecurity/source/gpg/SecurityEnvironment.cxx
+++ b/xmlsecurity/source/gpg/SecurityEnvironment.cxx
@@ -51,7 +51,7 @@ SecurityEnvironmentGpg::SecurityEnvironmentGpg()
     // in instdir/program/python-core-x.y.z/bin, while gpgme-w32spawn.exe is in instdir/program.
     // If we can't find gpgme-w32spawn.exe in the current executable location, then try to find
     // the spawn executable, and inform gpgme about actual location using gpgme_set_global_flag.
-    static bool bSpawnPathInitialized = [] {
+    [[maybe_unused]] static bool bSpawnPathInitialized = [] {
         auto accessUrl = [](const INetURLObject& url) {
             osl::File file(url.GetMainURL(INetURLObject::DecodeMechanism::NONE));
             return file.open(osl_File_OpenFlag_Read) == osl::FileBase::E_None;


More information about the Libreoffice-commits mailing list