@@ -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 );
@@ -6420,14 +6421,14 @@ PREFIX(is_present) (caf_token_t token, int image_index, caf_reference_t *refs)
64206421
64216422void
64226423PREFIX (sync_images ) (int count , int images [], int * stat , char * errmsg ,
6423- int errmsg_len )
6424+ charlen_t errmsg_len )
64246425{
64256426 sync_images_internal (count , images , stat , errmsg , errmsg_len , false);
64266427}
64276428
64286429static void
64296430sync_images_internal (int count , int images [], int * stat , char * errmsg ,
6430- int errmsg_len , bool internal )
6431+ size_t errmsg_len , bool internal )
64316432{
64326433 int ierr = 0 , i = 0 , j = 0 , int_zero = 0 , done_count = 0 ;
64336434 MPI_Status s ;
@@ -6580,8 +6581,8 @@ sync_images_internal (int count, int images[], int *stat, char *errmsg,
65806581
65816582 if (errmsg_len > 0 )
65826583 {
6583- int len = (( int ) strlen (msg ) > errmsg_len ) ? errmsg_len
6584- : ( int ) strlen (msg );
6584+ size_t len = (strlen (msg ) > errmsg_len ) ? errmsg_len
6585+ : strlen (msg );
65856586 memcpy (errmsg , msg , len );
65866587 if (errmsg_len > len )
65876588 memset (& errmsg [len ], ' ' , errmsg_len - len );
@@ -6776,7 +6777,7 @@ get_MPI_datatype (gfc_descriptor_t *desc, int char_len)
67766777
67776778static void
67786779internal_co_reduce (MPI_Op op , gfc_descriptor_t * source , int result_image , int * stat ,
6779- char * errmsg , int src_len , int errmsg_len )
6780+ char * errmsg , int src_len , size_t errmsg_len )
67806781{
67816782 size_t i , size ;
67826783 int j , ierr ;
@@ -6869,7 +6870,7 @@ internal_co_reduce (MPI_Op op, gfc_descriptor_t *source, int result_image, int *
68696870
68706871void
68716872PREFIX (co_broadcast ) (gfc_descriptor_t * a , int source_image , int * stat , char * errmsg ,
6872- int errmsg_len )
6873+ charlen_t errmsg_len )
68736874{
68746875 size_t i , size ;
68756876 int j , ierr ;
@@ -6969,7 +6970,7 @@ PREFIX (co_broadcast) (gfc_descriptor_t *a, int source_image, int *stat, char *e
69696970 * for use in MPI_*Reduce functions. */
69706971void
69716972PREFIX (co_reduce ) (gfc_descriptor_t * a , void * (* opr ) (void * , void * ), int opr_flags ,
6972- int result_image , int * stat , char * errmsg , int a_len , int errmsg_len )
6973+ int result_image , int * stat , char * errmsg , int a_len , charlen_t errmsg_len )
69736974{
69746975 MPI_Op op ;
69756976 /* Integers and logicals can be treated the same. */
@@ -7039,23 +7040,23 @@ PREFIX (co_reduce) (gfc_descriptor_t *a, void *(*opr) (void *, void *), int opr_
70397040
70407041void
70417042PREFIX (co_sum ) (gfc_descriptor_t * a , int result_image , int * stat , char * errmsg ,
7042- int errmsg_len )
7043+ charlen_t errmsg_len )
70437044{
70447045 internal_co_reduce (MPI_SUM , a , result_image , stat , errmsg , 0 , errmsg_len );
70457046}
70467047
70477048
70487049void
70497050PREFIX (co_min ) (gfc_descriptor_t * a , int result_image , int * stat , char * errmsg ,
7050- int src_len , int errmsg_len )
7051+ int src_len , charlen_t errmsg_len )
70517052{
70527053 internal_co_reduce (MPI_MIN , a , result_image , stat , errmsg , src_len , errmsg_len );
70537054}
70547055
70557056
70567057void
70577058PREFIX (co_max ) (gfc_descriptor_t * a , int result_image , int * stat ,
7058- char * errmsg , int src_len , int errmsg_len )
7059+ char * errmsg , int src_len , charlen_t errmsg_len )
70597060{
70607061 internal_co_reduce (MPI_MAX , a , result_image , stat , errmsg , src_len , errmsg_len );
70617062}
@@ -7066,7 +7067,7 @@ PREFIX (co_max) (gfc_descriptor_t *a, int result_image, int *stat,
70667067void
70677068PREFIX (lock ) (caf_token_t token , size_t index , int image_index ,
70687069 int * acquired_lock , int * stat , char * errmsg ,
7069- int errmsg_len )
7070+ charlen_t errmsg_len )
70707071{
70717072 int dest_img ;
70727073 MPI_Win * p = TOKEN (token );
@@ -7082,7 +7083,7 @@ PREFIX (lock) (caf_token_t token, size_t index, int image_index,
70827083
70837084void
70847085PREFIX (unlock ) (caf_token_t token , size_t index , int image_index ,
7085- int * stat , char * errmsg , int errmsg_len )
7086+ int * stat , char * errmsg , charlen_t errmsg_len )
70867087{
70877088 int dest_img ;
70887089 MPI_Win * p = TOKEN (token );
@@ -7266,7 +7267,7 @@ PREFIX (atomic_op) (int op, caf_token_t token ,
72667267void
72677268PREFIX (event_post ) (caf_token_t token , size_t index ,
72687269 int image_index , int * stat ,
7269- char * errmsg , int errmsg_len )
7270+ char * errmsg , charlen_t errmsg_len )
72707271{
72717272 int image , value = 1 , ierr = 0 ,flag ;
72727273 MPI_Win * p = TOKEN (token );
@@ -7309,7 +7310,7 @@ PREFIX (event_post) (caf_token_t token, size_t index,
73097310void
73107311PREFIX (event_wait ) (caf_token_t token , size_t index ,
73117312 int until_count , int * stat ,
7312- char * errmsg , int errmsg_len )
7313+ char * errmsg , charlen_t errmsg_len )
73137314{
73147315 int ierr = 0 , count = 0 , i , image = caf_this_image - 1 ;
73157316 int * var = NULL , flag , old = 0 ;
@@ -7413,7 +7414,7 @@ terminate_internal (int stat_code, int exit_code)
74137414/* STOP function for integer arguments. */
74147415
74157416void
7416- PREFIX (stop_numeric ) (int32_t stop_code )
7417+ PREFIX (stop_numeric ) (int stop_code )
74177418{
74187419 fprintf (stderr , "STOP %d\n" , stop_code );
74197420
@@ -7426,7 +7427,7 @@ PREFIX (stop_numeric) (int32_t stop_code)
74267427/* STOP function for string arguments. */
74277428
74287429void
7429- PREFIX (stop_str ) (const char * string , int32_t len )
7430+ PREFIX (stop_str ) (const char * string , charlen_t len )
74307431{
74317432 fputs ("STOP " , stderr );
74327433 while (len -- )
@@ -7441,7 +7442,7 @@ PREFIX (stop_str) (const char *string, int32_t len)
74417442/* ERROR STOP function for string arguments. */
74427443
74437444void
7444- PREFIX (error_stop_str ) (const char * string , int32_t len )
7445+ PREFIX (error_stop_str ) (const char * string , charlen_t len )
74457446{
74467447 fputs ("ERROR STOP " , stderr );
74477448 while (len -- )
@@ -7455,7 +7456,7 @@ PREFIX (error_stop_str) (const char *string, int32_t len)
74557456/* ERROR STOP function for numerical arguments. */
74567457
74577458void
7458- PREFIX (error_stop ) (int32_t error )
7459+ PREFIX (error_stop ) (int error )
74597460{
74607461 fprintf (stderr , "ERROR STOP %d\n" , error );
74617462
0 commit comments