diff options
author | Fangrui Song <maskray@google.com> | 2019-07-09 07:12:58 +0000 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2019-07-09 07:12:58 +0000 |
commit | 50e7f45b280f1e7922a6525ace10a6bd33f70fa7 (patch) | |
tree | b784f4dd91c098bcadac1831f2ca1cd9a6682497 | |
parent | c117be6fc620c7b97e6fc1de71291e5082d60614 (diff) | |
download | bcm5719-llvm-50e7f45b280f1e7922a6525ace10a6bd33f70fa7.tar.gz bcm5719-llvm-50e7f45b280f1e7922a6525ace10a6bd33f70fa7.zip |
[ELF] Assert sizeof(SymbolUnion) <= 80
Reviewed By: ruiu
Differential Revision: https://reviews.llvm.org/D64077
llvm-svn: 365443
-rw-r--r-- | lld/ELF/Symbols.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lld/ELF/Symbols.h b/lld/ELF/Symbols.h index 6ca24d4413a..f9b1fc6c4dc 100644 --- a/lld/ELF/Symbols.h +++ b/lld/ELF/Symbols.h @@ -460,6 +460,11 @@ union SymbolUnion { 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 <typename T> struct AssertSymbol { static_assert(std::is_trivially_destructible<T>(), "Symbol types must be trivially destructible"); |