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

NameValueComment
AlwaysUseTailPadding0The tail-padding of a base class is always theoretically available, even if it's POD.
UseTailPaddingUnlessPOD031Only allocate objects in the tail padding of a base class if the base class is not POD according to the rules of C++ TR1.
UseTailPaddingUnlessPOD112Only allocate objects in the tail padding of a base class if the base class is not POD according to the rules of C++11.