1 // RUN: %check_clang_tidy %s google-default-arguments %t
2 
3 struct A {
4   virtual void f(int I, int J = 3);
5   // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: default arguments on virtual or override methods are prohibited [google-default-arguments]
6 };
7 
8 struct B : public A {
9   void f(int I, int J = 5);
10   // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: default arguments on virtual or override methods are prohibited
11 };
12 
13 struct C : public B {
14   void f(int I, int J = 5) override;
15   // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: default arguments on virtual or override methods are prohibited
16 };
17 
18 // Negatives.
19 struct D : public B {
20   void f(int I, int J) override;
21 };
22 
23 struct X {
24   void f(int I, int J = 3);
25 };
26 
27 struct Y : public X {
28   void f(int I, int J = 5);
29 };
30