[PATCH] D26240: [LLD][ARM][AArch64] ARM and AArch64 undefined weak reference values for relative relocations

Peter Smith via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 3 11:50:40 PDT 2016


peter.smith updated this revision to Diff 76876.
peter.smith added a comment.

I've made the suggested change to elf32_t.

Apologies I'm a bit confused about Symbols.h as I haven't made any changes to it, I was just pointing out that the existing implementation of symbol has an assert for !isLocal(). It is possible to put a test for isWeak() into SymbolBody, that returns false if the SymbolBody is a local and only forwards on to Symbol if it isn't. Would you like me to add that?

Existing implementation:
inline Symbol *SymbolBody::symbol() {

  assert(!isLocal());
  return reinterpret_cast<Symbol *>(reinterpret_cast<char *>(this) -
                                    offsetof(Symbol, Body));

}


https://reviews.llvm.org/D26240

Files:
  ELF/InputSection.cpp
  test/ELF/aarch64-undefined-weak.s
  test/ELF/arm-thumb-no-undefined-thunk.s
  test/ELF/arm-thumb-undefined-weak.s
  test/ELF/arm-undefined-weak.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D26240.76876.patch
Type: text/x-patch
Size: 7345 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161103/4d999ac6/attachment.bin>


More information about the llvm-commits mailing list