[lld] r361122 - [ELF] Copy IsPreemptible in replaceSymbol()

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sun May 19 19:07:03 PDT 2019


Author: maskray
Date: Sun May 19 19:07:03 2019
New Revision: 361122

URL: http://llvm.org/viewvc/llvm-project?rev=361122&view=rev
Log:
[ELF] Copy IsPreemptible in replaceSymbol()

Otherwise, we may set IsPreemptible (e.g. --dynamic-list) then clear it
(in replaceCommonSymbols()).

Reviewed By: ruiu

Differential Revision: https://reviews.llvm.org/D62107

Added:
    lld/trunk/test/ELF/dynamic-list-preempt-replace-symbol.s
Modified:
    lld/trunk/ELF/Symbols.h

Modified: lld/trunk/ELF/Symbols.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Symbols.h?rev=361122&r1=361121&r2=361122&view=diff
==============================================================================
--- lld/trunk/ELF/Symbols.h (original)
+++ lld/trunk/ELF/Symbols.h Sun May 19 19:07:03 2019
@@ -473,6 +473,7 @@ inline void replaceSymbol(Symbol *Sym, c
   Sym->ExportDynamic = Old.ExportDynamic;
   Sym->CanInline = Old.CanInline;
   Sym->Traced = Old.Traced;
+  Sym->IsPreemptible = Old.IsPreemptible;
   Sym->ScriptDefined = Old.ScriptDefined;
 
   // Print out a log message if --trace-symbol was specified.

Added: lld/trunk/test/ELF/dynamic-list-preempt-replace-symbol.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/dynamic-list-preempt-replace-symbol.s?rev=361122&view=auto
==============================================================================
--- lld/trunk/test/ELF/dynamic-list-preempt-replace-symbol.s (added)
+++ lld/trunk/test/ELF/dynamic-list-preempt-replace-symbol.s Sun May 19 19:07:03 2019
@@ -0,0 +1,14 @@
+# REQUIRES: x86
+
+# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o
+# RUN: echo '{ common; };' > %t.list
+# RUN: ld.lld --dynamic-list %t.list -shared %t.o -o %t.so
+
+# RUN: llvm-readobj -r %t.so | FileCheck %s
+
+# CHECK: R_X86_64_GLOB_DAT common 0x0
+
+movq common at gotpcrel(%rip), %rax
+
+.type common, at object
+.comm common,4,4




More information about the llvm-commits mailing list