33 lines · cpp
1// RUN: clang-refactor local-rename -selection=test:%s -new-name=bar %s -- | grep -v CHECK | FileCheck %s2 3struct Struct {4 int /*range f=*/field;5};6 7struct Struct2 {8 Struct /*range array=*/array[4][2];9};10 11void foo() {12 (void)__builtin_offsetof(Struct, /*range f=*/field);13 (void)__builtin_offsetof(Struct2, /*range array=*/array[1][0]./*range f=*/field);14}15 16#define OFFSET_OF_(X, Y) __builtin_offsetof(X, Y)17 18class SubclassOffsetof : public Struct {19 void foo() {20 (void)OFFSET_OF_(SubclassOffsetof, field);21 }22};23 24// CHECK: 2 'array' results:25// CHECK: Struct /*range array=*/bar[4][2];26// CHECK: __builtin_offsetof(Struct2, /*range array=*/bar[1][0]./*range f=*/field);27 28// CHECK: 3 'f' results:29// CHECK: int /*range f=*/bar;30// CHECK: __builtin_offsetof(Struct, /*range f=*/bar);31// CHECK-NEXT: __builtin_offsetof(Struct2, /*range array=*/array[1][0]./*range f=*/bar);32// CHECK: OFFSET_OF_(SubclassOffsetof, bar);33