|  | // RUN: clang-reorder-fields -record-name bar::Derived -fields-order z,y %s -- 2>&1 | FileCheck --check-prefix=CHECK-MESSAGES %s | 
|  | // FIXME: clang-reorder-fields should provide -verify mode to make writing these checks | 
|  | // easier and more accurate, for now we follow clang-tidy's approach. | 
|  |  | 
|  | namespace bar { | 
|  | struct Base { | 
|  | int x; | 
|  | int p; | 
|  | }; | 
|  |  | 
|  | class Derived : public Base { | 
|  | public: | 
|  | Derived(long ny); | 
|  | Derived(char nz); | 
|  | private: | 
|  | long y; | 
|  | char z; | 
|  | }; | 
|  |  | 
|  | Derived::Derived(long ny) : | 
|  | Base(), | 
|  | y(ny), | 
|  | z(static_cast<char>(y)) | 
|  | // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: reordering field y after z makes y uninitialized when used in init expression | 
|  | {} | 
|  |  | 
|  | Derived::Derived(char nz) : | 
|  | Base(), | 
|  | y(nz), | 
|  | // Check that base class fields are correctly ignored in reordering checks | 
|  | // x has field index 1 and so would improperly warn if this wasn't the case since the command for this file swaps field indexes 1 and 2 | 
|  | z(x) | 
|  | // CHECK-MESSAGES-NOT: :[[@LINE-1]]:3: warning: reordering field x after z makes x uninitialized when used in init expression | 
|  | {} | 
|  |  | 
|  | } // namespace bar |