aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/runtime/stop.c
diff options
context:
space:
mode:
authorJanne Blomqvist <jb@gcc.gnu.org>2018-02-22 11:44:31 +0200
committerJanne Blomqvist <jb@gcc.gnu.org>2018-02-22 11:44:31 +0200
commit3f5fabc0eab4b2145d7f4fd7cf310b9b5bf022ed (patch)
treef18e51f89b81cab03c411de2aff5beb76a53d6e9 /libgfortran/runtime/stop.c
parent4b3fc654698958fd6b18d8ea8c99d4c6c201591b (diff)
downloadgcc-3f5fabc0eab4b2145d7f4fd7cf310b9b5bf022ed.zip
gcc-3f5fabc0eab4b2145d7f4fd7cf310b9b5bf022ed.tar.gz
gcc-3f5fabc0eab4b2145d7f4fd7cf310b9b5bf022ed.tar.bz2
Character length cleanup for Coarray Fortran library
Following the change to use size_t for Fortran character lengths (PR 78534), this patch modifies the Coarray ABI in a similar way. The single-image implementation that is included in libgfortran is updated, but this needs corresponding work in the OpenCoarray library as well for multi-image support. I also fixed the types for the STOP and ERROR STOP implementation in libgfortran, as the calling of them is somewhat intertwined with the calling of the corresponding CAF functions. I'll send the OpenCoarray changes as a separate pull request to the OpenCoarrays repository. Regtested on x86_64-pc-linux-gnu. gcc/fortran/ChangeLog: 2018-02-22 Janne Blomqvist <jb@gcc.gnu.org> * gfortran.texi: Update Coarray API description. * trans-decl.c (gfc_build_builtin_function_decls): Use size_t for character lengths, int for exit codes. (generate_coarray_sym_init): Use size_t for character length. * trans-intrinsic.c (conv_co_collective): Likewise. * trans-stmt.c (gfc_trans_lock_unlock): Likewise. (gfc_trans_event_post_wait): Likewise. (gfc_trans_sync): Likewise. (gfc_trans_stop): Use size_t for character lengths, int for exit codes. libgfortran/ChangeLog: 2018-02-22 Janne Blomqvist <jb@gcc.gnu.org> * libgfortran.h (stop_string): Use size_t for character length. * runtime/stop.c (stop_string): Likewise. (error_stop_string): Likewise. (stop_numeric): Use int for exit code. (error_stop_numeric): Likewise. * caf/libcaf.h: Remove stdint.h include. (_gfortran_caf_register): Use size_t for character length. (_gfortran_caf_deregister): Likewise. (_gfortran_caf_sync_all): Likewise. (_gfortran_caf_sync_memory): Likewise. (_gfortran_caf_sync_images): Likewise. (_gfortran_caf_stop_numeric): Use int for exit code. (_gfortran_caf_stop_str): Use size_t for character length. (_gfortran_caf_error_stop_str): Likewise. (_gfortran_caf_error_stop): Use int for exit code. (_gfortran_caf_co_broadcast): Use size_t for character length. (_gfortran_caf_co_sum): Likewise. (_gfortran_caf_co_min): Likewise. (_gfortran_caf_co_max): Likewise. (_gfortran_caf_co_reduce): Likewise. (_gfortran_caf_lock): Likewise. (_gfortran_caf_unlock): Likewise. (_gfortran_caf_event_post): Likewise. (_gfortran_caf_event_wait): Likewise. * caf/mpi.c (_gfortran_caf_register): Update implementation to match prototype. (_gfortran_caf_deregister): Likewise. (_gfortran_caf_sync_all): Likewise. (_gfortran_caf_sync_images): Likewise. (_gfortran_caf_error_stop_str): Likewise. (_gfortran_caf_error_stop): Likewise. * caf/single.c (caf_internal_error): Likewise. (_gfortran_caf_register): Likewise. (_gfortran_caf_deregister): Likewise. (_gfortran_caf_sync_all): Likewise. (_gfortran_caf_sync_memory): Likewise. (_gfortran_caf_sync_images): Likewise. (_gfortran_caf_stop_numeric): Likewise. (_gfortran_caf_stop_str): Likewise. (_gfortran_caf_error_stop_str): Likewise. (_gfortran_caf_error_stop): Likewise. (_gfortran_caf_co_broadcast): Likewise. (_gfortran_caf_co_sum): Likewise. (_gfortran_caf_co_min): Likewise. (_gfortran_caf_co_max): Likewise. (_gfortran_caf_co_reduce): Likewise. (_gfortran_caf_event_post): Likewise. (_gfortran_caf_event_wait): Likewise. (_gfortran_caf_lock): Likewise. (_gfortran_caf_unlock): Likewise. From-SVN: r257894
Diffstat (limited to 'libgfortran/runtime/stop.c')
-rw-r--r--libgfortran/runtime/stop.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/libgfortran/runtime/stop.c b/libgfortran/runtime/stop.c
index 6f8b62f..3ef1350 100644
--- a/libgfortran/runtime/stop.c
+++ b/libgfortran/runtime/stop.c
@@ -81,14 +81,14 @@ report_exception (void)
/* A numeric STOP statement. */
-extern _Noreturn void stop_numeric (GFC_INTEGER_4);
+extern _Noreturn void stop_numeric (int);
export_proto(stop_numeric);
void
-stop_numeric (GFC_INTEGER_4 code)
+stop_numeric (int code)
{
report_exception ();
- st_printf ("STOP %d\n", (int)code);
+ st_printf ("STOP %d\n", code);
exit (code);
}
@@ -96,7 +96,7 @@ stop_numeric (GFC_INTEGER_4 code)
/* A character string or blank STOP statement. */
void
-stop_string (const char *string, GFC_INTEGER_4 len)
+stop_string (const char *string, size_t len)
{
report_exception ();
if (string)
@@ -114,11 +114,11 @@ stop_string (const char *string, GFC_INTEGER_4 len)
initiates error termination of execution." Thus, error_stop_string returns
a nonzero exit status code. */
-extern _Noreturn void error_stop_string (const char *, GFC_INTEGER_4);
+extern _Noreturn void error_stop_string (const char *, size_t);
export_proto(error_stop_string);
void
-error_stop_string (const char *string, GFC_INTEGER_4 len)
+error_stop_string (const char *string, size_t len)
{
report_exception ();
estr_write ("ERROR STOP ");
@@ -131,13 +131,13 @@ error_stop_string (const char *string, GFC_INTEGER_4 len)
/* A numeric ERROR STOP statement. */
-extern _Noreturn void error_stop_numeric (GFC_INTEGER_4);
+extern _Noreturn void error_stop_numeric (int);
export_proto(error_stop_numeric);
void
-error_stop_numeric (GFC_INTEGER_4 code)
+error_stop_numeric (int code)
{
report_exception ();
- st_printf ("ERROR STOP %d\n", (int) code);
+ st_printf ("ERROR STOP %d\n", code);
exit_error (code);
}