| 1084 | // |
| 1085 | |
| 1086 | static void gen_compile(const act* action) |
| 1087 | { |
| 1088 | const gpre_req* request = action->act_request; |
| 1089 | const gpre_dbb* db = request->req_database; |
| 1090 | const gpre_sym* symbol = db->dbb_name; |
| 1091 | |
| 1092 | // generate automatic ready if appropriate |
| 1093 | |
| 1094 | if (gpreGlob.sw_auto) |
| 1095 | t_start_auto(request, status_vector(), action, true); |
| 1096 | |
| 1097 | // always generate a compile, a test for the success of the compile, |
| 1098 | // and an end to the 'if not compiled test |
| 1099 | |
| 1100 | // generate an 'if not compiled' |
| 1101 | |
| 1102 | if (gpreGlob.sw_auto && (action->act_error || (action->act_flags & ACT_sql))) |
| 1103 | printa(COLUMN, "IF (%s .EQ. 0 .AND. %s .NE. 0) THEN", |
| 1104 | request->req_handle, request_trans(action, request)); |
| 1105 | else |
| 1106 | printa(COLUMN, "IF (%s .EQ. 0) THEN", request->req_handle); |
| 1107 | |
| 1108 | sprintf(output_buffer, "%sCALL ISC_COMPILE_REQUEST%s (%s, %s, %s, %s%d%s, %sisc_%d%s)\n", |
| 1109 | COLUMN, (request->req_flags & REQ_exp_hand) ? "" : "2", |
| 1110 | status_vector(), symbol->sym_string, request->req_handle, |
| 1111 | I2CONST_1, request->req_length, I2CONST_2, REF_1, |
| 1112 | request->req_ident, REF_2); |
| 1113 | FTN_print_buffer(output_buffer); |
| 1114 | status_and_stop(action); |
| 1115 | printa(COLUMN, "END IF"); |
| 1116 | |
| 1117 | // If blobs are present, zero out all of the blob handles. After this |
| 1118 | // point, the handles are the user's responsibility |
| 1119 | |
| 1120 | for (const blb* blob = request->req_blobs; blob; blob = blob->blb_next) |
| 1121 | { |
| 1122 | sprintf(output_buffer, "%sisc_%d = 0\n", COLUMN, blob->blb_ident); |
| 1123 | FTN_print_buffer(output_buffer); |
| 1124 | } |
| 1125 | } |
| 1126 | |
| 1127 | |
| 1128 |
no test coverage detected