diff options
author | Sergio Martins <smartins@kde.org> | 2018-03-17 18:04:41 +0000 |
---|---|---|
committer | Sergio Martins <smartins@kde.org> | 2018-03-17 18:04:41 +0000 |
commit | e675855cb3127825ff1aac3dd22e2878dc894a7c (patch) | |
tree | 254a1db8bde9ad338016ac7308252b198d2cfa87 /tests/function-args-by-ref | |
parent | dba14f317183428e64a3d4e6c0559faacafdf6b0 (diff) |
function-args-by-*: Add an option to warn for overridden methods
Warning for overridden methods is disabled by default, but can be
enabled with:
export CLAZY_EXTRA_OPTIONS=function-args-by-value-warn-for-overridden-methods
(or s/value/ref)
Diffstat (limited to 'tests/function-args-by-ref')
-rw-r--r-- | tests/function-args-by-ref/config.json | 4 | ||||
-rw-r--r-- | tests/function-args-by-ref/warn-for-overridden-methods.cpp | 22 | ||||
-rw-r--r-- | tests/function-args-by-ref/warn-for-overridden-methods.cpp.expected | 7 |
3 files changed, 33 insertions, 0 deletions
diff --git a/tests/function-args-by-ref/config.json b/tests/function-args-by-ref/config.json index 03f72844..173569d8 100644 --- a/tests/function-args-by-ref/config.json +++ b/tests/function-args-by-ref/config.json @@ -8,6 +8,10 @@ }, { "filename" : "sharedptrs.cpp" + }, + { + "filename" : "warn-for-overridden-methods.cpp", + "env" : { "CLAZY_EXTRA_OPTIONS" : "function-args-by-ref-warn-for-overridden-methods" } } ] } diff --git a/tests/function-args-by-ref/warn-for-overridden-methods.cpp b/tests/function-args-by-ref/warn-for-overridden-methods.cpp new file mode 100644 index 00000000..f4a7ee37 --- /dev/null +++ b/tests/function-args-by-ref/warn-for-overridden-methods.cpp @@ -0,0 +1,22 @@ +struct NonTrivial { + NonTrivial() {} + NonTrivial(const NonTrivial &) {} + void constFunction() const {}; + void nonConstFunction() {}; + int a; +}; + +class BaseWithVirtuals +{ +public: + virtual void virtualMethod1(NonTrivial) {}; // Warn + virtual void virtualMethod2(NonTrivial) {}; // Warn + void nonVirtualMethod(NonTrivial) {}; // Warn +}; + +class DerivedWithVirtuals : BaseWithVirtuals { +public: + void virtualMethod1(NonTrivial) override {}; // Warn + void virtualMethod2(NonTrivial) {}; // Warn + void nonVirtualMethod(NonTrivial) {}; // Warn +}; diff --git a/tests/function-args-by-ref/warn-for-overridden-methods.cpp.expected b/tests/function-args-by-ref/warn-for-overridden-methods.cpp.expected new file mode 100644 index 00000000..d9acacbd --- /dev/null +++ b/tests/function-args-by-ref/warn-for-overridden-methods.cpp.expected @@ -0,0 +1,7 @@ +function-args-by-ref/warn-for-overridden-methods.cpp:20:10: warning: 'virtualMethod2' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] +function-args-by-ref/warn-for-overridden-methods.cpp:12:33: warning: Missing reference on non-trivial type (struct NonTrivial) [-Wclazy-function-args-by-ref] +function-args-by-ref/warn-for-overridden-methods.cpp:13:33: warning: Missing reference on non-trivial type (struct NonTrivial) [-Wclazy-function-args-by-ref] +function-args-by-ref/warn-for-overridden-methods.cpp:14:27: warning: Missing reference on non-trivial type (struct NonTrivial) [-Wclazy-function-args-by-ref] +function-args-by-ref/warn-for-overridden-methods.cpp:19:25: warning: Missing reference on non-trivial type (struct NonTrivial) [-Wclazy-function-args-by-ref] +function-args-by-ref/warn-for-overridden-methods.cpp:20:25: warning: Missing reference on non-trivial type (struct NonTrivial) [-Wclazy-function-args-by-ref] +function-args-by-ref/warn-for-overridden-methods.cpp:21:27: warning: Missing reference on non-trivial type (struct NonTrivial) [-Wclazy-function-args-by-ref] |