From 7fe13af676678815989a6d0ece684687953245e7 Mon Sep 17 00:00:00 2001 From: Luqman Aden Date: Wed, 14 Oct 2020 19:26:07 -0700 Subject: [PATCH] Nit: Use early return to reduce indentation. --- lld/COFF/Writer.cpp | 55 ++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/lld/COFF/Writer.cpp b/lld/COFF/Writer.cpp index ba8f502..a40ff42 100644 --- a/lld/COFF/Writer.cpp +++ b/lld/COFF/Writer.cpp @@ -2051,32 +2051,31 @@ PartialSection *Writer::findPartialSection(StringRef name, uint32_t outChars) { } void Writer::fixTlsAlignment() { - if (Symbol *sym = symtab->findUnderscore("_tls_used")) { - if (Defined *b = dyn_cast(sym)) { - OutputSection *sec = b->getChunk()->getOutputSection(); - assert(sec && b->getRVA() >= sec->getRVA() && - "no output section for _tls_used"); - - uint8_t *secBuf = buffer->getBufferStart() + sec->getFileOff(); - uint64_t tlsOffset = b->getRVA() - sec->getRVA(); - uint64_t directorySize = config->is64() - ? sizeof(object::coff_tls_directory64) - : sizeof(object::coff_tls_directory32); - - if (tlsOffset + directorySize > sec->getRawSize()) - fatal("_tls_used is malformed"); - - if (config->is64()) { - object::coff_tls_directory64 *tlsDir = - reinterpret_cast( - &secBuf[tlsOffset]); - tlsDir->setAlignment(tlsAlignment); - } else { - object::coff_tls_directory32 *tlsDir = - reinterpret_cast( - &secBuf[tlsOffset]); - tlsDir->setAlignment(tlsAlignment); - } - } + Defined *tlsSym = + dyn_cast_or_null(symtab->findUnderscore("_tls_used")); + if (!tlsSym) + return; + + OutputSection *sec = tlsSym->getChunk()->getOutputSection(); + assert(sec && tlsSym->getRVA() >= sec->getRVA() && + "no output section for _tls_used"); + + uint8_t *secBuf = buffer->getBufferStart() + sec->getFileOff(); + uint64_t tlsOffset = tlsSym->getRVA() - sec->getRVA(); + uint64_t directorySize = config->is64() + ? sizeof(object::coff_tls_directory64) + : sizeof(object::coff_tls_directory32); + + if (tlsOffset + directorySize > sec->getRawSize()) + fatal("_tls_used is malformed"); + + if (config->is64()) { + object::coff_tls_directory64 *tlsDir = + reinterpret_cast(&secBuf[tlsOffset]); + tlsDir->setAlignment(tlsAlignment); + } else { + object::coff_tls_directory32 *tlsDir = + reinterpret_cast(&secBuf[tlsOffset]); + tlsDir->setAlignment(tlsAlignment); } -} \ No newline at end of file +} -- 2.7.4