25 lines · cpp
1// RUN: clang-reorder-fields --extra-arg="-std=c++20" -record-name Bar -fields-order c,a,b %s -- | FileCheck %s2 3class Foo {4public:5 const int* x;6 int y; 7};8 9class Bar {10public:11 char a; // CHECK: {{^ int c;}}12 Foo b; // CHECK-NEXT: {{^ char a;}}13 int c; // CHECK-NEXT: {{^ Foo b;}}14};15 16int main() {17 const int x = 13;18 Bar bar1 = { 'a', { &x, 0 }, 123 }; // CHECK: {{^ Bar bar1 = { 123, 'a', { &x, 0 } };}}19 Bar bar2 = { .a = 'a', { &x, 0 }, 123 }; // CHECK: {{^ Bar bar2 = { .c = 123, .a = 'a', .b = { &x, 0 } };}}20 Bar bar3 = { 'a', .b { &x, 0 }, 123 }; // CHECK: {{^ Bar bar3 = { .c = 123, .a = 'a', .b = { &x, 0 } };}}21 Bar bar4 = { .c = 123, .b { &x, 0 }, .a = 'a' }; // CHECK: {{^ Bar bar4 = { .c = 123, .a = 'a', .b = { &x, 0 } };}}22 23 return 0;24}25