1 | struct A { |
2 | virtual void foo() {} /* Test 1 */ // CHECK: virtual void bar() {} |
3 | }; |
4 | |
5 | struct B : A { |
6 | void foo() override {} /* Test 2 */ // CHECK: void bar() override {} |
7 | }; |
8 | |
9 | struct C : B { |
10 | void foo() override {} /* Test 3 */ // CHECK: void bar() override {} |
11 | }; |
12 | |
13 | struct D : B { |
14 | void foo() override {} /* Test 4 */ // CHECK: void bar() override {} |
15 | }; |
16 | |
17 | struct E : D { |
18 | void foo() override {} /* Test 5 */ // CHECK: void bar() override {} |
19 | }; |
20 | |
21 | int 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 | |