// Check that forward_transformed_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"))]>;

// CHECK: std::string HookA
// CHECK: std::string HookB

def dummy_tool : Tool<[
(command "dummy_cmd"),
(in_language "dummy"),
(out_language "dummy"),
(actions (case
         // CHECK: HookA(autogenerated::Parameter_a
         (not_empty "a"), (forward_transformed_value "a", "HookA"),
         // CHECK: HookB(autogenerated::List_b
         (not_empty "b"), (forward_transformed_value "b", "HookB")))
]>;

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