[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