Index: lld/trunk/ELF/Symbols.h =================================================================== --- lld/trunk/ELF/Symbols.h +++ lld/trunk/ELF/Symbols.h @@ -460,6 +460,11 @@ alignas(LazyObject) char F[sizeof(LazyObject)]; }; +// It is important to keep the size of SymbolUnion small for performance and +// memory usage reasons. 80 bytes is a soft limit based on the size of Defined +// on a 64-bit system. +static_assert(sizeof(SymbolUnion) <= 80, "SymbolUnion too large"); + template struct AssertSymbol { static_assert(std::is_trivially_destructible(), "Symbol types must be trivially destructible");