summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvmc/plugins/Base/Base.td.in
diff options
context:
space:
mode:
authorMikhail Glushenkov <foldr@codedgers.com>2010-07-01 01:00:32 +0000
committerMikhail Glushenkov <foldr@codedgers.com>2010-07-01 01:00:32 +0000
commited6aea770d5a5b29a9173c220b29465eefcd32b8 (patch)
treeed76ac2be3bfe405e5c7c66673c774c92bbadd11 /llvm/tools/llvmc/plugins/Base/Base.td.in
parent22fa66cf2bd4f71347255e8b23a805f34a0f97b2 (diff)
downloadbcm5719-llvm-ed6aea770d5a5b29a9173c220b29465eefcd32b8.tar.gz
bcm5719-llvm-ed6aea770d5a5b29a9173c220b29465eefcd32b8.zip
Make -filelist work with -linker=c++.
llvm-svn: 107362
Diffstat (limited to 'llvm/tools/llvmc/plugins/Base/Base.td.in')
-rw-r--r--llvm/tools/llvmc/plugins/Base/Base.td.in12
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/tools/llvmc/plugins/Base/Base.td.in b/llvm/tools/llvmc/plugins/Base/Base.td.in
index 23f46b7e57d..a042997e108 100644
--- a/llvm/tools/llvmc/plugins/Base/Base.td.in
+++ b/llvm/tools/llvmc/plugins/Base/Base.td.in
@@ -262,12 +262,12 @@ def llc : Tool<
]>;
// Base class for linkers
-class llvm_gcc_based_linker <string cmd_prefix> : Tool<
+class llvm_gcc_based_linker <string cmd_prefix, dag on_empty> : Tool<
[(in_language ["object-code", "static-library"]),
(out_language "executable"),
(output_suffix "out"),
(command cmd_prefix),
- (works_on_empty (case (not_empty "filelist"), true,
+ (works_on_empty (case (and (not_empty "filelist"), on_empty), true,
(default), false)),
(join),
(actions (case
@@ -295,9 +295,13 @@ class llvm_gcc_based_linker <string cmd_prefix> : Tool<
]>;
// Default linker
-def llvm_gcc_linker : llvm_gcc_based_linker<"@LLVMGCCCOMMAND@">;
+def llvm_gcc_linker : llvm_gcc_based_linker<"@LLVMGCCCOMMAND@",
+ (not (or (parameter_equals "linker", "g++"),
+ (parameter_equals "linker", "c++")))>;
// Alternative linker for C++
-def llvm_gcc_cpp_linker : llvm_gcc_based_linker<"@LLVMGXXCOMMAND@">;
+def llvm_gcc_cpp_linker : llvm_gcc_based_linker<"@LLVMGXXCOMMAND@",
+ (or (parameter_equals "linker", "g++"),
+ (parameter_equals "linker", "c++"))>;
// Language map
OpenPOWER on IntegriCloud