summaryrefslogtreecommitdiff
path: root/offload/test/tools/offload-tblgen/print_enum.td
blob: c7573a9a415cb1840f4de5cfbc4d21f7eed019ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// RUN: %offload-tblgen -gen-print-header -I %S/../../../liboffload/API %s | %fcheck-generic

// Check that print helpers are created for enums

include "APIDefs.td"

def my_enum_t : Enum {
  let desc = "An example enum";
  let etors =[
    Etor<"VALUE_ONE", "The first enum value">,
    Etor<"VALUE_TWO", "The second enum value">,
    Etor<"VALUE_THREE", "The third enum value">,
    Etor<"VALUE_FOUR", "The fourth enum value">,
  ];
}

// CHECK: inline llvm::raw_ostream &operator<<(llvm::raw_ostream &os, enum my_enum_t value)
// CHECK: switch (value) {
// CHECK: case MY_ENUM_VALUE_ONE:
// CHECK:   os << "MY_ENUM_VALUE_ONE";
// CHECK:   break;
// CHECK: case MY_ENUM_VALUE_TWO:
// CHECK:   os << "MY_ENUM_VALUE_TWO";
// CHECK:   break;
// CHECK: case MY_ENUM_VALUE_THREE:
// CHECK:   os << "MY_ENUM_VALUE_THREE";
// CHECK:   break;
// CHECK: case MY_ENUM_VALUE_FOUR:
// CHECK:   os << "MY_ENUM_VALUE_FOUR";
// CHECK:   break;
// CHECK: default:
// CHECK:   os << "unknown enumerator";
// CHECK:   break;