// RUN: %check_clang_tidy %s fuchsia-default-arguments-declarations %t int foo(int value = 5) { return value; } // CHECK-NOTES: [[@LINE-1]]:9: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES: int foo(int value) { return value; } int bar(int value) { return value; } class Baz { public: int a(int value = 5) { return value; } // CHECK-NOTES: [[@LINE-1]]:9: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES: int a(int value) { return value; } int b(int value) { return value; } }; class Foo { // Fix should be suggested in declaration int a(int value = 53); // CHECK-NOTES: [[@LINE-1]]:9: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES: int a(int value); }; // Fix shouldn't be suggested in implementation int Foo::a(int value) { return value; } // Elided functions void f(int = 5) {}; // CHECK-NOTES: [[@LINE-1]]:8: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES: void f(int) {}; void g(int) {}; // Should not suggest fix for macro-defined parameters #define D(val) = val void h(int i D(5)); // CHECK-NOTES: [[@LINE-1]]:8: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES-NOT: void h(int i); void x(int i); void x(int i = 12); // CHECK-NOTES: [[@LINE-1]]:8: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES: void x(int i); void x(int i) {} struct S { void x(int i); }; void S::x(int i = 12) {} // CHECK-NOTES: [[@LINE-1]]:11: warning: declaring a parameter with a default argument is disallowed [fuchsia-default-arguments-declarations] // CHECK-FIXES: void S::x(int i) {}