Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / TableGen / empty.td
blobf751c2777d0ddf1687aef3f7f7b5ac7879b4aee1
1 // RUN: llvm-tblgen %s | FileCheck %s
2 // XFAIL: vg_leak
4 defvar LongList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
5 defvar EmptyStr = "";
7 // Test !empty(dag).
9 // CHECK: def Drec1 {
10 // CHECK:   bit Empty = 1;
11 // CHECK:   bit NotEmpty = 0;
12 // CHECK: def Drec2 {
13 // CHECK:   bit Empty = 0;
14 // CHECK:   bit NotEmpty = 1;
15 // CHECK: def Drec3 {
16 // CHECK:   bit Empty = 0;
17 // CHECK:   bit NotEmpty = 1;
19 class D<dag ADag> {
20   bit Empty = !empty(ADag);
21   bit NotEmpty = !not(!empty(ADag));
24 def op;
26 def Drec1 : D<(op)>;
27 def Drec2 : D<(op "string")>;
28 def Drec3 : D<(op "string", 42)>;
30 // Test !empty(list).
32 // CHECK: def Lrec1 {
33 // CHECK:   bit Empty = 1;
34 // CHECK:   bit NotEmpty = 0;
35 // CHECK: def Lrec2 {
36 // CHECK:   bit Empty = 0;
37 // CHECK:   bit NotEmpty = 1;
38 // CHECK: def Lrec3 {
39 // CHECK:   bit Empty = 0;
40 // CHECK:   bit NotEmpty = 1;
42 class L<list<int> Ints> {
43   bit Empty = !empty(Ints);
44   bit NotEmpty = !not(!empty(Ints));
47 def Lrec1 : L<[]>;
48 def Lrec2 : L<[1]>;
49 def Lrec3 : L<LongList>;
51 // Test !empty(string).
53 // CHECK: def Srec1 {
54 // CHECK:   bit Empty = 1;
55 // CHECK:   bit NotEmpty = 0;
56 // CHECK: def Srec2 {
57 // CHECK:   bit Empty = 0;
58 // CHECK:   bit NotEmpty = 1;
59 // CHECK: def Srec3 {
60 // CHECK:   bit Empty = 0;
61 // CHECK:   bit NotEmpty = 1;
63 class S<string Str> {
64   bit Empty = !empty(Str);
65   bit NotEmpty = !not(!empty(Str));
68 def Srec1 : S<EmptyStr>;
69 def Srec2 : S<"a">;
70 def Srec3 : S<"ab">;