@@ -8722,60 +8722,38 @@ static void
87228722output_ec_size_handler (void )
87238723{
87248724 int ec_checked = 0 ;
8725-
8726- output_line ("if (unlikely ((cob_glob_ptr->cob_exception_code & 0xff00) == 0x%04x)"
8727- " && (cob_glob_ptr->cob_got_exception > 0))" ,
8728- CB_EXCEPTION_CODE (COB_EC_SIZE ));
8729- output_block_open ();
8730- if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_ADDRESS )) {
8731- ec_checked = 1 ;
8732- output_line ("if (cob_glob_ptr->cob_exception_code == %d) "
8733- "cob_fatal_exception (cob_glob_ptr->cob_exception_code);" ,
8734- CB_EXCEPTION_CODE (COB_EC_SIZE_ADDRESS ));
8735- }
8736- if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_EXPONENTIATION )) {
8737- ec_checked = 1 ;
8738- output_line ("if (cob_glob_ptr->cob_exception_code == %d) "
8739- "cob_fatal_exception (cob_glob_ptr->cob_exception_code);" ,
8740- CB_EXCEPTION_CODE (COB_EC_SIZE_EXPONENTIATION ));
8741- }
8742- if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_IMP )) {
8743- ec_checked = 1 ;
8744- output_line ("if (cob_glob_ptr->cob_exception_code == %d) "
8745- "cob_fatal_exception (cob_glob_ptr->cob_exception_code);" ,
8746- CB_EXCEPTION_CODE (COB_EC_SIZE_IMP ));
8747- }
8748- if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_OVERFLOW )) {
8749- ec_checked = 1 ;
8750- output_line ("if (cob_glob_ptr->cob_exception_code == %d) "
8751- "cob_fatal_exception (cob_glob_ptr->cob_exception_code);" ,
8752- CB_EXCEPTION_CODE (COB_EC_SIZE_OVERFLOW ));
8753- }
8754- if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_TRUNCATION )) {
8755- ec_checked = 1 ;
8756- output_line ("if (cob_glob_ptr->cob_exception_code == %d) "
8757- "cob_fatal_exception (cob_glob_ptr->cob_exception_code);" ,
8758- CB_EXCEPTION_CODE (COB_EC_SIZE_TRUNCATION ));
8759- }
8760- if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_UNDERFLOW )) {
8761- ec_checked = 1 ;
8762- output_line ("if (cob_glob_ptr->cob_exception_code == %d) "
8763- "cob_fatal_exception (cob_glob_ptr->cob_exception_code);" ,
8764- CB_EXCEPTION_CODE (COB_EC_SIZE_UNDERFLOW ));
8765- }
8766- if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_ZERO_DIVIDE )) {
8767- ec_checked = 1 ;
8768- output_line ("if (cob_glob_ptr->cob_exception_code == %d) "
8769- "cob_fatal_exception (cob_glob_ptr->cob_exception_code);" ,
8770- CB_EXCEPTION_CODE (COB_EC_SIZE_ZERO_DIVIDE ));
8771- }
8772-
8773- output_block_close ();
8774-
8725+ if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_ADDRESS )) {
8726+ ec_checked |= CB_EXCEPTION_CODE (COB_EC_SIZE_ADDRESS );
8727+ }
8728+ if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_EXPONENTIATION )) {
8729+ ec_checked |= CB_EXCEPTION_CODE (COB_EC_SIZE_EXPONENTIATION );
8730+ }
8731+ if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_IMP )) {
8732+ ec_checked |= CB_EXCEPTION_CODE (COB_EC_SIZE_IMP );
8733+ }
8734+ if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_OVERFLOW )) {
8735+ ec_checked |= CB_EXCEPTION_CODE (COB_EC_SIZE_OVERFLOW );
8736+ }
8737+ if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_TRUNCATION )) {
8738+ ec_checked |= CB_EXCEPTION_CODE (COB_EC_SIZE_TRUNCATION );
8739+ }
8740+ if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_UNDERFLOW )) {
8741+ ec_checked |= CB_EXCEPTION_CODE (COB_EC_SIZE_UNDERFLOW );
8742+ }
8743+ if (CB_EXCEPTION_ENABLE (COB_EC_SIZE_ZERO_DIVIDE )) {
8744+ ec_checked |= CB_EXCEPTION_CODE (COB_EC_SIZE_ZERO_DIVIDE );
8745+ }
87758746 if (ec_checked ) {
8776- output_line ("cob_reset_exception ();" );
8747+ output_line (
8748+ "if (((cob_glob_ptr->cob_exception_code & 0x%04x) == 0x%04x)"
8749+ " && ((cob_glob_ptr->cob_exception_code & 0x%04x) != 0)"
8750+ " && (cob_glob_ptr->cob_got_exception > 0))" ,
8751+ CB_EXCEPTION_CODE (COB_EC_SIZE ),
8752+ CB_EXCEPTION_CODE (COB_EC_SIZE ),
8753+ ec_checked & 0x00FF );
8754+ output_line ("\t" "cob_fatal_exception (cob_glob_ptr->cob_exception_code);" );
87778755 }
8778-
8756+
87798757}
87808758
87818759static void
0 commit comments