@@ -42,6 +42,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
4242#include <alloca.h> /* Assume functionality provided elsewhere if missing */
4343#endif
4444#include <unistd.h>
45+ #include <stdint.h> /* For int32_t. */
4546#include <mpi.h>
4647#include <pthread.h>
4748#include <signal.h> /* For raise */
@@ -146,7 +147,7 @@ typedef MPI_Win *mpi_caf_token_t;
146147static void terminate_internal (int stat_code , int exit_code )
147148 __attribute__ ((noreturn ));
148149static void sync_images_internal (int count , int images [], int * stat ,
149- char * errmsg , int errmsg_len , bool internal );
150+ char * errmsg , size_t errmsg_len , bool internal );
150151
151152/* Global variables. */
152153static int caf_this_image ;
@@ -602,7 +603,7 @@ failed_stopped_errorhandler_function (MPI_Comm* pcomm, int* perr, ...)
602603#endif
603604
604605void mutex_lock (MPI_Win win , int image_index , int index , int * stat ,
605- int * acquired_lock , char * errmsg , int errmsg_len )
606+ int * acquired_lock , char * errmsg , size_t errmsg_len )
606607{
607608 const char msg [] = "Already locked" ;
608609#if MPI_VERSION >= 3
@@ -683,7 +684,7 @@ void mutex_lock(MPI_Win win, int image_index, int index, int *stat,
683684}
684685
685686void mutex_unlock (MPI_Win win , int image_index , int index , int * stat ,
686- char * errmsg , int errmsg_len )
687+ char * errmsg , size_t errmsg_len )
687688{
688689 const char msg [] = "Variable is not locked" ;
689690 if (stat != NULL )
@@ -1051,7 +1052,7 @@ PREFIX (num_images) (int distance __attribute__ ((unused)),
10511052void
10521053PREFIX (register) (size_t size , caf_register_t type , caf_token_t * token ,
10531054 gfc_descriptor_t * desc , int * stat , char * errmsg ,
1054- int errmsg_len )
1055+ charlen_t errmsg_len )
10551056{
10561057 /* int ierr; */
10571058 void * mem = NULL ;
@@ -1202,10 +1203,10 @@ PREFIX (register) (size_t size, caf_register_t type, caf_token_t *token,
12021203 * stat = caf_is_finalized ? STAT_STOPPED_IMAGE : 1 ;
12031204 if (errmsg_len > 0 )
12041205 {
1205- int len = (( int ) strlen (msg ) > errmsg_len ) ? errmsg_len
1206- : ( int ) strlen (msg );
1206+ size_t len = (strlen (msg ) > ( size_t ) errmsg_len ) ? ( size_t ) errmsg_len
1207+ : strlen (msg );
12071208 memcpy (errmsg , msg , len );
1208- if (errmsg_len > len )
1209+ if (( size_t ) errmsg_len > len )
12091210 memset (& errmsg [len ], ' ' , errmsg_len - len );
12101211 }
12111212 }
@@ -1216,7 +1217,7 @@ PREFIX (register) (size_t size, caf_register_t type, caf_token_t *token,
12161217#else // GCC_GE_7
12171218void *
12181219PREFIX (register) (size_t size , caf_register_t type , caf_token_t * token ,
1219- int * stat , char * errmsg , int errmsg_len )
1220+ int * stat , char * errmsg , charlen_t errmsg_len )
12201221{
12211222 /* int ierr; */
12221223 void * mem ;
@@ -1291,8 +1292,8 @@ PREFIX (register) (size_t size, caf_register_t type, caf_token_t *token,
12911292 * stat = caf_is_finalized ? STAT_STOPPED_IMAGE : 1 ;
12921293 if (errmsg_len > 0 )
12931294 {
1294- int len = (( int ) strlen (msg ) > errmsg_len ) ? errmsg_len
1295- : ( int ) strlen (msg );
1295+ size_t len = (strlen (msg ) > ( size_t ) errmsg_len ) ? ( size_t ) errmsg_len
1296+ : strlen (msg );
12961297 memcpy (errmsg , msg , len );
12971298 if (errmsg_len > len )
12981299 memset (& errmsg [len ], ' ' , errmsg_len - len );
@@ -1309,10 +1310,10 @@ PREFIX (register) (size_t size, caf_register_t type, caf_token_t *token,
13091310#ifdef GCC_GE_7
13101311void
13111312PREFIX (deregister ) (caf_token_t * token , int type , int * stat , char * errmsg ,
1312- int errmsg_len )
1313+ charlen_t errmsg_len )
13131314#else
13141315void
1315- PREFIX (deregister ) (caf_token_t * token , int * stat , char * errmsg , int errmsg_len )
1316+ PREFIX (deregister ) (caf_token_t * token , int * stat , char * errmsg , charlen_t errmsg_len )
13161317#endif
13171318{
13181319 dprint ("%d/%d: deregister(%p)\n" , caf_this_image , caf_num_images , * token );
@@ -1327,8 +1328,8 @@ PREFIX (deregister) (caf_token_t *token, int *stat, char *errmsg, int errmsg_len
13271328
13281329 if (errmsg_len > 0 )
13291330 {
1330- int len = (( int ) sizeof (msg ) - 1 > errmsg_len )
1331- ? errmsg_len : ( int ) sizeof (msg ) - 1 ;
1331+ size_t len = (sizeof (msg ) - 1 > ( size_t ) errmsg_len )
1332+ ? ( size_t ) errmsg_len : sizeof (msg ) - 1 ;
13321333 memcpy (errmsg , msg , len );
13331334 if (errmsg_len > len )
13341335 memset (& errmsg [len ], ' ' , errmsg_len - len );
@@ -1451,7 +1452,7 @@ PREFIX (deregister) (caf_token_t *token, int *stat, char *errmsg, int errmsg_len
14511452void
14521453PREFIX (sync_memory ) (int * stat __attribute__ ((unused )),
14531454 char * errmsg __attribute__ ((unused )),
1454- int errmsg_len __attribute__ ((unused )))
1455+ charlen_t errmsg_len __attribute__ ((unused )))
14551456{
14561457#if defined(NONBLOCKING_PUT ) && !defined(CAF_MPI_LOCK_UNLOCK )
14571458 explicit_flush ();
@@ -1460,7 +1461,7 @@ PREFIX (sync_memory) (int *stat __attribute__ ((unused)),
14601461
14611462
14621463void
1463- PREFIX (sync_all ) (int * stat , char * errmsg , int errmsg_len )
1464+ PREFIX (sync_all ) (int * stat , char * errmsg , charlen_t errmsg_len )
14641465{
14651466 int ierr = 0 ;
14661467
@@ -1505,8 +1506,8 @@ PREFIX (sync_all) (int *stat, char *errmsg, int errmsg_len)
15051506
15061507 if (errmsg_len > 0 )
15071508 {
1508- int len = (( int ) strlen (msg ) > errmsg_len ) ? errmsg_len
1509- : ( int ) strlen (msg );
1509+ size_t len = (strlen (msg ) > ( size_t ) errmsg_len ) ? ( size_t ) errmsg_len
1510+ : strlen (msg );
15101511 memcpy (errmsg , msg , len );
15111512 if (errmsg_len > len )
15121513 memset (& errmsg [len ], ' ' , errmsg_len - len );
@@ -6414,14 +6415,14 @@ PREFIX(is_present) (caf_token_t token, int image_index, caf_reference_t *refs)
64146415
64156416void
64166417PREFIX (sync_images ) (int count , int images [], int * stat , char * errmsg ,
6417- int errmsg_len )
6418+ charlen_t errmsg_len )
64186419{
64196420 sync_images_internal (count , images , stat , errmsg , errmsg_len , false);
64206421}
64216422
64226423static void
64236424sync_images_internal (int count , int images [], int * stat , char * errmsg ,
6424- int errmsg_len , bool internal )
6425+ size_t errmsg_len , bool internal )
64256426{
64266427 int ierr = 0 , i = 0 , j = 0 , int_zero = 0 , done_count = 0 ;
64276428 MPI_Status s ;
@@ -6574,8 +6575,8 @@ sync_images_internal (int count, int images[], int *stat, char *errmsg,
65746575
65756576 if (errmsg_len > 0 )
65766577 {
6577- int len = (( int ) strlen (msg ) > errmsg_len ) ? errmsg_len
6578- : ( int ) strlen (msg );
6578+ size_t len = (strlen (msg ) > errmsg_len ) ? errmsg_len
6579+ : strlen (msg );
65796580 memcpy (errmsg , msg , len );
65806581 if (errmsg_len > len )
65816582 memset (& errmsg [len ], ' ' , errmsg_len - len );
@@ -6770,7 +6771,7 @@ get_MPI_datatype (gfc_descriptor_t *desc, int char_len)
67706771
67716772static void
67726773internal_co_reduce (MPI_Op op , gfc_descriptor_t * source , int result_image , int * stat ,
6773- char * errmsg , int src_len , int errmsg_len )
6774+ char * errmsg , int src_len , size_t errmsg_len )
67746775{
67756776 size_t i , size ;
67766777 int j , ierr ;
@@ -6863,7 +6864,7 @@ internal_co_reduce (MPI_Op op, gfc_descriptor_t *source, int result_image, int *
68636864
68646865void
68656866PREFIX (co_broadcast ) (gfc_descriptor_t * a , int source_image , int * stat , char * errmsg ,
6866- int errmsg_len )
6867+ charlen_t errmsg_len )
68676868{
68686869 size_t i , size ;
68696870 int j , ierr ;
@@ -6963,7 +6964,7 @@ PREFIX (co_broadcast) (gfc_descriptor_t *a, int source_image, int *stat, char *e
69636964 * for use in MPI_*Reduce functions. */
69646965void
69656966PREFIX (co_reduce ) (gfc_descriptor_t * a , void * (* opr ) (void * , void * ), int opr_flags ,
6966- int result_image , int * stat , char * errmsg , int a_len , int errmsg_len )
6967+ int result_image , int * stat , char * errmsg , int a_len , charlen_t errmsg_len )
69676968{
69686969 MPI_Op op ;
69696970 /* Integers and logicals can be treated the same. */
@@ -7033,23 +7034,23 @@ PREFIX (co_reduce) (gfc_descriptor_t *a, void *(*opr) (void *, void *), int opr_
70337034
70347035void
70357036PREFIX (co_sum ) (gfc_descriptor_t * a , int result_image , int * stat , char * errmsg ,
7036- int errmsg_len )
7037+ charlen_t errmsg_len )
70377038{
70387039 internal_co_reduce (MPI_SUM , a , result_image , stat , errmsg , 0 , errmsg_len );
70397040}
70407041
70417042
70427043void
70437044PREFIX (co_min ) (gfc_descriptor_t * a , int result_image , int * stat , char * errmsg ,
7044- int src_len , int errmsg_len )
7045+ int src_len , charlen_t errmsg_len )
70457046{
70467047 internal_co_reduce (MPI_MIN , a , result_image , stat , errmsg , src_len , errmsg_len );
70477048}
70487049
70497050
70507051void
70517052PREFIX (co_max ) (gfc_descriptor_t * a , int result_image , int * stat ,
7052- char * errmsg , int src_len , int errmsg_len )
7053+ char * errmsg , int src_len , charlen_t errmsg_len )
70537054{
70547055 internal_co_reduce (MPI_MAX , a , result_image , stat , errmsg , src_len , errmsg_len );
70557056}
@@ -7060,7 +7061,7 @@ PREFIX (co_max) (gfc_descriptor_t *a, int result_image, int *stat,
70607061void
70617062PREFIX (lock ) (caf_token_t token , size_t index , int image_index ,
70627063 int * acquired_lock , int * stat , char * errmsg ,
7063- int errmsg_len )
7064+ charlen_t errmsg_len )
70647065{
70657066 int dest_img ;
70667067 MPI_Win * p = TOKEN (token );
@@ -7076,7 +7077,7 @@ PREFIX (lock) (caf_token_t token, size_t index, int image_index,
70767077
70777078void
70787079PREFIX (unlock ) (caf_token_t token , size_t index , int image_index ,
7079- int * stat , char * errmsg , int errmsg_len )
7080+ int * stat , char * errmsg , charlen_t errmsg_len )
70807081{
70817082 int dest_img ;
70827083 MPI_Win * p = TOKEN (token );
@@ -7260,7 +7261,7 @@ PREFIX (atomic_op) (int op, caf_token_t token ,
72607261void
72617262PREFIX (event_post ) (caf_token_t token , size_t index ,
72627263 int image_index , int * stat ,
7263- char * errmsg , int errmsg_len )
7264+ char * errmsg , charlen_t errmsg_len )
72647265{
72657266 int image , value = 1 , ierr = 0 ,flag ;
72667267 MPI_Win * p = TOKEN (token );
@@ -7303,7 +7304,7 @@ PREFIX (event_post) (caf_token_t token, size_t index,
73037304void
73047305PREFIX (event_wait ) (caf_token_t token , size_t index ,
73057306 int until_count , int * stat ,
7306- char * errmsg , int errmsg_len )
7307+ char * errmsg , charlen_t errmsg_len )
73077308{
73087309 int ierr = 0 , count = 0 , i , image = caf_this_image - 1 ;
73097310 int * var = NULL , flag , old = 0 ;
@@ -7407,7 +7408,7 @@ terminate_internal (int stat_code, int exit_code)
74077408/* STOP function for integer arguments. */
74087409
74097410void
7410- PREFIX (stop_numeric ) (int32_t stop_code )
7411+ PREFIX (stop_numeric ) (int stop_code )
74117412{
74127413 fprintf (stderr , "STOP %d\n" , stop_code );
74137414
@@ -7420,7 +7421,7 @@ PREFIX (stop_numeric) (int32_t stop_code)
74207421/* STOP function for string arguments. */
74217422
74227423void
7423- PREFIX (stop_str ) (const char * string , int32_t len )
7424+ PREFIX (stop_str ) (const char * string , charlen_t len )
74247425{
74257426 fputs ("STOP " , stderr );
74267427 while (len -- )
@@ -7435,7 +7436,7 @@ PREFIX (stop_str) (const char *string, int32_t len)
74357436/* ERROR STOP function for string arguments. */
74367437
74377438void
7438- PREFIX (error_stop_str ) (const char * string , int32_t len )
7439+ PREFIX (error_stop_str ) (const char * string , charlen_t len )
74397440{
74407441 fputs ("ERROR STOP " , stderr );
74417442 while (len -- )
@@ -7449,7 +7450,7 @@ PREFIX (error_stop_str) (const char *string, int32_t len)
74497450/* ERROR STOP function for numerical arguments. */
74507451
74517452void
7452- PREFIX (error_stop ) (int32_t error )
7453+ PREFIX (error_stop ) (int error )
74537454{
74547455 fprintf (stderr , "ERROR STOP %d\n" , error );
74557456
0 commit comments