summaryrefslogtreecommitdiffstats
path: root/clang/test/Refactor/LocalRename/BuiltinOffsetof.cpp
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2017-11-07 18:30:23 +0000
committerAlex Lorenz <arphaman@gmail.com>2017-11-07 18:30:23 +0000
commitf4bf4227b7edd25bf5333c95400cad17854a2ce2 (patch)
tree961d07f6230fe029bc1edf1b9d8efd8d7cc2c0e6 /clang/test/Refactor/LocalRename/BuiltinOffsetof.cpp
parent065755d23d364e8b558a11ec96fe234e92384e61 (diff)
downloadbcm5719-llvm-f4bf4227b7edd25bf5333c95400cad17854a2ce2.tar.gz
bcm5719-llvm-f4bf4227b7edd25bf5333c95400cad17854a2ce2.zip
[refactor] rename field references in __builtin_offsetof
rdar://33875453 llvm-svn: 317599
Diffstat (limited to 'clang/test/Refactor/LocalRename/BuiltinOffsetof.cpp')
-rw-r--r--clang/test/Refactor/LocalRename/BuiltinOffsetof.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/clang/test/Refactor/LocalRename/BuiltinOffsetof.cpp b/clang/test/Refactor/LocalRename/BuiltinOffsetof.cpp
new file mode 100644
index 00000000000..3119eeb7e52
--- /dev/null
+++ b/clang/test/Refactor/LocalRename/BuiltinOffsetof.cpp
@@ -0,0 +1,32 @@
+// RUN: clang-refactor local-rename -selection=test:%s -new-name=bar %s -- | grep -v CHECK | FileCheck %s
+
+struct Struct {
+ int /*range f=*/field;
+};
+
+struct Struct2 {
+ Struct /*range array=*/array[4][2];
+};
+
+void foo() {
+ (void)__builtin_offsetof(Struct, /*range f=*/field);
+ (void)__builtin_offsetof(Struct2, /*range array=*/array[1][0]./*range f=*/field);
+}
+
+#define OFFSET_OF_(X, Y) __builtin_offsetof(X, Y)
+
+class SubclassOffsetof : public Struct {
+ void foo() {
+ (void)OFFSET_OF_(SubclassOffsetof, field);
+ }
+};
+
+// CHECK: 2 'array' results:
+// CHECK: Struct /*range array=*/bar[4][2];
+// CHECK: __builtin_offsetof(Struct2, /*range array=*/bar[1][0]./*range f=*/field);
+
+// CHECK: 3 'f' results:
+// CHECK: int /*range f=*/bar;
+// CHECK: __builtin_offsetof(Struct, /*range f=*/bar);
+// CHECK-NEXT: __builtin_offsetof(Struct2, /*range array=*/array[1][0]./*range f=*/bar);
+// CHECK: OFFSET_OF_(SubclassOffsetof, bar);
OpenPOWER on IntegriCloud