From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:06:44 +0200 Subject: Adding upstream version 4:7.4.7. Signed-off-by: Daniel Baumann --- compilerplugins/clang/test/constmethod.cxx | 59 ++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 compilerplugins/clang/test/constmethod.cxx (limited to 'compilerplugins/clang/test/constmethod.cxx') diff --git a/compilerplugins/clang/test/constmethod.cxx b/compilerplugins/clang/test/constmethod.cxx new file mode 100644 index 000000000..e5efcae16 --- /dev/null +++ b/compilerplugins/clang/test/constmethod.cxx @@ -0,0 +1,59 @@ +/* -*- 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 +#include + +class OutputDevice; + +struct Class1 +{ + struct Impl { + void foo_notconst(); + void foo_const() const; + int & foo_int_ref() const; + int const & foo_const_int_ref() const; + int * foo_int_ptr() const; + int const * foo_const_int_ptr() const; + }; + std::unique_ptr pImpl; + int* m_pint; + VclPtr m_pvcl; + + void GetFoo1() { + pImpl->foo_notconst(); + } + void GetFoo2() { + pImpl->foo_const(); + } + int& GetFoo3() { + return pImpl->foo_int_ref(); + } + int const & GetFoo3a() { // expected-error {{this method can be const [loplugin:constmethod]}} + return pImpl->foo_const_int_ref(); + } + int* GetFoo3b() { + return pImpl->foo_int_ptr(); + } + int const * GetFoo3c() { // expected-error {{this method can be const [loplugin:constmethod]}} + return pImpl->foo_const_int_ptr(); + } + Impl* GetFoo4() { + return pImpl.get(); // no warning expected + } + int* GetFoo5() { + return m_pint; // no warning expected + } + int& GetFoo6() { + return *m_pint; // no warning expected + } + OutputDevice* GetFoo7() { + return m_pvcl; // no warning expected + } +}; -- cgit v1.2.3