1 // RUN: %check_clang_tidy %s bugprone-unused-return-value %t \ 2 // RUN: -config='{CheckOptions: \ 3 // RUN: {bugprone-unused-return-value.CheckedFunctions: "::*"}}' \ 4 // RUN: -- 5 6 struct S1 { S1S17 S1(){}; 8 S1(S1 const &); 9 S1(S1 &&); 10 S1 &operator=(S1 const &); 11 S1 &operator=(S1 &&); 12 S1 &operator+=(S1); 13 S1 &operator++(); 14 S1 &operator++(int); 15 S1 &operator--(); 16 S1 &operator--(int); 17 }; 18 19 struct S2 { S2S220 S2(){}; 21 S2(S2 const &); 22 S2(S2 &&); 23 }; 24 25 S2 &operator-=(S2&, int); 26 S2 &operator++(S2 &); 27 S2 &operator++(S2 &, int); 28 29 S1 returnValue(); 30 S1 const &returnRef(); 31 bar()32void bar() { 33 returnValue(); 34 // CHECK-MESSAGES: [[@LINE-1]]:3: warning: the value returned by this function should not be disregarded; neglecting it may lead to errors 35 36 S1 a{}; 37 a = returnValue(); 38 a.operator=(returnValue()); 39 40 a = returnRef(); 41 a.operator=(returnRef()); 42 43 a += returnRef(); 44 45 a++; 46 ++a; 47 a--; 48 --a; 49 50 S2 b{}; 51 52 b -= 1; 53 b++; 54 ++b; 55 } 56