llvm-capstone/clang-tools-extra/test/clang-reorder-fields/ClassSimpleCtor.cpp
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

25 lines
605 B
C++

// RUN: clang-reorder-fields -record-name Foo -fields-order s1,x,z,s2 %s -- | FileCheck %s
class Foo {
public:
Foo();
private:
int x; // CHECK: {{^ const char \*s1;}}
const char *s1; // CHECK-NEXT: {{^ int x;}}
const char *s2; // CHECK-NEXT: {{^ double z;}}
double z; // CHECK-NEXT: {{^ const char \*s2;}}
};
Foo::Foo():
x(12), // CHECK: {{^ s1\("abc"\),}}
s1("abc"), // CHECK-NEXT: {{^ x\(12\),}}
s2("def"), // CHECK-NEXT: {{^ z\(3.14\),}}
z(3.14) // CHECK-NEXT: {{^ s2\("def"\)}}
{}
int main() {
Foo foo;
return 0;
}