// 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);