diff options
| author | Alexander Shaposhnikov <shal1t712@gmail.com> | 2016-09-01 23:49:48 +0000 |
|---|---|---|
| committer | Alexander Shaposhnikov <shal1t712@gmail.com> | 2016-09-01 23:49:48 +0000 |
| commit | ae4ff453a4a95140669dd0cab28ec7d7032e5449 (patch) | |
| tree | 822a30d1e71e04cd647e9ecd6f61902f205a3685 /clang-tools-extra/test/clang-reorder-fields/CStructFieldsOrder.cpp | |
| parent | 356f79d5357a14cf57014cf05757412ad10bc236 (diff) | |
| download | bcm5719-llvm-ae4ff453a4a95140669dd0cab28ec7d7032e5449.tar.gz bcm5719-llvm-ae4ff453a4a95140669dd0cab28ec7d7032e5449.zip | |
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 excess padding).
Differential revision: https://reviews.llvm.org/D23279
llvm-svn: 280431
Diffstat (limited to 'clang-tools-extra/test/clang-reorder-fields/CStructFieldsOrder.cpp')
| -rw-r--r-- | clang-tools-extra/test/clang-reorder-fields/CStructFieldsOrder.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/clang-tools-extra/test/clang-reorder-fields/CStructFieldsOrder.cpp b/clang-tools-extra/test/clang-reorder-fields/CStructFieldsOrder.cpp new file mode 100644 index 00000000000..2ed3578df65 --- /dev/null +++ b/clang-tools-extra/test/clang-reorder-fields/CStructFieldsOrder.cpp @@ -0,0 +1,16 @@ +// 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; +} |

