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