From 37f509a70c581605b66d86a358b64e37d77ea251 Mon Sep 17 00:00:00 2001 From: Mikhail Glushenkov Date: Fri, 30 May 2008 06:15:20 +0000 Subject: [PATCH] Do not generate empty 'if's for the output_suffix property. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51737 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvmc2/Tools.td | 4 ++-- utils/TableGen/LLVMCConfigurationEmitter.cpp | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/tools/llvmc2/Tools.td b/tools/llvmc2/Tools.td index 42060e3b2cf..ae60874ea8f 100644 --- a/tools/llvmc2/Tools.td +++ b/tools/llvmc2/Tools.td @@ -27,7 +27,7 @@ def llvm_gcc_c : Tool< (output_suffix "bc"), (cmd_line (case (switch_on "E"), - "llvm-g++ -E -x c $INFILE -o $OUTFILE -emit-llvm", + "llvm-g++ -E -x c $INFILE -o $OUTFILE", (default), "llvm-g++ -c -x c $INFILE -o $OUTFILE -emit-llvm")), (switch_option "E", (stop_compilation),(output_suffix "i"), @@ -41,7 +41,7 @@ def llvm_gcc_cpp : Tool< (output_suffix "bc"), (cmd_line (case (switch_on "E"), - "llvm-g++ -E -x c++ $INFILE -o $OUTFILE -emit-llvm", + "llvm-g++ -E -x c++ $INFILE -o $OUTFILE", (default), "llvm-g++ -c -x c++ $INFILE -o $OUTFILE -emit-llvm")), (switch_option "E", (stop_compilation), (output_suffix "i")), diff --git a/utils/TableGen/LLVMCConfigurationEmitter.cpp b/utils/TableGen/LLVMCConfigurationEmitter.cpp index 93fe90b1ee8..a29492817d2 100644 --- a/utils/TableGen/LLVMCConfigurationEmitter.cpp +++ b/utils/TableGen/LLVMCConfigurationEmitter.cpp @@ -790,12 +790,20 @@ void EmitForwardOptionPropertyHandlingCode (const ToolOptionDescription& D, } } -// A helper function used by EmitOptionPropertyHandlingCode() that -// tells us whether we should emit any code at all. +// ToolOptionHasInterestingProperties - A helper function used by +// EmitOptionPropertyHandlingCode() that tells us whether we should +// emit any property handling code at all. bool ToolOptionHasInterestingProperties(const ToolOptionDescription& D) { - if (!D.isForward() && !D.isUnpackValues() && D.Props.empty()) - return false; - return true; + bool ret = false; + for (OptionPropertyList::const_iterator B = D.Props.begin(), + E = D.Props.end(); B != E; ++B) { + const OptionProperty& OptProp = *B; + if (OptProp.first == OptionPropertyType::AppendCmd) + ret = true; + } + if (D.isForward() || D.isUnpackValues()) + ret = true; + return ret; } /// EmitOptionPropertyHandlingCode - Helper function used by -- 2.34.1