Implement AIX special alignment rule by recursively checking if the
'real' first member is a double/long double. If yes, then this member
should be naturally aligned to 8 rather than 4.
- ASTRecordLayout Layout.Alignment records the min alignment of object, which is also the value _Alignof(x) should return;
2.Layout.NonVirtualAlignment records min alignment of nv part of object
- The size/nvsize of object will be rounded up by recursively checking if the first member of object is double/long double.
4.getPreferredTypeAlign = __alignof(x) = preferred alignment of object is the real alignment in AIX's semantic.
- getPreferredTypeAlign return true alignment by recursively checking if the first member of object is double/long double.