xref: /llvm-project/offload/test/tools/offload-tblgen/print_enum.td (revision fd3907ccb583df99e9c19d2fe84e4e7c52d75de9)
1// RUN: %offload-tblgen -gen-print-header -I %S/../../../liboffload/API %s | %fcheck-generic
2
3// Check that print helpers are created for enums
4
5include "APIDefs.td"
6
7def : Enum {
8  let name = "my_enum_t";
9  let desc = "An example enum";
10  let etors =[
11    Etor<"VALUE_ONE", "The first enum value">,
12    Etor<"VALUE_TWO", "The second enum value">,
13    Etor<"VALUE_THREE", "The third enum value">,
14    Etor<"VALUE_FOUR", "The fourth enum value">,
15  ];
16}
17
18// CHECK: inline std::ostream &operator<<(std::ostream &os, enum my_enum_t value)
19// CHECK: switch (value) {
20// CHECK: case MY_ENUM_VALUE_ONE:
21// CHECK:   os << "MY_ENUM_VALUE_ONE";
22// CHECK:   break;
23// CHECK: case MY_ENUM_VALUE_TWO:
24// CHECK:   os << "MY_ENUM_VALUE_TWO";
25// CHECK:   break;
26// CHECK: case MY_ENUM_VALUE_THREE:
27// CHECK:   os << "MY_ENUM_VALUE_THREE";
28// CHECK:   break;
29// CHECK: case MY_ENUM_VALUE_FOUR:
30// CHECK:   os << "MY_ENUM_VALUE_FOUR";
31// CHECK:   break;
32// CHECK: default:
33// CHECK:   os << "unknown enumerator";
34// CHECK:   break;
35