diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2017-11-08 15:23:24 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2017-11-08 15:28:20 +0100 |
commit | 871e420cbbd8afe064e7bbc0ed426db3b01fddfa (patch) | |
tree | 2e97a4d72b9f3c561691dda995bc208ca5fceeeb /compilerplugins | |
parent | bcfd4b0de6b67bfa3e5f42b845d7055073c68d52 (diff) |
Fix loplugin::unusedvariablecheck check for std classes
(but which finds no new hits)
Change-Id: I862a3c82932ee6d6d0946cd33f965bb8e917cff8
Diffstat (limited to 'compilerplugins')
-rw-r--r-- | compilerplugins/clang/check.cxx | 11 | ||||
-rw-r--r-- | compilerplugins/clang/test/unusedvariablecheck.cxx | 28 |
2 files changed, 31 insertions, 8 deletions
diff --git a/compilerplugins/clang/check.cxx b/compilerplugins/clang/check.cxx index 03d9683a4903..6f9ee1779bf6 100644 --- a/compilerplugins/clang/check.cxx +++ b/compilerplugins/clang/check.cxx @@ -216,14 +216,9 @@ bool isExtraWarnUnusedType(clang::QualType type) { } auto const tc = TypeCheck(rec); // Check some common non-LO types: - if (tc.Class("string").Namespace("std").GlobalNamespace() - || tc.Class("basic_string").Namespace("std").GlobalNamespace() - || tc.Class("list").Namespace("std").GlobalNamespace() - || (tc.Class("list").Namespace("__debug").Namespace("std") - .GlobalNamespace()) - || tc.Class("vector").Namespace("std").GlobalNamespace() - || (tc.Class("vector" ).Namespace("__debug").Namespace("std") - .GlobalNamespace())) + if (tc.Class("basic_string").StdNamespace() + || tc.Class("list").StdNamespace() + || tc.Class("vector").StdNamespace()) { return true; } diff --git a/compilerplugins/clang/test/unusedvariablecheck.cxx b/compilerplugins/clang/test/unusedvariablecheck.cxx new file mode 100644 index 000000000000..c5b2a04d89fe --- /dev/null +++ b/compilerplugins/clang/test/unusedvariablecheck.cxx @@ -0,0 +1,28 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <sal/config.h> + +#include <list> +#include <string> +#include <vector> + +namespace +{ +template <typename T> using Vec = std::vector<T>; +} + +int main() +{ + std::list<int> v1; // expected-error {{unused variable 'v1' [loplugin:unusedvariablecheck]}} + std::string v2; // expected-error {{unused variable 'v2' [loplugin:unusedvariablecheck]}} + Vec<int> v3; // expected-error {{unused variable 'v3' [loplugin:unusedvariablecheck]}} +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ |