Covert this test to .s form.
[oota-llvm.git] / test / LLVMC / OptionPreprocessor.td
index 5661db865d7cc8eca21de8fa687cf33791da57bd..5fdc35a187ebb4e825e623c9ab2782cbe6083202 100644 (file)
@@ -1,7 +1,8 @@
-// Test for the OptionPreprocessor and any*.
+// Test for the OptionPreprocessor and related functionality.
 // RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
 // RUN: FileCheck -input-file %t %s
-// RUN: %compile_cxx -fexceptions -x c++ %t
+// RUN: %compile_cxx %t
+// XFAIL: vg_leak
 
 include "llvm/CompilerDriver/Common.td"
 
@@ -11,20 +12,40 @@ def OptList : OptionList<[
 (switch_option "baz", (help "dummy")),
 (parameter_option "foo_p", (help "dummy")),
 (parameter_option "bar_p", (help "dummy")),
-(parameter_option "baz_p", (help "dummy"))
+(parameter_option "baz_p", (help "dummy")),
+(parameter_list_option "foo_l", (help "dummy"))
 ]>;
 
 def Preprocess : OptionPreprocessor<
 (case
       // CHECK: W1
-      (and (switch_on "foo"), (any_switch_on ["bar", "baz"])),
-           (warning "W1"),
+      // CHECK: foo = false;
+      // CHECK: foo_p = "";
+      // CHECK: foo_l.clear();
+      (and (switch_on "foo"), (any_switch_on "bar", "baz")),
+           [(warning "W1"), (unset_option "foo"),
+                            (unset_option "foo_p"), (unset_option "foo_l")],
       // CHECK: W2
-      (and (switch_on ["foo", "bar"]), (any_empty ["foo_p", "bar_p"])),
-           (warning "W2"),
+      // CHECK: foo = true;
+      // CHECK: bar = true;
+      // CHECK: baz = false;
+      // CHECK: foo_p = "asdf";
+      // CHECK: foo_l.clear();
+      // CHECK: foo_l.push_back("qwert");
+      // CHECK: foo_l.push_back("yuiop");
+      // CHECK: foo_l.push_back("asdf");
+      (and (switch_on "foo", "bar"), (any_empty "foo_p", "bar_p")),
+           [(warning "W2"), (set_option "foo"),
+                            (set_option "bar", true),
+                            (set_option "baz", false),
+                            (set_option "foo_p", "asdf"),
+                            (set_option "foo_l", ["qwert", "yuiop", "asdf"])],
       // CHECK: W3
-      (and (empty ["foo_p", "bar_p"]), (any_not_empty ["baz_p"])),
-           (warning "W3"))
+      // CHECK: foo = true;
+      // CHECK: bar = true;
+      // CHECK: baz = true;
+      (and (empty "foo_p", "bar_p"), (any_not_empty "baz_p")),
+           [(warning "W3"), (set_option "foo", "bar", "baz")])
 >;
 
 // Shut up warnings...
@@ -32,14 +53,15 @@ def dummy : Tool<
 [(in_language "dummy"),
  (out_language "dummy"),
  (output_suffix "d"),
- (cmd_line "dummy $INFILE -o $OUTFILE"),
+ (command "dummy"),
  (actions (case (switch_on "foo"), (error),
                 (switch_on "bar"), (error),
                 (switch_on "baz"), (error),
                 (not_empty "foo_p"), (error),
                 (not_empty "bar_p"), (error),
-                (not_empty "baz_p"), (error)))
+                (not_empty "baz_p"), (error),
+                (not_empty "foo_l"), (error)))
 ]>;
 
-def Graph : CompilationGraph<[Edge<"root", "dummy">]>;
+def Graph : CompilationGraph<[(edge "root", "dummy")]>;