|  | // RUN: %check_clang_tidy %s google-default-arguments %t | 
|  |  | 
|  | struct A { | 
|  | virtual void f(int I, int J = 3); | 
|  | // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: default arguments on virtual or override methods are prohibited [google-default-arguments] | 
|  | }; | 
|  |  | 
|  | struct B : public A { | 
|  | void f(int I, int J = 5); | 
|  | // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: default arguments on virtual or override methods are prohibited | 
|  | }; | 
|  |  | 
|  | struct C : public B { | 
|  | void f(int I, int J = 5) override; | 
|  | // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: default arguments on virtual or override methods are prohibited | 
|  | }; | 
|  |  | 
|  | // Negatives. | 
|  | struct D : public B { | 
|  | void f(int I, int J) override; | 
|  | }; | 
|  |  | 
|  | struct X { | 
|  | void f(int I, int J = 3); | 
|  | }; | 
|  |  | 
|  | struct Y : public X { | 
|  | void f(int I, int J = 5); | 
|  | }; |