@@ -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 );
@@ -6420,14 +6421,14 @@ PREFIX(is_present) (caf_token_t token, int image_index, caf_reference_t *refs)
6420
6421
6421
6422
void
6422
6423
PREFIX (sync_images ) (int count , int images [], int * stat , char * errmsg ,
6423
- int errmsg_len )
6424
+ charlen_t errmsg_len )
6424
6425
{
6425
6426
sync_images_internal (count , images , stat , errmsg , errmsg_len , false);
6426
6427
}
6427
6428
6428
6429
static void
6429
6430
sync_images_internal (int count , int images [], int * stat , char * errmsg ,
6430
- int errmsg_len , bool internal )
6431
+ size_t errmsg_len , bool internal )
6431
6432
{
6432
6433
int ierr = 0 , i = 0 , j = 0 , int_zero = 0 , done_count = 0 ;
6433
6434
MPI_Status s ;
@@ -6580,8 +6581,8 @@ sync_images_internal (int count, int images[], int *stat, char *errmsg,
6580
6581
6581
6582
if (errmsg_len > 0 )
6582
6583
{
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 );
6585
6586
memcpy (errmsg , msg , len );
6586
6587
if (errmsg_len > len )
6587
6588
memset (& errmsg [len ], ' ' , errmsg_len - len );
@@ -6776,7 +6777,7 @@ get_MPI_datatype (gfc_descriptor_t *desc, int char_len)
6776
6777
6777
6778
static void
6778
6779
internal_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 )
6780
6781
{
6781
6782
size_t i , size ;
6782
6783
int j , ierr ;
@@ -6869,7 +6870,7 @@ internal_co_reduce (MPI_Op op, gfc_descriptor_t *source, int result_image, int *
6869
6870
6870
6871
void
6871
6872
PREFIX (co_broadcast ) (gfc_descriptor_t * a , int source_image , int * stat , char * errmsg ,
6872
- int errmsg_len )
6873
+ charlen_t errmsg_len )
6873
6874
{
6874
6875
size_t i , size ;
6875
6876
int j , ierr ;
@@ -6969,7 +6970,7 @@ PREFIX (co_broadcast) (gfc_descriptor_t *a, int source_image, int *stat, char *e
6969
6970
* for use in MPI_*Reduce functions. */
6970
6971
void
6971
6972
PREFIX (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 )
6973
6974
{
6974
6975
MPI_Op op ;
6975
6976
/* 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_
7039
7040
7040
7041
void
7041
7042
PREFIX (co_sum ) (gfc_descriptor_t * a , int result_image , int * stat , char * errmsg ,
7042
- int errmsg_len )
7043
+ charlen_t errmsg_len )
7043
7044
{
7044
7045
internal_co_reduce (MPI_SUM , a , result_image , stat , errmsg , 0 , errmsg_len );
7045
7046
}
7046
7047
7047
7048
7048
7049
void
7049
7050
PREFIX (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 )
7051
7052
{
7052
7053
internal_co_reduce (MPI_MIN , a , result_image , stat , errmsg , src_len , errmsg_len );
7053
7054
}
7054
7055
7055
7056
7056
7057
void
7057
7058
PREFIX (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 )
7059
7060
{
7060
7061
internal_co_reduce (MPI_MAX , a , result_image , stat , errmsg , src_len , errmsg_len );
7061
7062
}
@@ -7066,7 +7067,7 @@ PREFIX (co_max) (gfc_descriptor_t *a, int result_image, int *stat,
7066
7067
void
7067
7068
PREFIX (lock ) (caf_token_t token , size_t index , int image_index ,
7068
7069
int * acquired_lock , int * stat , char * errmsg ,
7069
- int errmsg_len )
7070
+ charlen_t errmsg_len )
7070
7071
{
7071
7072
int dest_img ;
7072
7073
MPI_Win * p = TOKEN (token );
@@ -7082,7 +7083,7 @@ PREFIX (lock) (caf_token_t token, size_t index, int image_index,
7082
7083
7083
7084
void
7084
7085
PREFIX (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 )
7086
7087
{
7087
7088
int dest_img ;
7088
7089
MPI_Win * p = TOKEN (token );
@@ -7266,7 +7267,7 @@ PREFIX (atomic_op) (int op, caf_token_t token ,
7266
7267
void
7267
7268
PREFIX (event_post ) (caf_token_t token , size_t index ,
7268
7269
int image_index , int * stat ,
7269
- char * errmsg , int errmsg_len )
7270
+ char * errmsg , charlen_t errmsg_len )
7270
7271
{
7271
7272
int image , value = 1 , ierr = 0 ,flag ;
7272
7273
MPI_Win * p = TOKEN (token );
@@ -7309,7 +7310,7 @@ PREFIX (event_post) (caf_token_t token, size_t index,
7309
7310
void
7310
7311
PREFIX (event_wait ) (caf_token_t token , size_t index ,
7311
7312
int until_count , int * stat ,
7312
- char * errmsg , int errmsg_len )
7313
+ char * errmsg , charlen_t errmsg_len )
7313
7314
{
7314
7315
int ierr = 0 , count = 0 , i , image = caf_this_image - 1 ;
7315
7316
int * var = NULL , flag , old = 0 ;
@@ -7413,7 +7414,7 @@ terminate_internal (int stat_code, int exit_code)
7413
7414
/* STOP function for integer arguments. */
7414
7415
7415
7416
void
7416
- PREFIX (stop_numeric ) (int32_t stop_code )
7417
+ PREFIX (stop_numeric ) (int stop_code )
7417
7418
{
7418
7419
fprintf (stderr , "STOP %d\n" , stop_code );
7419
7420
@@ -7426,7 +7427,7 @@ PREFIX (stop_numeric) (int32_t stop_code)
7426
7427
/* STOP function for string arguments. */
7427
7428
7428
7429
void
7429
- PREFIX (stop_str ) (const char * string , int32_t len )
7430
+ PREFIX (stop_str ) (const char * string , charlen_t len )
7430
7431
{
7431
7432
fputs ("STOP " , stderr );
7432
7433
while (len -- )
@@ -7441,7 +7442,7 @@ PREFIX (stop_str) (const char *string, int32_t len)
7441
7442
/* ERROR STOP function for string arguments. */
7442
7443
7443
7444
void
7444
- PREFIX (error_stop_str ) (const char * string , int32_t len )
7445
+ PREFIX (error_stop_str ) (const char * string , charlen_t len )
7445
7446
{
7446
7447
fputs ("ERROR STOP " , stderr );
7447
7448
while (len -- )
@@ -7455,7 +7456,7 @@ PREFIX (error_stop_str) (const char *string, int32_t len)
7455
7456
/* ERROR STOP function for numerical arguments. */
7456
7457
7457
7458
void
7458
- PREFIX (error_stop ) (int32_t error )
7459
+ PREFIX (error_stop ) (int error )
7459
7460
{
7460
7461
fprintf (stderr , "ERROR STOP %d\n" , error );
7461
7462
0 commit comments