Fix incorrect code generation with ENV.
authorMikhail Glushenkov <foldr@codedgers.com>
Tue, 5 May 2009 12:34:34 +0000 (12:34 +0000)
committerMikhail Glushenkov <foldr@codedgers.com>
Tue, 5 May 2009 12:34:34 +0000 (12:34 +0000)
See PR4157 for details. Patch by Martin Nowack!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70973 91177308-0d34-0410-b5e6-96231b3b80d8

test/LLVMC/EnvParentheses.td [new file with mode: 0644]
utils/TableGen/LLVMCConfigurationEmitter.cpp

diff --git a/test/LLVMC/EnvParentheses.td b/test/LLVMC/EnvParentheses.td
new file mode 100644 (file)
index 0000000..cf2a0e3
--- /dev/null
@@ -0,0 +1,16 @@
+// Check the fix for PR4157.
+// http://llvm.org/bugs/show_bug.cgi?id=4157
+// RUN: tblgen -I $srcroot/include --gen-llvmc %s -o %t
+// RUN: not grep {)));} %t
+
+include "llvm/CompilerDriver/Common.td"
+
+def dummy_tool : Tool<[
+(cmd_line "gcc -o $OUTFILE $INFILE $ENV(FOO)/bar"),
+(in_language "dummy"),
+(out_language "dummy")
+]>;
+
+def DummyGraph : CompilationGraph<[SimpleEdge<"root", "dummy_tool">]>;
+
+def Graph : CompilationGraph<[]>;
index 834fb9c14ab4929129e3daeb6242559a6f001379..2dee3e988ca3585a6ad5b536914307cf1470087b 100644 (file)
@@ -1265,7 +1265,6 @@ StrVector::const_iterator SubstituteSpecialCommands
   assert(Leftover.at(0) == ')');
   if (Leftover.size() != 1)
     O << " + std::string(\"" << (Leftover.c_str() + 1) << "\")";
-  O << ')';
 
   return Pos;
 }