Clang Project

clang_source_code/test/clang-rename/ComplexFunctionOverride.cpp
1struct A {
2  virtual void foo() {} /* Test 1 */    // CHECK: virtual void bar() {}
3};
4
5struct B : A {
6  void foo() override {} /* Test 2 */   // CHECK: void bar() override {}
7};
8
9struct C : B {
10  void foo() override {} /* Test 3 */   // CHECK: void bar() override {}
11};
12
13struct D : B {
14  void foo() override {} /* Test 4 */   // CHECK: void bar() override {}
15};
16
17struct E : D {
18  void foo() override {} /* Test 5 */   // CHECK: void bar() override {}
19};
20
21int main() {
22  A a;
23  a.foo();                              // CHECK: a.bar();
24  B b;
25  b.foo();                              // CHECK: b.bar();
26  C c;
27  c.foo();                              // CHECK: c.bar();
28  D d;
29  d.foo();                              // CHECK: d.bar();
30  E e;
31  e.foo();                              // CHECK: e.bar();
32  return 0;
33}
34
35// Test 1.
36// RUN: clang-rename -offset=26 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s
37// Test 2.
38// RUN: clang-rename -offset=109 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s
39// Test 3.
40// RUN: clang-rename -offset=201 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s
41// Test 4.
42// RUN: clang-rename -offset=293 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s
43// Test 5.
44// RUN: clang-rename -offset=385 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s
45
46// To find offsets after modifying the file, use:
47//   grep -Ubo 'foo.*' <file>
48