template <typename T> class A { public: void foo() /* Test 1 */ {} // CHECK: void bar() /* Test 1 */ {} }; int main(int argc, char **argv) { A<int> a; A<double> b; A<float> c; a.foo(); /* Test 2 */ // CHECK: a.bar(); /* Test 2 */ b.foo(); /* Test 3 */ // CHECK: b.bar(); /* Test 3 */ c.foo(); /* Test 4 */ // CHECK: c.bar(); /* Test 4 */ return 0; } // Test 1. // RUN: clang-rename -offset=48 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s // Test 2. // RUN: clang-rename -offset=191 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s // Test 3. // RUN: clang-rename -offset=255 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s // Test 4. // RUN: clang-rename -offset=319 -new-name=bar %s -- | sed 's,//.*,,' | FileCheck %s // To find offsets after modifying the file, use: // grep -Ubo 'foo.*' <file> |