xref: /llvm-project/clang-tools-extra/test/clang-tidy/checkers/fuchsia/default-arguments-calls.cpp (revision 77a08a73cc57679e7bf30fdd8974aeba468f2a27)
189a1d03eSRichard // RUN: %check_clang_tidy %s fuchsia-default-arguments-calls %t
289a1d03eSRichard 
389a1d03eSRichard int foo(int value = 5) { return value; }
489a1d03eSRichard 
589a1d03eSRichard int f() {
689a1d03eSRichard   foo();
789a1d03eSRichard   // CHECK-NOTES: [[@LINE-1]]:3: warning: calling a function that uses a default argument is disallowed [fuchsia-default-arguments-calls]
889a1d03eSRichard   // CHECK-NOTES: [[@LINE-5]]:9: note: default parameter was declared here
989a1d03eSRichard }
1089a1d03eSRichard 
1189a1d03eSRichard int bar(int value) { return value; }
1289a1d03eSRichard 
1389a1d03eSRichard int n() {
1489a1d03eSRichard   foo(0);
1589a1d03eSRichard   bar(0);
1689a1d03eSRichard }
1789a1d03eSRichard 
1889a1d03eSRichard void x(int i = 12);
1989a1d03eSRichard 
2089a1d03eSRichard struct S {
2189a1d03eSRichard   void x(int i);
2289a1d03eSRichard };
2389a1d03eSRichard 
2489a1d03eSRichard void S::x(int i = 12) {}
2589a1d03eSRichard 
2689a1d03eSRichard int main() {
2789a1d03eSRichard   S s;
2889a1d03eSRichard   s.x();
29*77a08a73Sykiko   // CHECK-NOTES: [[@LINE-1]]:5: warning: calling a function that uses a default argument is disallowed [fuchsia-default-arguments-calls]
3089a1d03eSRichard   // CHECK-NOTES: [[@LINE-6]]:11: note: default parameter was declared here
3189a1d03eSRichard   // CHECK-NEXT: void S::x(int i = 12) {}
3289a1d03eSRichard   x();
3389a1d03eSRichard   // CHECK-NOTES: [[@LINE-1]]:3: warning: calling a function that uses a default argument is disallowed [fuchsia-default-arguments-calls]
3489a1d03eSRichard   // CHECK-NOTES: [[@LINE-16]]:8: note: default parameter was declared here
3589a1d03eSRichard   // CHECK-NEXT: void x(int i = 12);
3689a1d03eSRichard }
37