[clang] 3841ed4 - [Driver] Render -T for Gnu.cpp

Fangrui Song via cfe-commits cfe-commits at lists.llvm.org
Sat May 16 23:55:03 PDT 2020


Author: Fangrui Song
Date: 2020-05-16T23:54:31-07:00
New Revision: 3841ed4104ac32eae7305d07e4558ea607fa69f3

URL: https://github.com/llvm/llvm-project/commit/3841ed4104ac32eae7305d07e4558ea607fa69f3
DIFF: https://github.com/llvm/llvm-project/commit/3841ed4104ac32eae7305d07e4558ea607fa69f3.diff

LOG: [Driver] Render -T for Gnu.cpp

clang -T a.lds a.c currently does not render -T.

Added: 
    

Modified: 
    clang/lib/Driver/ToolChains/Gnu.cpp
    clang/test/Driver/Xlinker-args.c

Removed: 
    


################################################################################
diff  --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index 315988faf40a..9a340142a242 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -630,6 +630,8 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
   AddHIPLinkerScript(getToolChain(), C, Output, Inputs, Args, CmdArgs, JA,
                      *this);
 
+  Args.AddAllArgs(CmdArgs, options::OPT_T);
+
   const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath());
   C.addCommand(std::make_unique<Command>(JA, *this, Exec, CmdArgs, Inputs));
 }

diff  --git a/clang/test/Driver/Xlinker-args.c b/clang/test/Driver/Xlinker-args.c
index a828f15b2b9a..72c2fd2698e8 100644
--- a/clang/test/Driver/Xlinker-args.c
+++ b/clang/test/Driver/Xlinker-args.c
@@ -5,15 +5,16 @@
 // RUN:   -Xlinker one -Xlinker --no-demangle \
 // RUN:   -Wl,two,--no-demangle,three -Xlinker four -z five -r %s 2> %t
 // RUN: FileCheck -check-prefix=DARWIN < %t %s
-//
+
+/// -T is reordered to the last to make sure -L takes precedence.
 // RUN: %clang -target x86_64-pc-linux-gnu -### \
-// RUN:   -Xlinker one -Xlinker --no-demangle \
+// RUN:   -T a.lds -Xlinker one -Xlinker --no-demangle \
 // RUN:   -Wl,two,--no-demangle,three -Xlinker four -z five -r %s 2> %t
 // RUN: FileCheck -check-prefix=LINUX < %t %s
 //
 // DARWIN-NOT: --no-demangle
 // DARWIN: "one" "two" "three" "four" "-z" "five" "-r"
-// LINUX: "--no-demangle" "one" "two" "three" "four" "-z" "five" "-r"
+// LINUX: "--no-demangle" "one" "two" "three" "four" "-z" "five" "-r" {{.*}} "-T" "a.lds"
 
 // Check that we forward '-Xlinker' and '-Wl,' on Windows.
 // RUN: %clang -target i686-pc-win32 -### \


        


More information about the cfe-commits mailing list