mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-23 13:50:11 +00:00
bf3c84cff7
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
25 lines
605 B
C++
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;
|
|
}
|