aboutsummaryrefslogtreecommitdiff
path: root/test/LLVMC
diff options
context:
space:
mode:
authorMikhail Glushenkov <foldr@codedgers.com>2009-12-15 03:04:52 +0000
committerMikhail Glushenkov <foldr@codedgers.com>2009-12-15 03:04:52 +0000
commite4ac23a0ffbf3ad6eb94fce4e0fb2b934b84cbe4 (patch)
tree6f53530e91bde17f4c0d73fbc6b249d15c273847 /test/LLVMC
parentb5fab402d02671f92ea7fc6166ba80e00d6a8388 (diff)
Validate the generated C++ code in llvmc tests.
Checks that the code generated by 'tblgen --emit-llvmc' can be actually compiled. Also fixes two bugs found in this way: - forward_transformed_value didn't work with non-list arguments - cl::ZeroOrOne is now called cl::Optional git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91404 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/LLVMC')
-rw-r--r--test/LLVMC/EmptyCompilationGraph.td3
-rw-r--r--test/LLVMC/EnvParentheses.td1
-rw-r--r--test/LLVMC/ExternOptions.td1
-rw-r--r--test/LLVMC/ForwardAs.td1
-rw-r--r--test/LLVMC/ForwardTransformedValue.td5
-rw-r--r--test/LLVMC/ForwardValue.td1
-rw-r--r--test/LLVMC/HookWithArguments.td1
-rw-r--r--test/LLVMC/HookWithInFile.td1
-rw-r--r--test/LLVMC/Init.td1
-rw-r--r--test/LLVMC/MultiValuedOption.td1
-rw-r--r--test/LLVMC/MultipleCompilationGraphs.td3
-rw-r--r--test/LLVMC/NoActions.td4
-rw-r--r--test/LLVMC/NoCompilationGraph.td3
-rw-r--r--test/LLVMC/OneOrMore.td5
-rw-r--r--test/LLVMC/OptionPreprocessor.td1
-rw-r--r--test/LLVMC/TestWarnings.td2
16 files changed, 25 insertions, 9 deletions
diff --git a/test/LLVMC/EmptyCompilationGraph.td b/test/LLVMC/EmptyCompilationGraph.td
index b30f84c6e2..934905b15e 100644
--- a/test/LLVMC/EmptyCompilationGraph.td
+++ b/test/LLVMC/EmptyCompilationGraph.td
@@ -1,5 +1,6 @@
// Check that the compilation graph can be empty.
-// RUN: tblgen -I %p/../../include --gen-llvmc %s
+// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/EnvParentheses.td b/test/LLVMC/EnvParentheses.td
index 694468f2dd..77aab95c5f 100644
--- a/test/LLVMC/EnvParentheses.td
+++ b/test/LLVMC/EnvParentheses.td
@@ -2,6 +2,7 @@
// http://llvm.org/bugs/show_bug.cgi?id=4157
// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
// RUN: not grep {)));} %t
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/ExternOptions.td b/test/LLVMC/ExternOptions.td
index 5c69af7d80..4694b106e2 100644
--- a/test/LLVMC/ExternOptions.td
+++ b/test/LLVMC/ExternOptions.td
@@ -2,6 +2,7 @@
// The dummy tool and graph are required to silence warnings.
// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
// RUN: grep {extern .* AutoGeneratedSwitch_Wall} %t
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/ForwardAs.td b/test/LLVMC/ForwardAs.td
index 51bd494610..54fc050a98 100644
--- a/test/LLVMC/ForwardAs.td
+++ b/test/LLVMC/ForwardAs.td
@@ -2,6 +2,7 @@
// http://llvm.org/bugs/show_bug.cgi?id=4159
// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
// RUN: grep unique_name %t
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/ForwardTransformedValue.td b/test/LLVMC/ForwardTransformedValue.td
index 478d126728..0cda1bf1a5 100644
--- a/test/LLVMC/ForwardTransformedValue.td
+++ b/test/LLVMC/ForwardTransformedValue.td
@@ -1,8 +1,9 @@
// 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: grep HookA %t
-// RUN: grep HookB %t
+// RUN: grep HookA %t | count 2
+// RUN: grep HookB %t | count 2
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/ForwardValue.td b/test/LLVMC/ForwardValue.td
index aebb198fd1..29f61a4c0c 100644
--- a/test/LLVMC/ForwardValue.td
+++ b/test/LLVMC/ForwardValue.td
@@ -3,6 +3,7 @@
// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
// RUN: grep {vec.push_back\(AutoGeneratedParameter_a\)} %t
// RUN: grep {std::copy\(AutoGeneratedList_b.begin\(\)} %t
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/HookWithArguments.td b/test/LLVMC/HookWithArguments.td
index 3bdb3eeb9d..909dc8bf9b 100644
--- a/test/LLVMC/HookWithArguments.td
+++ b/test/LLVMC/HookWithArguments.td
@@ -4,6 +4,7 @@
// RUN: grep "/path" %t | count 1
// RUN: grep "VARIABLE" %t | count 1
// RUN: grep "/2path" %t | count 1
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/HookWithInFile.td b/test/LLVMC/HookWithInFile.td
index a2cc4d8154..7fb3df1c9a 100644
--- a/test/LLVMC/HookWithInFile.td
+++ b/test/LLVMC/HookWithInFile.td
@@ -1,6 +1,7 @@
// Check that a hook can be given $INFILE as an argument.
// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
// RUN: grep Hook\\(inFile.c_str\\(\\)\\) %t | count 1
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/Init.td b/test/LLVMC/Init.td
index d9a4fc1c1b..3d68d050ee 100644
--- a/test/LLVMC/Init.td
+++ b/test/LLVMC/Init.td
@@ -2,6 +2,7 @@
// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
// RUN: grep cl::init(\\"some-string\\") %t | count 1
// RUN: grep cl::init(true) %t | count 1
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/MultiValuedOption.td b/test/LLVMC/MultiValuedOption.td
index bd1e0338f7..108eb86dbe 100644
--- a/test/LLVMC/MultiValuedOption.td
+++ b/test/LLVMC/MultiValuedOption.td
@@ -2,6 +2,7 @@
// The dummy tool and graph are required to silence warnings.
// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
// RUN: grep cl::multi_val(2) %t | count 1
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/MultipleCompilationGraphs.td b/test/LLVMC/MultipleCompilationGraphs.td
index 64dbc9b184..9702248b57 100644
--- a/test/LLVMC/MultipleCompilationGraphs.td
+++ b/test/LLVMC/MultipleCompilationGraphs.td
@@ -1,5 +1,6 @@
// Check that multiple compilation graphs are allowed.
-// RUN: tblgen -I %p/../../include --gen-llvmc %s
+// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/NoActions.td b/test/LLVMC/NoActions.td
index 2a4a7495ab..7b8e721397 100644
--- a/test/LLVMC/NoActions.td
+++ b/test/LLVMC/NoActions.td
@@ -1,5 +1,7 @@
// Check that tools without associated actions are accepted.
-// RUN: tblgen -I %p/../../include --gen-llvmc %s | grep dummy_tool
+// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
+// RUN: grep dummy_tool %t
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/NoCompilationGraph.td b/test/LLVMC/NoCompilationGraph.td
index 2eea3e9834..96c1f17e18 100644
--- a/test/LLVMC/NoCompilationGraph.td
+++ b/test/LLVMC/NoCompilationGraph.td
@@ -1,4 +1,5 @@
// Check that the compilation graph is not required.
-// RUN: tblgen -I %p/../../include --gen-llvmc %s
+// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/OneOrMore.td b/test/LLVMC/OneOrMore.td
index 38b7eb7dff..08be7cfe8a 100644
--- a/test/LLVMC/OneOrMore.td
+++ b/test/LLVMC/OneOrMore.td
@@ -1,14 +1,15 @@
// Check that (one_or_more) and (zero_or_one) properties work.
// The dummy tool and graph are required to silence warnings.
// RUN: tblgen -I %p/../../include --gen-llvmc %s -o %t
-// RUN: grep cl::ZeroOrOne %t | count 1
+// RUN: grep cl::Optional %t | count 1
// RUN: grep cl::OneOrMore %t | count 1
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
def OptList : OptionList<[
(prefix_list_option "foo", (one_or_more)),
- (parameter_list_option "baz", (zero_or_one))]>;
+ (parameter_list_option "baz", (optional))]>;
def dummy_tool : Tool<[
(cmd_line "dummy_cmd $INFILE"),
diff --git a/test/LLVMC/OptionPreprocessor.td b/test/LLVMC/OptionPreprocessor.td
index 5b9f4357fe..2f5e68bfe5 100644
--- a/test/LLVMC/OptionPreprocessor.td
+++ b/test/LLVMC/OptionPreprocessor.td
@@ -3,6 +3,7 @@
// RUN: grep W1 %t
// RUN: grep W2 %t
// RUN: grep W3 %t
+// RUN: %compile_cxx -fexceptions -x c++ %t
include "llvm/CompilerDriver/Common.td"
diff --git a/test/LLVMC/TestWarnings.td b/test/LLVMC/TestWarnings.td
index 1a4064e44b..9523e24702 100644
--- a/test/LLVMC/TestWarnings.td
+++ b/test/LLVMC/TestWarnings.td
@@ -1,4 +1,4 @@
-// Check that the compiler warns about unused options.
+// Check that warnings about unused options are really emitted.
// This should fail because the output is printed on stderr.
// RUN: ignore tblgen -I %p/../../include --gen-llvmc %s |& grep "option '-Wall' has no effect!"