// Check that forward_value works.
// The dummy tool and graph are required to silence warnings.
// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
// RUN: FileCheck -input-file %t %s
// RUN: %compile_cxx %t
// XFAIL: vg_leak

include "llvm/CompilerDriver/Common.td"

def OptList : OptionList<[(parameter_option "a", (help "dummy")),
                          (prefix_list_option "b", (help "dummy"))]>;

def dummy_tool : Tool<[
(command "dummy_cmd"),
(in_language "dummy"),
(out_language "dummy"),
(actions (case
         // CHECK: , autogenerated::Parameter_a));
         (not_empty "a"), (forward_value "a"),
         // CHECK: B = autogenerated::List_b.begin()
         (not_empty "b"), (forward_value "b")))
]>;

def DummyGraph : CompilationGraph<[(edge "root", "dummy_tool")]>;
