48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
struct A {
 | 
						|
  virtual void foo() {} /* Test 1 */    // CHECK: virtual void bar() {}
 | 
						|
};
 | 
						|
 | 
						|
struct B : A {
 | 
						|
  void foo() override {} /* Test 2 */   // CHECK: void bar() override {}
 | 
						|
};
 | 
						|
 | 
						|
struct C : B {
 | 
						|
  void foo() override {} /* Test 3 */   // CHECK: void bar() override {}
 | 
						|
};
 | 
						|
 | 
						|
struct D : B {
 | 
						|
  void foo() override {} /* Test 4 */   // CHECK: void bar() override {}
 | 
						|
};
 | 
						|
 | 
						|
struct E : D {
 | 
						|
  void foo() override {} /* Test 5 */   // CHECK: void bar() override {}
 | 
						|
};
 | 
						|
 | 
						|
int main() {
 | 
						|
  A a;
 | 
						|
  a.foo();                              // CHECK: a.bar();
 | 
						|
  B b;
 | 
						|
  b.foo();                              // CHECK: b.bar();
 | 
						|
  C c;
 | 
						|
  c.foo();                              // CHECK: c.bar();
 | 
						|
  D d;
 | 
						|
  d.foo();                              // CHECK: d.bar();
 | 
						|
  E e;
 | 
						|
  e.foo();                              // CHECK: e.bar();
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
// Test 1.
 | 
						|
// RUN: clang-rename -offset=26 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s
 | 
						|
// Test 2.
 | 
						|
// RUN: clang-rename -offset=109 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s
 | 
						|
// Test 3.
 | 
						|
// RUN: clang-rename -offset=201 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s
 | 
						|
// Test 4.
 | 
						|
// RUN: clang-rename -offset=293 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s
 | 
						|
// Test 5.
 | 
						|
// RUN: clang-rename -offset=385 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s
 | 
						|
 | 
						|
// To find offsets after modifying the file, use:
 | 
						|
//   grep -Ubo 'foo.*' <file>
 |