1*b687fddaSAlexander Shaposhnikov // RUN: clang-reorder-fields -record-name bar::Derived -fields-order z,y %s -- | FileCheck %s
2*b687fddaSAlexander Shaposhnikov
3*b687fddaSAlexander Shaposhnikov namespace bar {
4*b687fddaSAlexander Shaposhnikov class Base {
5*b687fddaSAlexander Shaposhnikov public:
Base(int nx,int np)6*b687fddaSAlexander Shaposhnikov Base(int nx, int np) : x(nx), p(np) {}
7*b687fddaSAlexander Shaposhnikov int x;
8*b687fddaSAlexander Shaposhnikov int p;
9*b687fddaSAlexander Shaposhnikov };
10*b687fddaSAlexander Shaposhnikov
11*b687fddaSAlexander Shaposhnikov
12*b687fddaSAlexander Shaposhnikov class Derived : public Base {
13*b687fddaSAlexander Shaposhnikov public:
14*b687fddaSAlexander Shaposhnikov Derived(long ny);
15*b687fddaSAlexander Shaposhnikov Derived(char nz);
16*b687fddaSAlexander Shaposhnikov private:
17*b687fddaSAlexander Shaposhnikov long y;
18*b687fddaSAlexander Shaposhnikov char z;
19*b687fddaSAlexander Shaposhnikov };
20*b687fddaSAlexander Shaposhnikov
Derived(long ny)21*b687fddaSAlexander Shaposhnikov Derived::Derived(long ny) :
22*b687fddaSAlexander Shaposhnikov Base(ny, 0),
23*b687fddaSAlexander Shaposhnikov y(ny), // CHECK: {{^ z\(static_cast<char>\(ny\)\),}}
24*b687fddaSAlexander Shaposhnikov z(static_cast<char>(ny)) // CHECK-NEXT: {{^ y\(ny\)}}
25*b687fddaSAlexander Shaposhnikov {}
26*b687fddaSAlexander Shaposhnikov
Derived(char nz)27*b687fddaSAlexander Shaposhnikov Derived::Derived(char nz) :
28*b687fddaSAlexander Shaposhnikov Base(1, 2),
29*b687fddaSAlexander Shaposhnikov y(nz), // CHECK: {{^ z\(x\),}}
30*b687fddaSAlexander Shaposhnikov z(x) // CHECK-NEXT: {{^ y\(nz\)}}
31*b687fddaSAlexander Shaposhnikov {}
32*b687fddaSAlexander Shaposhnikov
33*b687fddaSAlexander Shaposhnikov } // namespace bar
34