diff options
author | Jonathan Coe <jbcoe@me.com> | 2018-04-24 21:25:16 +0000 |
---|---|---|
committer | Jonathan Coe <jbcoe@me.com> | 2018-04-24 21:25:16 +0000 |
commit | b9b3a62727b38635a721be94ce24106580673aef (patch) | |
tree | 3b0d967c5672a31850b9b4a3c9eece4553399bbb /clang-tools-extra/test/clang-tidy/bugprone-unused-return-value-custom.cpp | |
parent | 54df09e8fe6793042e376c0582064d3274598ad7 (diff) | |
download | bcm5719-llvm-b9b3a62727b38635a721be94ce24106580673aef.tar.gz bcm5719-llvm-b9b3a62727b38635a721be94ce24106580673aef.zip |
[clang-tidy] Improve bugprone-unused-return-value check
Summary:
Add support for checking class template member functions.
Also add the following functions to be checked by default:
- std::unique_ptr::release
- std::basic_string::empty
- std::vector::empty
Reviewers: alexfh, hokein, aaron.ballman, ilya-biryukov
Reviewed By: aaron.ballman
Subscribers: jbcoe, xazax.hun, cfe-commits
Tags: #clang-tools-extra
Differential Revision: https://reviews.llvm.org/D45891
Patch by khuttun (Kalle Huttunen)
llvm-svn: 330772
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/bugprone-unused-return-value-custom.cpp')
-rw-r--r-- | clang-tools-extra/test/clang-tidy/bugprone-unused-return-value-custom.cpp | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/clang-tools-extra/test/clang-tidy/bugprone-unused-return-value-custom.cpp b/clang-tools-extra/test/clang-tidy/bugprone-unused-return-value-custom.cpp index 4f498ddcc37..efe3705e3be 100644 --- a/clang-tools-extra/test/clang-tidy/bugprone-unused-return-value-custom.cpp +++ b/clang-tools-extra/test/clang-tidy/bugprone-unused-return-value-custom.cpp @@ -1,7 +1,7 @@ // RUN: %check_clang_tidy %s bugprone-unused-return-value %t \ // RUN: -config='{CheckOptions: \ // RUN: [{key: bugprone-unused-return-value.CheckedFunctions, \ -// RUN: value: "::fun;::ns::Outer::Inner::memFun;::ns::Type::staticFun"}]}' \ +// RUN: value: "::fun;::ns::Outer::Inner::memFun;::ns::Type::staticFun;::ns::ClassTemplate::memFun;::ns::ClassTemplate::staticFun"}]}' \ // RUN: -- namespace std { @@ -34,6 +34,12 @@ struct Type { static Retval staticFun(); }; +template <typename T> +struct ClassTemplate { + Retval memFun(); + static Retval staticFun(); +}; + } // namespace ns int fun(); @@ -60,6 +66,13 @@ void warning() { ns::Type::staticFun(); // CHECK-MESSAGES: [[@LINE-1]]:3: warning: the value returned by this function should be used [bugprone-unused-return-value] + + ns::ClassTemplate<int> ObjA4; + ObjA4.memFun(); + // CHECK-MESSAGES: [[@LINE-1]]:3: warning: the value returned by this function should be used [bugprone-unused-return-value] + + ns::ClassTemplate<int>::staticFun(); + // CHECK-MESSAGES: [[@LINE-1]]:3: warning: the value returned by this function should be used [bugprone-unused-return-value] } void noWarning() { @@ -70,6 +83,11 @@ void noWarning() { auto R3 = ns::Type::staticFun(); + ns::ClassTemplate<int> ObjB2; + auto R4 = ObjB2.memFun(); + + auto R5 = ns::ClassTemplate<int>::staticFun(); + // test calling a void overload of a checked function fun(5); @@ -77,6 +95,6 @@ void noWarning() { int I = 1; std::launder(&I); - ns::Type ObjB2; - ObjB2.memFun(); + ns::Type ObjB3; + ObjB3.memFun(); } |