summaryrefslogtreecommitdiff
path: root/test/LLVMC
diff options
context:
space:
mode:
authorRoman Divacky <rdivacky@FreeBSD.org>2010-01-01 10:31:22 +0000
committerRoman Divacky <rdivacky@FreeBSD.org>2010-01-01 10:31:22 +0000
commit1e7804dbd25b8dbf534c850355d70ad215206f4b (patch)
treedba00119388b84f9f44e6ec5e9129f807fd79ca3 /test/LLVMC
parent571945e6affd20b19264ec22495da418d0fbdbb4 (diff)
Notes
Diffstat (limited to 'test/LLVMC')
-rw-r--r--test/LLVMC/OptionPreprocessor.td33
1 files changed, 27 insertions, 6 deletions
diff --git a/test/LLVMC/OptionPreprocessor.td b/test/LLVMC/OptionPreprocessor.td
index 5661db865d7cc..8d748eee532cb 100644
--- a/test/LLVMC/OptionPreprocessor.td
+++ b/test/LLVMC/OptionPreprocessor.td
@@ -1,4 +1,4 @@
-// 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
@@ -11,20 +11,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
+ // CHECK: foo = false;
+ // CHECK: foo_p = "";
+ // CHECK: foo_l.clear();
(and (switch_on "foo"), (any_switch_on ["bar", "baz"])),
- (warning "W1"),
+ [(warning "W1"), (unset_option "foo"),
+ (unset_option "foo_p"), (unset_option "foo_l")],
// CHECK: 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"),
+ [(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
+ // CHECK: foo = true;
+ // CHECK: bar = true;
+ // CHECK: baz = true;
(and (empty ["foo_p", "bar_p"]), (any_not_empty ["baz_p"])),
- (warning "W3"))
+ [(warning "W3"), (set_option ["foo", "bar", "baz"])])
>;
// Shut up warnings...
@@ -38,7 +58,8 @@ def dummy : Tool<
(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">]>;