[PATCH] D129260: [BOLT][AArch64] Handle gold linker veneers

Rafael Auler via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 8 14:50:25 PDT 2022


rafauler added a comment.

There's a memory leak the two tests:

- TEST 'BOLT :: AArch64/veneer-gold.s' FAILED *******************
- TEST 'BOLT :: AArch64/veneer.s' FAILED ********************

This is detected by just running our regular test suite, but with bolt built with address sanitizer from llvm. If you are using cmake, just add -DLLVM_USE_SANITIZER=Address if you are building bolt with clang.

Here's the leak stack trace:




74287==ERROR: LeakSanitizer: detected memory leaks
--------------------------------------------------

Direct leak of 176 byte(s) in 2 object(s) allocated from:

  #0 in operator new(unsigned long) (build/bin/llvm-bolt+0x769ce7)
  #1 in llvm::bolt::BinaryContext::registerNameAtAddress(llvm::StringRef, unsigned long, unsigned long, unsigned short, unsigned int) /bolt/lib/Core/BinaryContext.cpp:985:10
  #2 in llvm::bolt::BinaryContext::getOrCreateGlobalSymbol(unsigned long, llvm::Twine, unsigned long, unsigned short, unsigned int) /bolt/lib/Core/BinaryContext.cpp:743:10
  #3 in operator() /bolt/lib/Core/BinaryFunction.cpp:1095:23
  #4 in llvm::bolt::BinaryFunction::disassemble() /bolt/lib/Core/BinaryFunction.cpp:1300:28
  #5 in llvm::bolt::RewriteInstance::disassembleFunctions() /bolt/lib/Rewrite/RewriteInstance.cpp:2836:19
  #6 in llvm::bolt::RewriteInstance::run() /bolt/lib/Rewrite/RewriteInstance.cpp:747:3
  #7 in main /bolt/tools/driver/llvm-bolt.cpp:244:24
  #8 in __libc_start_main 
  #9 in _start 

Indirect leak of 16 byte(s) in 2 object(s) allocated from:

  #0 in operator new(unsigned long) 
  #1 in allocate 
  #2 in allocate
  #3 in _M_allocate
  #4 in _M_realloc_insert<llvm::MCSymbol *> 
  #5 in emplace_back<llvm::MCSymbol *>
  #6 in push_back /
  #7 in llvm::bolt::BinaryData::BinaryData(llvm::MCSymbol&, unsigned long, unsigned long, unsigned short, llvm::bolt::BinarySection&, unsigned int) /bolt/lib/Core/BinaryData.cpp:136:11
  #8 in llvm::bolt::BinaryContext::registerNameAtAddress(llvm::StringRef, unsigned long, unsigned long, unsigned short, unsigned int) /bolt/lib/Core/BinaryContext.cpp:985:14
  #9 in llvm::bolt::BinaryContext::getOrCreateGlobalSymbol(unsigned long, llvm::Twine, unsigned long, unsigned short, unsigned int) /bolt/lib/Core/BinaryContext.cpp:743:10
  #10 in operator() /bolt/lib/Core/BinaryFunction.cpp:1095:23
  #11 in llvm::bolt::BinaryFunction::disassemble() /bolt/lib/Core/BinaryFunction.cpp:1300:28
  #12 in llvm::bolt::RewriteInstance::disassembleFunctions() /bolt/lib/Rewrite/RewriteInstance.cpp:2836:19
  #13 in llvm::bolt::RewriteInstance::run() /bolt/lib/Rewrite/RewriteInstance.cpp:747:3
  #14 in main /bolt/tools/driver/llvm-bolt.cpp:244:24
  #15 in __libc_start_main 
  #16 in _start 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D129260/new/

https://reviews.llvm.org/D129260



More information about the llvm-commits mailing list