[lld] r325333 - [ELF] Extend symbol-order-warnings test case for ICF

James Henderson via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 16 02:49:57 PST 2018


Author: jhenderson
Date: Fri Feb 16 02:49:57 2018
New Revision: 325333

URL: http://llvm.org/viewvc/llvm-project?rev=325333&view=rev
Log:
[ELF] Extend symbol-order-warnings test case for ICF

Reviewed by: rafael

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

There is some discussion as to the exact behaviour of combining ICF and
--symbol-ordering-file, but it seems beneficial to warn when attempting
to order the removed symbol regardless of the preferred approach.

Modified:
    lld/trunk/test/ELF/symbol-ordering-file-warnings.s

Modified: lld/trunk/test/ELF/symbol-ordering-file-warnings.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/symbol-ordering-file-warnings.s?rev=325333&r1=325332&r2=325333&view=diff
==============================================================================
--- lld/trunk/test/ELF/symbol-ordering-file-warnings.s (original)
+++ lld/trunk/test/ELF/symbol-ordering-file-warnings.s Fri Feb 16 02:49:57 2018
@@ -37,6 +37,12 @@
 # RUN: ld.lld %t1.o -o %t --symbol-ordering-file %t-order-gc.txt --gc-sections --unresolved-symbols=ignore-all 2>&1 | \
 # RUN:   FileCheck %s --check-prefixes=WARN,GC
 
+# Check that a warning is emitted for the symbol removed due to --icf.
+# RUN: echo "icf1" > %t-order-icf.txt
+# RUN: echo "icf2" >> %t-order-icf.txt
+# RUN: ld.lld %t1.o -o %t --symbol-ordering-file %t-order-icf.txt --icf=all --unresolved-symbols=ignore-all 2>&1 | \
+# RUN:   FileCheck %s --check-prefixes=WARN,ICF
+
 # Check that a warning is emitted for symbols discarded due to a linker script /DISCARD/ section.
 # RUN: echo "discard" > %t-order-discard.txt
 # RUN: echo "SECTIONS { /DISCARD/ : { *(.text.discard) } }" > %t.script
@@ -101,6 +107,7 @@
 # WARN-NOT:    warning:
 # MISSING:     warning: symbol ordering file: no such symbol: missing
 # MISSING2:    warning: symbol ordering file: no such symbol: missing_sym
+# ICF:         warning: {{.*}}1.o: unable to order discarded symbol: icf2
 # COMDAT:      warning: {{.*}}1.o: unable to order discarded symbol: comdat
 # COMDAT-NEXT: warning: {{.*}}2.o: unable to order discarded symbol: comdat
 # MULTI:       warning: {{.*}}2.o: unable to order absolute symbol: multi
@@ -129,12 +136,23 @@ comdat:
 glob_or_wk:
   nop
 
-.text
+.section .text._start,"ax", at progbits
 .global _start
 _start:
   movq  %rax, absolute
   callq shared
 
+.section .text.icf1,"ax", at progbits
+.global icf1
+icf1:
+    ret
+
+.section .text.icf2,"ax", at progbits
+.global icf2
+icf2:
+    ret
+
 # This is a "good" instance of the symbol
+.section .text.multi,"ax", at progbits
 multi:
   nop




More information about the llvm-commits mailing list