enum TargetCXXABI::TailPaddingUseRules
Description
When is record layout allowed to allocate objects in the tail padding of a base class? This decision cannot be changed without breaking platform ABI compatibility. In ISO C++98, tail padding reuse was only permitted for non-POD base classes, but that restriction was removed retroactively by DR 43, and tail padding reuse is always permitted in all de facto C++ language modes. However, many platforms use a variant of the old C++98 rule for compatibility.
Declared at: clang/include/clang/Basic/TargetCXXABI.h:269
Enumerators
Name | Value | Comment |
---|---|---|
AlwaysUseTailPadding | 0 | The tail-padding of a base class is always theoretically available, even if it's POD. |
UseTailPaddingUnlessPOD03 | 1 | Only allocate objects in the tail padding of a base class if the base class is not POD according to the rules of C++ TR1. |
UseTailPaddingUnlessPOD11 | 2 | Only allocate objects in the tail padding of a base class if the base class is not POD according to the rules of C++11. |