[PATCH] D18554: [ELF, PR27016] - Do not keep undefined locals in .symtab

Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 29 08:41:37 PDT 2016


Lgtm
On Mar 29, 2016 11:06 AM, "George Rimar" <grimar at accesssoftek.com> wrote:

> grimar updated this revision to Diff 51916.
> grimar added a comment.
>
> - Removed useless arg for llvm-readobj in testcase
>
>
> http://reviews.llvm.org/D18554
>
> Files:
>   ELF/Writer.cpp
>   test/ELF/local-undefined-symbol.s
>
> Index: test/ELF/local-undefined-symbol.s
> ===================================================================
> --- test/ELF/local-undefined-symbol.s
> +++ test/ELF/local-undefined-symbol.s
> @@ -0,0 +1,13 @@
> +# REQUIRES: x86
> +# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
> +# RUN: ld.lld %t -o %t1
> +# RUN: llvm-readobj -t %t1 | FileCheck %s
> +
> +# CHECK:     Symbols [
> +# CHECK-NOT:  Name: foo
> +
> +.global _start
> +_start:
> + jmp foo
> +
> +.local foo
> Index: ELF/Writer.cpp
> ===================================================================
> --- ELF/Writer.cpp
> +++ ELF/Writer.cpp
> @@ -520,6 +520,10 @@
>    if (Sym.getType() == STT_SECTION)
>      return Config->Relocatable;
>
> +  // No reason to keep local undefined symbol in symtab.
> +  if (Sym.st_shndx == SHN_UNDEF)
> +    return false;
> +
>    InputSectionBase<ELFT> *Sec = File.getSection(Sym);
>    // If sym references a section in a discarded group, don't keep it.
>    if (Sec == InputSection<ELFT>::Discarded)
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160329/636fd803/attachment.html>


More information about the llvm-commits mailing list