The 'forward_as' property did not use its second argument.
authorMikhail Glushenkov <foldr@codedgers.com>
Wed, 6 May 2009 01:41:19 +0000 (01:41 +0000)
committerMikhail Glushenkov <foldr@codedgers.com>
Wed, 6 May 2009 01:41:19 +0000 (01:41 +0000)
See PR4159 for details. Patch by Martin Nowack!

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

test/LLVMC/ForwardAs.td [new file with mode: 0644]
tools/llvmc/doc/LLVMC-Reference.rst
utils/TableGen/LLVMCConfigurationEmitter.cpp

diff --git a/test/LLVMC/ForwardAs.td b/test/LLVMC/ForwardAs.td
new file mode 100644 (file)
index 0000000..5e5a087
--- /dev/null
@@ -0,0 +1,18 @@
+// Check the fix for PR4159.
+// http://llvm.org/bugs/show_bug.cgi?id=4159
+// RUN: tblgen -I $srcroot/include --gen-llvmc %s -o %t
+// RUN: grep unique_name %t
+
+include "llvm/CompilerDriver/Common.td"
+
+def OptList : OptionList<[(parameter_option "dummy", (extern))]>;
+
+def dummy_tool : Tool<[
+(cmd_line "dummy_cmd"),
+(in_language "dummy"),
+(out_language "dummy"),
+(actions (case
+         (not_empty "dummy"), (forward_as "dummy", "unique_name")))
+]>;
+
+def DummyGraph : CompilationGraph<[SimpleEdge<"root", "dummy_tool">]>;
index f6d1843faaf52d5e3c17ef267a857243697057a4..d99fa0cc6f6075c17f153043b6a412a9f0a2b8f2 100644 (file)
@@ -529,7 +529,7 @@ The list of all possible actions follows.
 
    - ``forward_as`` - Change the name of an option, but forward the
      argument unchanged.
-     Example: ``(forward_as "O0" "--disable-optimization")``.
+     Example: ``(forward_as "O0", "--disable-optimization")``.
 
    - ``output_suffix`` - modify the output suffix of this
      tool.
index 2dee3e988ca3585a6ad5b536914307cf1470087b..0157b61f8350f7ead3ce5bbfc7759909df1a815c 100644 (file)
@@ -1444,7 +1444,7 @@ class EmitActionHandler {
     else if (ActionName == "forward_as") {
       checkNumberOfArguments(&Dag, 2);
       const std::string& Name = InitPtrToString(Dag.getArg(0));
-      const std::string& NewName = InitPtrToString(Dag.getArg(0));
+      const std::string& NewName = InitPtrToString(Dag.getArg(1));
       EmitForwardOptionPropertyHandlingCode(OptDescs.FindOption(Name),
                                             IndentLevel, NewName, O);
     }