diff options
Diffstat (limited to 'libgfortran/caf/mpi.c')
-rw-r--r-- | libgfortran/caf/mpi.c | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/libgfortran/caf/mpi.c b/libgfortran/caf/mpi.c index 0f7977fc007..55d9908b8de 100644 --- a/libgfortran/caf/mpi.c +++ b/libgfortran/caf/mpi.c @@ -131,7 +131,7 @@ _gfortran_caf_num_images (int distance __attribute__ ((unused)), void * _gfortran_caf_register (size_t size, caf_register_t type, caf_token_t *token, - int *stat, char *errmsg, int errmsg_len, + int *stat, char *errmsg, size_t errmsg_len, int num_alloc_comps __attribute__ ((unused))) { void *local; @@ -189,8 +189,8 @@ error: *stat = caf_is_finalized ? STAT_STOPPED_IMAGE : 1; if (errmsg_len > 0) { - int len = ((int) strlen (msg) > errmsg_len) ? errmsg_len - : (int) strlen (msg); + size_t len = (strlen (msg) > errmsg_len) ? errmsg_len + : strlen (msg); memcpy (errmsg, msg, len); if (errmsg_len > len) memset (&errmsg[len], ' ', errmsg_len-len); @@ -205,7 +205,7 @@ error: void -_gfortran_caf_deregister (caf_token_t *token, int *stat, char *errmsg, int errmsg_len) +_gfortran_caf_deregister (caf_token_t *token, int *stat, char *errmsg, size_t errmsg_len) { if (unlikely (caf_is_finalized)) { @@ -217,8 +217,8 @@ _gfortran_caf_deregister (caf_token_t *token, int *stat, char *errmsg, int errms if (errmsg_len > 0) { - int len = ((int) sizeof (msg) - 1 > errmsg_len) - ? errmsg_len : (int) sizeof (msg) - 1; + size_t len = (sizeof (msg) - 1 > errmsg_len) + ? errmsg_len : sizeof (msg) - 1; memcpy (errmsg, msg, len); if (errmsg_len > len) memset (&errmsg[len], ' ', errmsg_len-len); @@ -239,7 +239,7 @@ _gfortran_caf_deregister (caf_token_t *token, int *stat, char *errmsg, int errms void -_gfortran_caf_sync_all (int *stat, char *errmsg, int errmsg_len) +_gfortran_caf_sync_all (int *stat, char *errmsg, size_t errmsg_len) { int ierr; @@ -261,8 +261,8 @@ _gfortran_caf_sync_all (int *stat, char *errmsg, int errmsg_len) if (errmsg_len > 0) { - int len = ((int) strlen (msg) > errmsg_len) ? errmsg_len - : (int) strlen (msg); + size_t len = (strlen (msg) > errmsg_len) ? errmsg_len + : strlen (msg); memcpy (errmsg, msg, len); if (errmsg_len > len) memset (&errmsg[len], ' ', errmsg_len-len); @@ -278,7 +278,7 @@ _gfortran_caf_sync_all (int *stat, char *errmsg, int errmsg_len) is not equivalent to SYNC ALL. */ void _gfortran_caf_sync_images (int count, int images[], int *stat, char *errmsg, - int errmsg_len) + size_t errmsg_len) { int ierr; if (count == 0 || (count == 1 && images[0] == caf_this_image)) @@ -329,8 +329,8 @@ _gfortran_caf_sync_images (int count, int images[], int *stat, char *errmsg, if (errmsg_len > 0) { - int len = ((int) strlen (msg) > errmsg_len) ? errmsg_len - : (int) strlen (msg); + size_t len = (strlen (msg) > errmsg_len) ? errmsg_len + : strlen (msg); memcpy (errmsg, msg, len); if (errmsg_len > len) memset (&errmsg[len], ' ', errmsg_len-len); @@ -358,13 +358,15 @@ error_stop (int error) /* ERROR STOP function for string arguments. */ void -_gfortran_caf_error_stop_str (const char *string, int32_t len) +_gfortran_caf_error_stop_str (const char *string, size_t len, bool quiet) { - fputs ("ERROR STOP ", stderr); - while (len--) - fputc (*(string++), stderr); - fputs ("\n", stderr); - + if (!quiet) + { + fputs ("ERROR STOP ", stderr); + while (len--) + fputc (*(string++), stderr); + fputs ("\n", stderr); + } error_stop (1); } @@ -372,8 +374,9 @@ _gfortran_caf_error_stop_str (const char *string, int32_t len) /* ERROR STOP function for numerical arguments. */ void -_gfortran_caf_error_stop (int32_t error) +_gfortran_caf_error_stop (int error, bool quiet) { - fprintf (stderr, "ERROR STOP %d\n", error); + if (!quiet) + fprintf (stderr, "ERROR STOP %d\n", error); error_stop (error); } |