summaryrefslogtreecommitdiffstats
path: root/clang/test/clang-rename/ComplexFunctionOverride.cpp
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2017-06-30 16:36:09 +0000
committerAlex Lorenz <arphaman@gmail.com>2017-06-30 16:36:09 +0000
commit4abbd92bf4c830549ff5536de9aa821012d76491 (patch)
tree20bac7715081f927841f1c350c176a53d4b5fc1f /clang/test/clang-rename/ComplexFunctionOverride.cpp
parent069e5cfaf1df6c8c71eb52b6f4d9ed410c459368 (diff)
downloadbcm5719-llvm-4abbd92bf4c830549ff5536de9aa821012d76491.tar.gz
bcm5719-llvm-4abbd92bf4c830549ff5536de9aa821012d76491.zip
[refactor] Move clang-rename into the clang repository
The core engine of clang-rename will be used for local and global renames in the new refactoring engine, as mentioned in http://lists.llvm.org/pipermail/cfe-dev/2017-June/054286.html. The clang-rename tool is still supported but might get deprecated in the future. Differential Revision: https://reviews.llvm.org/D34696 llvm-svn: 306840
Diffstat (limited to 'clang/test/clang-rename/ComplexFunctionOverride.cpp')
-rw-r--r--clang/test/clang-rename/ComplexFunctionOverride.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/clang/test/clang-rename/ComplexFunctionOverride.cpp b/clang/test/clang-rename/ComplexFunctionOverride.cpp
new file mode 100644
index 00000000000..ccf3a20e540
--- /dev/null
+++ b/clang/test/clang-rename/ComplexFunctionOverride.cpp
@@ -0,0 +1,47 @@
+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>
OpenPOWER on IntegriCloud