xref: /llvm-project/offload/test/tools/offload-tblgen/default_returns.td (revision fd3907ccb583df99e9c19d2fe84e4e7c52d75de9)
1// RUN: %offload-tblgen -gen-api -I %S/../../../liboffload/API %s | %fcheck-generic --check-prefix=CHECK-API
2// RUN: %offload-tblgen -gen-entry-points -I %S/../../../liboffload/API %s | %fcheck-generic --check-prefix=CHECK-VALIDATION
3
4// Check implicit returns are included in documentation and the validation
5// wrappers where applicable
6
7include "APIDefs.td"
8
9def : Handle {
10    let name = "ol_foo_handle_t";
11    let desc = "Example handle type";
12}
13
14def : Function {
15    let name = "FunctionA";
16    let desc = "Function A description";
17    let details = [ "Function A detailed information" ];
18    let params = [
19        Param<"uint32_t", "ParamValue", "A plain value parameter">,
20        Param<"ol_foo_handle_t", "ParamHandle", "A handle parameter">,
21        Param<"uint32_t*", "ParamPointer", "A pointer parameter">,
22        Param<"uint32_t*", "ParamPointerOpt", "An optional pointer parameter", PARAM_OUT_OPTIONAL>
23    ];
24    let returns = [];
25}
26
27// CHECK-API: /// @returns
28// CHECK-API: OL_RESULT_SUCCESS
29// CHECK-API: OL_ERRC_INVALID_NULL_HANDLE
30// CHECK-API-NEXT: `NULL == ParamHandle`
31// CHECK-API: OL_ERRC_INVALID_NULL_POINTER
32// CHECK-API-NEXT: `NULL == ParamPointer`
33// CHECK-API-NOT: `NULL == ParamPointerOpt`
34
35// CHECK-VALIDATION: FunctionA_val
36// CHECK-VALIDATION: if (NULL == ParamHandle)
37// CHECK-VALIDATION-NEXT: return OL_ERRC_INVALID_NULL_HANDLE;
38// CHECK-VALIDATION: if (NULL == ParamPointer)
39// CHECK-VALIDATION-NEXT: return OL_ERRC_INVALID_NULL_POINTER;
40// CHECK-VALIDATION-NOT: if (NULL == ParamPointerOpt)
41