[llvm] r340380 - [gold] -thinlto-object-suffix-replace: don't append new suffix if path does not end with old suffix

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 21 19:11:36 PDT 2018


Author: maskray
Date: Tue Aug 21 19:11:36 2018
New Revision: 340380

URL: http://llvm.org/viewvc/llvm-project?rev=340380&view=rev
Log:
[gold] -thinlto-object-suffix-replace: don't append new suffix if path does not end with old suffix

Summary: This is to be consistent with lld behavior since rLLD340364.

Reviewers: tejohnson

Reviewed By: tejohnson

Subscribers: steven_wu, eraman, mehdi_amini, inglorion, dexonsmith, llvm-commits

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

Modified:
    llvm/trunk/test/tools/gold/X86/thinlto_object_suffix_replace.ll
    llvm/trunk/tools/gold/gold-plugin.cpp

Modified: llvm/trunk/test/tools/gold/X86/thinlto_object_suffix_replace.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/gold/X86/thinlto_object_suffix_replace.ll?rev=340380&r1=340379&r2=340380&view=diff
==============================================================================
--- llvm/trunk/test/tools/gold/X86/thinlto_object_suffix_replace.ll (original)
+++ llvm/trunk/test/tools/gold/X86/thinlto_object_suffix_replace.ll Tue Aug 21 19:11:36 2018
@@ -27,6 +27,17 @@
 ; RUN:    -shared %t1.thinlink.bc -o %t3
 ; RUN: diff %t1.o.thinlto.bc.orig %t1.o.thinlto.bc
 
+; If filename does not end with old suffix, no suffix change should occur,
+; so ".thinlto.bc" will simply be appended to the input file name.
+; RUN: rm -f %t1.thinlink.bc.thinlto.bc
+; RUN: %gold -plugin %llvmshlibdir/LLVMgold%shlibext \
+; RUN:    -m elf_x86_64 \
+; RUN:    --plugin-opt=thinlto \
+; RUN:    --plugin-opt=thinlto-index-only \
+; RUN:    --plugin-opt=thinlto-object-suffix-replace=".abc;.o" \
+; RUN:    -shared %t1.thinlink.bc -o /dev/null
+; RUN: ls %t1.thinlink.bc.thinlto.bc
+
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"
 

Modified: llvm/trunk/tools/gold/gold-plugin.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/gold/gold-plugin.cpp?rev=340380&r1=340379&r2=340380&view=diff
==============================================================================
--- llvm/trunk/tools/gold/gold-plugin.cpp (original)
+++ llvm/trunk/tools/gold/gold-plugin.cpp Tue Aug 21 19:11:36 2018
@@ -667,13 +667,9 @@ static void getThinLTOOldAndNewSuffix(st
 /// suffix matching \p OldSuffix with \p NewSuffix.
 static std::string getThinLTOObjectFileName(StringRef Path, StringRef OldSuffix,
                                             StringRef NewSuffix) {
-  if (OldSuffix.empty() && NewSuffix.empty())
-    return Path;
-  StringRef NewPath = Path;
-  NewPath.consume_back(OldSuffix);
-  std::string NewNewPath = NewPath;
-  NewNewPath += NewSuffix;
-  return NewNewPath;
+  if (Path.consume_back(OldSuffix))
+    return (Path + NewSuffix).str();
+  return Path;
 }
 
 // Returns true if S is valid as a C language identifier.




More information about the llvm-commits mailing list