aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMikhail Glushenkov <foldr@codedgers.com>2009-09-28 01:16:42 +0000
committerMikhail Glushenkov <foldr@codedgers.com>2009-09-28 01:16:42 +0000
commitad981bfbccedd4e8c139f27db4bbc49ef3e783b9 (patch)
tree918743cbb6adb1dc4e0e7ace612d2af513c2c213 /tools
parentd66e8de8385597688e0456307861e4f8173258fd (diff)
downloadexternal_llvm-ad981bfbccedd4e8c139f27db4bbc49ef3e783b9.zip
external_llvm-ad981bfbccedd4e8c139f27db4bbc49ef3e783b9.tar.gz
external_llvm-ad981bfbccedd4e8c139f27db4bbc49ef3e783b9.tar.bz2
Add a way to query the number of input files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82957 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r--tools/llvmc/doc/LLVMC-Reference.rst7
-rw-r--r--tools/llvmc/plugins/Base/Base.td.in2
2 files changed, 9 insertions, 0 deletions
diff --git a/tools/llvmc/doc/LLVMC-Reference.rst b/tools/llvmc/doc/LLVMC-Reference.rst
index 7e609a7..5d3b02a 100644
--- a/tools/llvmc/doc/LLVMC-Reference.rst
+++ b/tools/llvmc/doc/LLVMC-Reference.rst
@@ -458,6 +458,13 @@ use TableGen inheritance instead.
- ``empty`` - The opposite of ``not_empty``. Equivalent to ``(not (not_empty
X))``. Provided for convenience.
+ - ``single_input_file`` - Returns true if there was only one input file
+ provided on the command-line. Used without arguments:
+ ``(single_input_file)``.
+
+ - ``multiple_input_files`` - Equivalent to ``(not (single_input_file))`` (the
+ case of zero input files is considered an error).
+
- ``default`` - Always evaluates to true. Should always be the last
test in the ``case`` expression.
diff --git a/tools/llvmc/plugins/Base/Base.td.in b/tools/llvmc/plugins/Base/Base.td.in
index d4bff17..4b964e3 100644
--- a/tools/llvmc/plugins/Base/Base.td.in
+++ b/tools/llvmc/plugins/Base/Base.td.in
@@ -70,6 +70,8 @@ class llvm_gcc_based <string cmd_prefix, string in_lang, string E_ext> : Tool<
!strconcat(cmd_prefix, " -c $INFILE -o $OUTFILE -emit-llvm"))),
(actions
(case
+ (and (multiple_input_files), (or (switch_on "S"), (switch_on "c"))),
+ (error "cannot specify -o with -c or -S with multiple files"),
(switch_on "E"), [(stop_compilation), (output_suffix E_ext)],
(and (switch_on "emit-llvm"), (switch_on "S")),
[(output_suffix "ll"), (stop_compilation)],