[MS-ABI] Fix alias-avoidance padding between bases
Adds padding between bases or virtual bases in an attempt to avoid aliasing of zero-sized sub-objects. The approach used by the ABI adds two more bits of state. Detailed comments are in the code. Test cases included. Differential Revision: http://llvm-reviews.chandlerc.com/D2258 llvm-svn: 196602
Showing
- clang/include/clang/AST/RecordLayout.h 20 additions, 0 deletionsclang/include/clang/AST/RecordLayout.h
- clang/lib/AST/RecordLayout.cpp 4 additions, 0 deletionsclang/lib/AST/RecordLayout.cpp
- clang/lib/AST/RecordLayoutBuilder.cpp 70 additions, 63 deletionsclang/lib/AST/RecordLayoutBuilder.cpp
- clang/test/Layout/ms-x86-alias-avoidance-padding.cpp 178 additions, 0 deletionsclang/test/Layout/ms-x86-alias-avoidance-padding.cpp
Loading
Please register or sign in to comment