diff options
Diffstat (limited to 'clang/test/clang-rename/TemplateClassInstantiation.cpp')
-rw-r--r-- | clang/test/clang-rename/TemplateClassInstantiation.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/clang/test/clang-rename/TemplateClassInstantiation.cpp b/clang/test/clang-rename/TemplateClassInstantiation.cpp new file mode 100644 index 00000000000..493d0951df5 --- /dev/null +++ b/clang/test/clang-rename/TemplateClassInstantiation.cpp @@ -0,0 +1,42 @@ +template <typename T> +class Foo { /* Test 1 */ // CHECK: class Bar { /* Test 1 */ +public: + T foo(T arg, T& ref, T* ptr) { + T value; + int number = 42; + value = (T)number; + value = static_cast<T>(number); + return value; + } + static void foo(T value) {} + T member; +}; + +template <typename T> +void func() { + Foo<T> obj; /* Test 2 */ // CHECK: Bar<T> obj; + obj.member = T(); + Foo<T>::foo(); // CHECK: Bar<T>::foo(); +} + +int main() { + Foo<int> i; /* Test 3 */ // CHECK: Bar<int> i; + i.member = 0; + Foo<int>::foo(0); // CHECK: Bar<int>::foo(0); + + Foo<bool> b; // CHECK: Bar<bool> b; + b.member = false; + Foo<bool>::foo(false); // CHECK: Bar<bool>::foo(false); + + return 0; +} + +// Test 1. +// RUN: clang-rename -offset=29 -new-name=Bar %s -- -fno-delayed-template-parsing | sed 's,//.*,,' | FileCheck %s +// Test 2. +// RUN: clang-rename -offset=324 -new-name=Bar %s -- -fno-delayed-template-parsing | sed 's,//.*,,' | FileCheck %s +// Test 3. +// RUN: clang-rename -offset=463 -new-name=Bar %s -- -fno-delayed-template-parsing | sed 's,//.*,,' | FileCheck %s + +// To find offsets after modifying the file, use: +// grep -Ubo 'Foo.*' <file> |