diff options
Diffstat (limited to 'compilerplugins/clang/test/constmethod.cxx')
-rw-r--r-- | compilerplugins/clang/test/constmethod.cxx | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/compilerplugins/clang/test/constmethod.cxx b/compilerplugins/clang/test/constmethod.cxx new file mode 100644 index 000000000000..e801db419aa7 --- /dev/null +++ b/compilerplugins/clang/test/constmethod.cxx @@ -0,0 +1,46 @@ +/* -*- 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 <memory> +#include <vcl/vclptr.hxx> + +class OutputDevice; + +struct Class1 +{ + struct Impl { + void foo_notconst(); + void foo_const() const; + int & foo_both(); + int const & foo_both() const; + }; + std::unique_ptr<Impl> pImpl; + int* m_pint; + VclPtr<OutputDevice> m_pvcl; + + void foo1() { + pImpl->foo_notconst(); + } + void foo2() { // expected-error {{this method can be const [loplugin:constmethod]}} + pImpl->foo_const(); + } + // TODO this should trigger a warning, but doesn't + void foo3() { + pImpl->foo_both(); + } + Impl* foo4() { + return pImpl.get(); // no warning expected + } + int* foo5() { + return m_pint; // no warning expected + } + OutputDevice* foo6() { + return m_pvcl; // no warning expected + } +}; |