1// RUN: %offload-tblgen -gen-print-header -I %S/../../../liboffload/API %s | %fcheck-generic --check-prefix=CHECK-PRINT 2// RUN: %offload-tblgen -gen-api -I %S/../../../liboffload/API %s | %fcheck-generic --check-prefix=CHECK-API 3 4// Check that print helpers are created for functions 5 6include "APIDefs.td" 7 8def : Handle { 9 let name = "ol_foo_handle_t"; 10 let desc = "Example handle type"; 11} 12 13def : Function { 14 let name = "FunctionA"; 15 let desc = "Function A description"; 16 let details = [ "Function A detailed information" ]; 17 let params = [ 18 Param<"uint32_t", "ParamValue", "A plain value parameter">, 19 Param<"ol_foo_handle_t", "ParamHandle", "A handle parameter">, 20 Param<"uint32_t*", "ParamPointer", "A pointer parameter">, 21 ]; 22 let returns = []; 23} 24 25// CHECK-API: typedef struct function_a_params_t { 26// CHECK-API-NEXT: uint32_t* pParamValue; 27// CHECK-API-NEXT: ol_foo_handle_t* pParamHandle; 28// CHECK-API-NEXT: uint32_t** pParamPointer; 29 30// CHECK-PRINT: inline std::ostream &operator<<(std::ostream &os, const struct function_a_params_t *params) 31// CHECK-PRINT: os << ".ParamValue = "; 32// CHECK-PRINT: os << *params->pParamValue; 33// CHECK-PRINT: os << ", "; 34// CHECK-PRINT: os << ".ParamHandle = "; 35// CHECK-PRINT: printPtr(os, *params->pParamHandle); 36// CHECK-PRINT: os << ", "; 37// CHECK-PRINT: os << ".ParamPointer = "; 38// CHECK-PRINT: printPtr(os, *params->pParamPointer); 39