aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>2018-02-22 09:44:31 +0000
committerjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>2018-02-22 09:44:31 +0000
commit5e04a38ad7a07d60025b6f15836aad7b7311c1e6 (patch)
treef18e51f89b81cab03c411de2aff5beb76a53d6e9 /libgfortran
parent462c3e357b53ce86eb2f6f5db8172e6b3775925c (diff)
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@257894 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog53
-rw-r--r--libgfortran/caf/libcaf.h37
-rw-r--r--libgfortran/caf/mpi.c28
-rw-r--r--libgfortran/caf/single.c55
-rw-r--r--libgfortran/libgfortran.h2
-rw-r--r--libgfortran/runtime/stop.c18
6 files changed, 123 insertions, 70 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 67ddbee606f..4db4968e209 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,56 @@
+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.
+
2018-02-19 Andre Vehreschild <vehre@gcc.gnu.org>
* caf/libcaf.h: Add type parameters to the caf_*_by_ref prototypes.
diff --git a/libgfortran/caf/libcaf.h b/libgfortran/caf/libcaf.h
index f3428a63fae..198a0e9efd3 100644
--- a/libgfortran/caf/libcaf.h
+++ b/libgfortran/caf/libcaf.h
@@ -28,7 +28,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include <stdbool.h>
#include <stddef.h> /* For size_t. */
-#include <stdint.h> /* For int32_t. */
#include "libgfortran.h"
@@ -190,29 +189,29 @@ int _gfortran_caf_this_image (int);
int _gfortran_caf_num_images (int, int);
void _gfortran_caf_register (size_t, caf_register_t, caf_token_t *,
- gfc_descriptor_t *, int *, char *, int);
+ gfc_descriptor_t *, int *, char *, size_t);
void _gfortran_caf_deregister (caf_token_t *, caf_deregister_t, int *, char *,
- int);
+ size_t);
-void _gfortran_caf_sync_all (int *, char *, int);
-void _gfortran_caf_sync_memory (int *, char *, int);
-void _gfortran_caf_sync_images (int, int[], int *, char *, int);
+void _gfortran_caf_sync_all (int *, char *, size_t);
+void _gfortran_caf_sync_memory (int *, char *, size_t);
+void _gfortran_caf_sync_images (int, int[], int *, char *, size_t);
-void _gfortran_caf_stop_numeric (int32_t)
+void _gfortran_caf_stop_numeric (int)
__attribute__ ((noreturn));
-void _gfortran_caf_stop_str (const char *, int32_t)
+void _gfortran_caf_stop_str (const char *, size_t)
__attribute__ ((noreturn));
-void _gfortran_caf_error_stop_str (const char *, int32_t)
+void _gfortran_caf_error_stop_str (const char *, size_t)
__attribute__ ((noreturn));
-void _gfortran_caf_error_stop (int32_t) __attribute__ ((noreturn));
+void _gfortran_caf_error_stop (int) __attribute__ ((noreturn));
void _gfortran_caf_fail_image (void) __attribute__ ((noreturn));
-void _gfortran_caf_co_broadcast (gfc_descriptor_t *, int, int *, char *, int);
-void _gfortran_caf_co_sum (gfc_descriptor_t *, int, int *, char *, int);
-void _gfortran_caf_co_min (gfc_descriptor_t *, int, int *, char *, int, int);
-void _gfortran_caf_co_max (gfc_descriptor_t *, int, int *, char *, int, int);
+void _gfortran_caf_co_broadcast (gfc_descriptor_t *, int, int *, char *, size_t);
+void _gfortran_caf_co_sum (gfc_descriptor_t *, int, int *, char *, size_t);
+void _gfortran_caf_co_min (gfc_descriptor_t *, int, int *, char *, int, size_t);
+void _gfortran_caf_co_max (gfc_descriptor_t *, int, int *, char *, int, size_t);
void _gfortran_caf_co_reduce (gfc_descriptor_t *, void* (*) (void *, void*),
- int, int, int *, char *, int, int);
+ int, int, int *, char *, int, size_t);
void _gfortran_caf_get (caf_token_t, size_t, int, gfc_descriptor_t *,
caf_vector_t *, gfc_descriptor_t *, int, int, bool,
@@ -247,10 +246,10 @@ void _gfortran_caf_atomic_cas (caf_token_t, size_t, int, void *, void *,
void _gfortran_caf_atomic_op (int, caf_token_t, size_t, int, void *, void *,
int *, int, int);
-void _gfortran_caf_lock (caf_token_t, size_t, int, int *, int *, char *, int);
-void _gfortran_caf_unlock (caf_token_t, size_t, int, int *, char *, int);
-void _gfortran_caf_event_post (caf_token_t, size_t, int, int *, char *, int);
-void _gfortran_caf_event_wait (caf_token_t, size_t, int, int *, char *, int);
+void _gfortran_caf_lock (caf_token_t, size_t, int, int *, int *, char *, size_t);
+void _gfortran_caf_unlock (caf_token_t, size_t, int, int *, char *, size_t);
+void _gfortran_caf_event_post (caf_token_t, size_t, int, int *, char *, size_t);
+void _gfortran_caf_event_wait (caf_token_t, size_t, int, int *, char *, size_t);
void _gfortran_caf_event_query (caf_token_t, size_t, int, int *, int *);
void _gfortran_caf_failed_images (gfc_descriptor_t *,
diff --git a/libgfortran/caf/mpi.c b/libgfortran/caf/mpi.c
index 0f7977fc007..14c10b536e3 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,7 +358,7 @@ 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)
{
fputs ("ERROR STOP ", stderr);
while (len--)
@@ -372,7 +372,7 @@ _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)
{
fprintf (stderr, "ERROR STOP %d\n", error);
error_stop (error);
diff --git a/libgfortran/caf/single.c b/libgfortran/caf/single.c
index 18906e99a94..053ec87d562 100644
--- a/libgfortran/caf/single.c
+++ b/libgfortran/caf/single.c
@@ -28,6 +28,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include <stdlib.h> /* For exit and malloc. */
#include <string.h> /* For memcpy and memset. */
#include <stdarg.h> /* For variadic arguments. */
+#include <stdint.h>
#include <assert.h>
/* Define GFC_CAF_CHECK to enable run-time checking. */
@@ -74,7 +75,7 @@ caf_runtime_error (const char *message, ...)
/* Error handling is similar everytime. */
static void
caf_internal_error (const char *msg, int *stat, char *errmsg,
- int errmsg_len, ...)
+ size_t errmsg_len, ...)
{
va_list args;
va_start (args, errmsg_len);
@@ -83,8 +84,8 @@ caf_internal_error (const char *msg, int *stat, char *errmsg,
*stat = 1;
if (errmsg_len > 0)
{
- size_t len = snprintf (errmsg, errmsg_len, msg, args);
- if ((size_t)errmsg_len > len)
+ int len = snprintf (errmsg, errmsg_len, msg, args);
+ if (len >= 0 && errmsg_len > (size_t) len)
memset (&errmsg[len], ' ', errmsg_len - len);
}
va_end (args);
@@ -134,7 +135,7 @@ _gfortran_caf_num_images (int distance __attribute__ ((unused)),
void
_gfortran_caf_register (size_t size, caf_register_t type, caf_token_t *token,
gfc_descriptor_t *data, int *stat, char *errmsg,
- int errmsg_len)
+ size_t errmsg_len)
{
const char alloc_fail_msg[] = "Failed to allocate coarray";
void *local;
@@ -195,7 +196,7 @@ _gfortran_caf_register (size_t size, caf_register_t type, caf_token_t *token,
void
_gfortran_caf_deregister (caf_token_t *token, caf_deregister_t type, int *stat,
char *errmsg __attribute__ ((unused)),
- int errmsg_len __attribute__ ((unused)))
+ size_t errmsg_len __attribute__ ((unused)))
{
caf_single_token_t single_token = TOKEN (*token);
@@ -221,7 +222,7 @@ _gfortran_caf_deregister (caf_token_t *token, caf_deregister_t type, int *stat,
void
_gfortran_caf_sync_all (int *stat,
char *errmsg __attribute__ ((unused)),
- int errmsg_len __attribute__ ((unused)))
+ size_t errmsg_len __attribute__ ((unused)))
{
__asm__ __volatile__ ("":::"memory");
if (stat)
@@ -232,7 +233,7 @@ _gfortran_caf_sync_all (int *stat,
void
_gfortran_caf_sync_memory (int *stat,
char *errmsg __attribute__ ((unused)),
- int errmsg_len __attribute__ ((unused)))
+ size_t errmsg_len __attribute__ ((unused)))
{
__asm__ __volatile__ ("":::"memory");
if (stat)
@@ -245,7 +246,7 @@ _gfortran_caf_sync_images (int count __attribute__ ((unused)),
int images[] __attribute__ ((unused)),
int *stat,
char *errmsg __attribute__ ((unused)),
- int errmsg_len __attribute__ ((unused)))
+ size_t errmsg_len __attribute__ ((unused)))
{
#ifdef GFC_CAF_CHECK
int i;
@@ -266,7 +267,7 @@ _gfortran_caf_sync_images (int count __attribute__ ((unused)),
void
-_gfortran_caf_stop_numeric(int32_t stop_code)
+_gfortran_caf_stop_numeric(int stop_code)
{
fprintf (stderr, "STOP %d\n", stop_code);
exit (0);
@@ -274,7 +275,7 @@ _gfortran_caf_stop_numeric(int32_t stop_code)
void
-_gfortran_caf_stop_str(const char *string, int32_t len)
+_gfortran_caf_stop_str(const char *string, size_t len)
{
fputs ("STOP ", stderr);
while (len--)
@@ -286,7 +287,7 @@ _gfortran_caf_stop_str(const char *string, int32_t len)
void
-_gfortran_caf_error_stop_str (const char *string, int32_t len)
+_gfortran_caf_error_stop_str (const char *string, size_t len)
{
fputs ("ERROR STOP ", stderr);
while (len--)
@@ -366,7 +367,7 @@ _gfortran_caf_stopped_images (gfc_descriptor_t *array,
void
-_gfortran_caf_error_stop (int32_t error)
+_gfortran_caf_error_stop (int error)
{
fprintf (stderr, "ERROR STOP %d\n", error);
exit (error);
@@ -377,7 +378,7 @@ void
_gfortran_caf_co_broadcast (gfc_descriptor_t *a __attribute__ ((unused)),
int source_image __attribute__ ((unused)),
int *stat, char *errmsg __attribute__ ((unused)),
- int errmsg_len __attribute__ ((unused)))
+ size_t errmsg_len __attribute__ ((unused)))
{
if (stat)
*stat = 0;
@@ -387,7 +388,7 @@ void
_gfortran_caf_co_sum (gfc_descriptor_t *a __attribute__ ((unused)),
int result_image __attribute__ ((unused)),
int *stat, char *errmsg __attribute__ ((unused)),
- int errmsg_len __attribute__ ((unused)))
+ size_t errmsg_len __attribute__ ((unused)))
{
if (stat)
*stat = 0;
@@ -398,7 +399,7 @@ _gfortran_caf_co_min (gfc_descriptor_t *a __attribute__ ((unused)),
int result_image __attribute__ ((unused)),
int *stat, char *errmsg __attribute__ ((unused)),
int a_len __attribute__ ((unused)),
- int errmsg_len __attribute__ ((unused)))
+ size_t errmsg_len __attribute__ ((unused)))
{
if (stat)
*stat = 0;
@@ -409,7 +410,7 @@ _gfortran_caf_co_max (gfc_descriptor_t *a __attribute__ ((unused)),
int result_image __attribute__ ((unused)),
int *stat, char *errmsg __attribute__ ((unused)),
int a_len __attribute__ ((unused)),
- int errmsg_len __attribute__ ((unused)))
+ size_t errmsg_len __attribute__ ((unused)))
{
if (stat)
*stat = 0;
@@ -424,7 +425,7 @@ _gfortran_caf_co_reduce (gfc_descriptor_t *a __attribute__ ((unused)),
int result_image __attribute__ ((unused)),
int *stat, char *errmsg __attribute__ ((unused)),
int a_len __attribute__ ((unused)),
- int errmsg_len __attribute__ ((unused)))
+ size_t errmsg_len __attribute__ ((unused)))
{
if (stat)
*stat = 0;
@@ -2910,7 +2911,7 @@ void
_gfortran_caf_event_post (caf_token_t token, size_t index,
int image_index __attribute__ ((unused)),
int *stat, char *errmsg __attribute__ ((unused)),
- int errmsg_len __attribute__ ((unused)))
+ size_t errmsg_len __attribute__ ((unused)))
{
uint32_t value = 1;
uint32_t *event = (uint32_t *) ((char *) MEMTOK (token) + index
@@ -2925,7 +2926,7 @@ void
_gfortran_caf_event_wait (caf_token_t token, size_t index,
int until_count, int *stat,
char *errmsg __attribute__ ((unused)),
- int errmsg_len __attribute__ ((unused)))
+ size_t errmsg_len __attribute__ ((unused)))
{
uint32_t *event = (uint32_t *) ((char *) MEMTOK (token) + index
* sizeof (uint32_t));
@@ -2952,7 +2953,7 @@ _gfortran_caf_event_query (caf_token_t token, size_t index,
void
_gfortran_caf_lock (caf_token_t token, size_t index,
int image_index __attribute__ ((unused)),
- int *aquired_lock, int *stat, char *errmsg, int errmsg_len)
+ int *aquired_lock, int *stat, char *errmsg, size_t errmsg_len)
{
const char *msg = "Already locked";
bool *lock = &((bool *) MEMTOK (token))[index];
@@ -2981,22 +2982,22 @@ _gfortran_caf_lock (caf_token_t token, size_t index,
*stat = 1;
if (errmsg_len > 0)
{
- int len = ((int) sizeof (msg) > errmsg_len) ? errmsg_len
- : (int) sizeof (msg);
+ size_t len = (sizeof (msg) > errmsg_len) ? errmsg_len
+ : sizeof (msg);
memcpy (errmsg, msg, len);
if (errmsg_len > len)
memset (&errmsg[len], ' ', errmsg_len-len);
}
return;
}
- _gfortran_caf_error_stop_str (msg, (int32_t) strlen (msg));
+ _gfortran_caf_error_stop_str (msg, strlen (msg));
}
void
_gfortran_caf_unlock (caf_token_t token, size_t index,
int image_index __attribute__ ((unused)),
- int *stat, char *errmsg, int errmsg_len)
+ int *stat, char *errmsg, size_t errmsg_len)
{
const char *msg = "Variable is not locked";
bool *lock = &((bool *) MEMTOK (token))[index];
@@ -3014,15 +3015,15 @@ _gfortran_caf_unlock (caf_token_t token, size_t index,
*stat = 1;
if (errmsg_len > 0)
{
- int len = ((int) sizeof (msg) > errmsg_len) ? errmsg_len
- : (int) sizeof (msg);
+ size_t len = (sizeof (msg) > errmsg_len) ? errmsg_len
+ : sizeof (msg);
memcpy (errmsg, msg, len);
if (errmsg_len > len)
memset (&errmsg[len], ' ', errmsg_len-len);
}
return;
}
- _gfortran_caf_error_stop_str (msg, (int32_t) strlen (msg));
+ _gfortran_caf_error_stop_str (msg, strlen (msg));
}
int
diff --git a/libgfortran/libgfortran.h b/libgfortran/libgfortran.h
index 38e364f1012..072dc869be8 100644
--- a/libgfortran/libgfortran.h
+++ b/libgfortran/libgfortran.h
@@ -888,7 +888,7 @@ internal_proto(filename_from_unit);
/* stop.c */
-extern _Noreturn void stop_string (const char *, GFC_INTEGER_4);
+extern _Noreturn void stop_string (const char *, size_t);
export_proto(stop_string);
/* reshape_packed.c */
diff --git a/libgfortran/runtime/stop.c b/libgfortran/runtime/stop.c
index 6f8b62f8385..3ef1350c281 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);
}