diff options
author | Mikhail Glushenkov <foldr@codedgers.com> | 2010-07-01 01:00:32 +0000 |
---|---|---|
committer | Mikhail Glushenkov <foldr@codedgers.com> | 2010-07-01 01:00:32 +0000 |
commit | 9f63be50aa947932701b4b5225d549aed804743c (patch) | |
tree | 13f9381b6390efe149c6f26652539997354987fa /tools/llvmc/plugins | |
parent | 60d7fc13baf01ff47e3e059610f2ccfeb93c7221 (diff) | |
download | external_llvm-9f63be50aa947932701b4b5225d549aed804743c.zip external_llvm-9f63be50aa947932701b4b5225d549aed804743c.tar.gz external_llvm-9f63be50aa947932701b4b5225d549aed804743c.tar.bz2 |
Make -filelist work with -linker=c++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107362 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvmc/plugins')
-rw-r--r-- | tools/llvmc/plugins/Base/Base.td.in | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/tools/llvmc/plugins/Base/Base.td.in b/tools/llvmc/plugins/Base/Base.td.in index 23f46b7..a042997 100644 --- a/tools/llvmc/plugins/Base/Base.td.in +++ b/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 |