@@ -42,6 +42,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
42
42
#include <alloca.h> /* Assume functionality provided elsewhere if missing */
43
43
#endif
44
44
#include <unistd.h>
45
+ #include <stdint.h> /* For int32_t. */
45
46
#include <mpi.h>
46
47
#include <pthread.h>
47
48
#include <signal.h> /* For raise */
@@ -146,7 +147,7 @@ typedef MPI_Win *mpi_caf_token_t;
146
147
static void terminate_internal (int stat_code , int exit_code )
147
148
__attribute__ ((noreturn ));
148
149
static 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 );
150
151
151
152
/* Global variables. */
152
153
static int caf_this_image ;
@@ -602,7 +603,7 @@ failed_stopped_errorhandler_function (MPI_Comm* pcomm, int* perr, ...)
602
603
#endif
603
604
604
605
void 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 )
606
607
{
607
608
const char msg [] = "Already locked" ;
608
609
#if MPI_VERSION >= 3
@@ -683,7 +684,7 @@ void mutex_lock(MPI_Win win, int image_index, int index, int *stat,
683
684
}
684
685
685
686
void 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 )
687
688
{
688
689
const char msg [] = "Variable is not locked" ;
689
690
if (stat != NULL )
@@ -1051,7 +1052,7 @@ PREFIX (num_images) (int distance __attribute__ ((unused)),
1051
1052
void
1052
1053
PREFIX (register) (size_t size , caf_register_t type , caf_token_t * token ,
1053
1054
gfc_descriptor_t * desc , int * stat , char * errmsg ,
1054
- int errmsg_len )
1055
+ charlen_t errmsg_len )
1055
1056
{
1056
1057
/* int ierr; */
1057
1058
void * mem = NULL ;
@@ -1202,10 +1203,10 @@ PREFIX (register) (size_t size, caf_register_t type, caf_token_t *token,
1202
1203
* stat = caf_is_finalized ? STAT_STOPPED_IMAGE : 1 ;
1203
1204
if (errmsg_len > 0 )
1204
1205
{
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 );
1207
1208
memcpy (errmsg , msg , len );
1208
- if (errmsg_len > len )
1209
+ if (( size_t ) errmsg_len > len )
1209
1210
memset (& errmsg [len ], ' ' , errmsg_len - len );
1210
1211
}
1211
1212
}
@@ -1216,7 +1217,7 @@ PREFIX (register) (size_t size, caf_register_t type, caf_token_t *token,
1216
1217
#else // GCC_GE_7
1217
1218
void *
1218
1219
PREFIX (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 )
1220
1221
{
1221
1222
/* int ierr; */
1222
1223
void * mem ;
@@ -1291,8 +1292,8 @@ PREFIX (register) (size_t size, caf_register_t type, caf_token_t *token,
1291
1292
* stat = caf_is_finalized ? STAT_STOPPED_IMAGE : 1 ;
1292
1293
if (errmsg_len > 0 )
1293
1294
{
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 );
1296
1297
memcpy (errmsg , msg , len );
1297
1298
if (errmsg_len > len )
1298
1299
memset (& errmsg [len ], ' ' , errmsg_len - len );
@@ -1309,10 +1310,10 @@ PREFIX (register) (size_t size, caf_register_t type, caf_token_t *token,
1309
1310
#ifdef GCC_GE_7
1310
1311
void
1311
1312
PREFIX (deregister ) (caf_token_t * token , int type , int * stat , char * errmsg ,
1312
- int errmsg_len )
1313
+ charlen_t errmsg_len )
1313
1314
#else
1314
1315
void
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 )
1316
1317
#endif
1317
1318
{
1318
1319
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
1327
1328
1328
1329
if (errmsg_len > 0 )
1329
1330
{
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 ;
1332
1333
memcpy (errmsg , msg , len );
1333
1334
if (errmsg_len > len )
1334
1335
memset (& errmsg [len ], ' ' , errmsg_len - len );
@@ -1451,7 +1452,7 @@ PREFIX (deregister) (caf_token_t *token, int *stat, char *errmsg, int errmsg_len
1451
1452
void
1452
1453
PREFIX (sync_memory ) (int * stat __attribute__ ((unused )),
1453
1454
char * errmsg __attribute__ ((unused )),
1454
- int errmsg_len __attribute__ ((unused )))
1455
+ charlen_t errmsg_len __attribute__ ((unused )))
1455
1456
{
1456
1457
#if defined(NONBLOCKING_PUT ) && !defined(CAF_MPI_LOCK_UNLOCK )
1457
1458
explicit_flush ();
@@ -1460,7 +1461,7 @@ PREFIX (sync_memory) (int *stat __attribute__ ((unused)),
1460
1461
1461
1462
1462
1463
void
1463
- PREFIX (sync_all ) (int * stat , char * errmsg , int errmsg_len )
1464
+ PREFIX (sync_all ) (int * stat , char * errmsg , charlen_t errmsg_len )
1464
1465
{
1465
1466
int ierr = 0 ;
1466
1467
@@ -1505,8 +1506,8 @@ PREFIX (sync_all) (int *stat, char *errmsg, int errmsg_len)
1505
1506
1506
1507
if (errmsg_len > 0 )
1507
1508
{
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 );
1510
1511
memcpy (errmsg , msg , len );
1511
1512
if (errmsg_len > len )
1512
1513
memset (& errmsg [len ], ' ' , errmsg_len - len );
@@ -6414,14 +6415,14 @@ PREFIX(is_present) (caf_token_t token, int image_index, caf_reference_t *refs)
6414
6415
6415
6416
void
6416
6417
PREFIX (sync_images ) (int count , int images [], int * stat , char * errmsg ,
6417
- int errmsg_len )
6418
+ charlen_t errmsg_len )
6418
6419
{
6419
6420
sync_images_internal (count , images , stat , errmsg , errmsg_len , false);
6420
6421
}
6421
6422
6422
6423
static void
6423
6424
sync_images_internal (int count , int images [], int * stat , char * errmsg ,
6424
- int errmsg_len , bool internal )
6425
+ size_t errmsg_len , bool internal )
6425
6426
{
6426
6427
int ierr = 0 , i = 0 , j = 0 , int_zero = 0 , done_count = 0 ;
6427
6428
MPI_Status s ;
@@ -6574,8 +6575,8 @@ sync_images_internal (int count, int images[], int *stat, char *errmsg,
6574
6575
6575
6576
if (errmsg_len > 0 )
6576
6577
{
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 );
6579
6580
memcpy (errmsg , msg , len );
6580
6581
if (errmsg_len > len )
6581
6582
memset (& errmsg [len ], ' ' , errmsg_len - len );
@@ -6770,7 +6771,7 @@ get_MPI_datatype (gfc_descriptor_t *desc, int char_len)
6770
6771
6771
6772
static void
6772
6773
internal_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 )
6774
6775
{
6775
6776
size_t i , size ;
6776
6777
int j , ierr ;
@@ -6863,7 +6864,7 @@ internal_co_reduce (MPI_Op op, gfc_descriptor_t *source, int result_image, int *
6863
6864
6864
6865
void
6865
6866
PREFIX (co_broadcast ) (gfc_descriptor_t * a , int source_image , int * stat , char * errmsg ,
6866
- int errmsg_len )
6867
+ charlen_t errmsg_len )
6867
6868
{
6868
6869
size_t i , size ;
6869
6870
int j , ierr ;
@@ -6963,7 +6964,7 @@ PREFIX (co_broadcast) (gfc_descriptor_t *a, int source_image, int *stat, char *e
6963
6964
* for use in MPI_*Reduce functions. */
6964
6965
void
6965
6966
PREFIX (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 )
6967
6968
{
6968
6969
MPI_Op op ;
6969
6970
/* 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_
7033
7034
7034
7035
void
7035
7036
PREFIX (co_sum ) (gfc_descriptor_t * a , int result_image , int * stat , char * errmsg ,
7036
- int errmsg_len )
7037
+ charlen_t errmsg_len )
7037
7038
{
7038
7039
internal_co_reduce (MPI_SUM , a , result_image , stat , errmsg , 0 , errmsg_len );
7039
7040
}
7040
7041
7041
7042
7042
7043
void
7043
7044
PREFIX (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 )
7045
7046
{
7046
7047
internal_co_reduce (MPI_MIN , a , result_image , stat , errmsg , src_len , errmsg_len );
7047
7048
}
7048
7049
7049
7050
7050
7051
void
7051
7052
PREFIX (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 )
7053
7054
{
7054
7055
internal_co_reduce (MPI_MAX , a , result_image , stat , errmsg , src_len , errmsg_len );
7055
7056
}
@@ -7060,7 +7061,7 @@ PREFIX (co_max) (gfc_descriptor_t *a, int result_image, int *stat,
7060
7061
void
7061
7062
PREFIX (lock ) (caf_token_t token , size_t index , int image_index ,
7062
7063
int * acquired_lock , int * stat , char * errmsg ,
7063
- int errmsg_len )
7064
+ charlen_t errmsg_len )
7064
7065
{
7065
7066
int dest_img ;
7066
7067
MPI_Win * p = TOKEN (token );
@@ -7076,7 +7077,7 @@ PREFIX (lock) (caf_token_t token, size_t index, int image_index,
7076
7077
7077
7078
void
7078
7079
PREFIX (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 )
7080
7081
{
7081
7082
int dest_img ;
7082
7083
MPI_Win * p = TOKEN (token );
@@ -7260,7 +7261,7 @@ PREFIX (atomic_op) (int op, caf_token_t token ,
7260
7261
void
7261
7262
PREFIX (event_post ) (caf_token_t token , size_t index ,
7262
7263
int image_index , int * stat ,
7263
- char * errmsg , int errmsg_len )
7264
+ char * errmsg , charlen_t errmsg_len )
7264
7265
{
7265
7266
int image , value = 1 , ierr = 0 ,flag ;
7266
7267
MPI_Win * p = TOKEN (token );
@@ -7303,7 +7304,7 @@ PREFIX (event_post) (caf_token_t token, size_t index,
7303
7304
void
7304
7305
PREFIX (event_wait ) (caf_token_t token , size_t index ,
7305
7306
int until_count , int * stat ,
7306
- char * errmsg , int errmsg_len )
7307
+ char * errmsg , charlen_t errmsg_len )
7307
7308
{
7308
7309
int ierr = 0 , count = 0 , i , image = caf_this_image - 1 ;
7309
7310
int * var = NULL , flag , old = 0 ;
@@ -7407,7 +7408,7 @@ terminate_internal (int stat_code, int exit_code)
7407
7408
/* STOP function for integer arguments. */
7408
7409
7409
7410
void
7410
- PREFIX (stop_numeric ) (int32_t stop_code )
7411
+ PREFIX (stop_numeric ) (int stop_code )
7411
7412
{
7412
7413
fprintf (stderr , "STOP %d\n" , stop_code );
7413
7414
@@ -7420,7 +7421,7 @@ PREFIX (stop_numeric) (int32_t stop_code)
7420
7421
/* STOP function for string arguments. */
7421
7422
7422
7423
void
7423
- PREFIX (stop_str ) (const char * string , int32_t len )
7424
+ PREFIX (stop_str ) (const char * string , charlen_t len )
7424
7425
{
7425
7426
fputs ("STOP " , stderr );
7426
7427
while (len -- )
@@ -7435,7 +7436,7 @@ PREFIX (stop_str) (const char *string, int32_t len)
7435
7436
/* ERROR STOP function for string arguments. */
7436
7437
7437
7438
void
7438
- PREFIX (error_stop_str ) (const char * string , int32_t len )
7439
+ PREFIX (error_stop_str ) (const char * string , charlen_t len )
7439
7440
{
7440
7441
fputs ("ERROR STOP " , stderr );
7441
7442
while (len -- )
@@ -7449,7 +7450,7 @@ PREFIX (error_stop_str) (const char *string, int32_t len)
7449
7450
/* ERROR STOP function for numerical arguments. */
7450
7451
7451
7452
void
7452
- PREFIX (error_stop ) (int32_t error )
7453
+ PREFIX (error_stop ) (int error )
7453
7454
{
7454
7455
fprintf (stderr , "ERROR STOP %d\n" , error );
7455
7456
0 commit comments