Alexander Shaposhnikov bf3c84cff7 Add clang-reorder-fields to clang-tools-extra
This diff adds v0 of clang-reorder-fields tool to clang/tools/extra.
The main idea behind this tool is to simplify and make less error-prone refactoring of large codebases when
someone needs to change the order fields of a struct/class (for example to remove excessive padding).

Differential revision: https://reviews.llvm.org/D23279

llvm-svn: 280456
2016-09-02 02:56:07 +00:00

17 lines
482 B
C++

// RUN: clang-reorder-fields -record-name ::bar::Foo -fields-order z,w,y,x %s -- | FileCheck %s
namespace bar {
struct Foo {
const int* x; // CHECK: {{^ double z;}}
int y; // CHECK-NEXT: {{^ int w;}}
double z; // CHECK-NEXT: {{^ int y;}}
int w; // CHECK-NEXT: {{^ const int\* x}}
};
} // end namespace bar
int main() {
const int x = 13;
bar::Foo foo = { &x, 0, 1.29, 17 }; // CHECK: {{^ bar::Foo foo = { 1.29, 17, 0, &x };}}
return 0;
}