@@ -4222,7 +4222,7 @@ get_for_ref(caf_reference_t *ref, size_t *i, size_t dst_index,
4222
4222
GFC_DESCRIPTOR_RANK (src ), ref_rank );
4223
4223
for (int r = 0 ; r < GFC_DESCRIPTOR_RANK (src ); ++ r )
4224
4224
{
4225
- dprint ("remote desc dim[%d] = (lb = %zd, ub = %zd, stride = %zd)\n" ,
4225
+ dprint ("remote desc dim[%d] = (lb= %zd, ub= %zd, stride= %zd)\n" ,
4226
4226
r , src -> dim [r ].lower_bound , src -> dim [r ]._ubound ,
4227
4227
src -> dim [r ]._stride );
4228
4228
}
@@ -4676,15 +4676,14 @@ PREFIX(get_by_ref) (caf_token_t token, int image_index,
4676
4676
GFC_DESCRIPTOR_RANK (src ), ref_rank );
4677
4677
for (i = 0 ; i < GFC_DESCRIPTOR_RANK (src ); ++ i )
4678
4678
{
4679
- dprint ("remote desc dim[%zd] = (lb = %zd, ub = %zd, stride = %zd)\n" ,
4679
+ dprint ("remote desc dim[%zd] = (lb= %zd, ub= %zd, stride= %zd)\n" ,
4680
4680
i , src -> dim [i ].lower_bound , src -> dim [i ]._ubound ,
4681
4681
src -> dim [i ]._stride );
4682
4682
}
4683
4683
#endif
4684
4684
for (i = 0 ; riter -> u .a .mode [i ] != CAF_ARR_REF_NONE ; ++ i )
4685
4685
{
4686
4686
array_ref = riter -> u .a .mode [i ];
4687
- dprint ("i = %zd, array_ref = %s\n" , i , caf_array_ref_str [array_ref ]);
4688
4687
switch (array_ref )
4689
4688
{
4690
4689
case CAF_ARR_REF_VECTOR :
@@ -4755,6 +4754,8 @@ case kind: \
4755
4754
caf_runtime_error (unknownarrreftype , stat , NULL , 0 );
4756
4755
return ;
4757
4756
}
4757
+ dprint ("i = %zd, array_ref = %s, delta = %ld\n" , i ,
4758
+ caf_array_ref_str [array_ref ], delta );
4758
4759
if (delta <= 0 )
4759
4760
return ;
4760
4761
/* Check the various properties of the destination array.
@@ -4776,7 +4777,7 @@ case kind: \
4776
4777
return ;
4777
4778
}
4778
4779
/* Do further checks, when the source is not scalar. */
4779
- else if (delta != 1 )
4780
+ else if (delta != 1 || realloc_required )
4780
4781
{
4781
4782
/* Check that the extent is not scalar and we are not in an array
4782
4783
* ref for the dst side. */
@@ -4820,7 +4821,7 @@ case kind: \
4820
4821
GFC_DESCRIPTOR_EXTENT (dst , dst_cur_dim ) != delta ;
4821
4822
/* When it already known, that a realloc is needed or the extent
4822
4823
* does not match the needed one. */
4823
- if (realloc_required || realloc_needed || extent_mismatch )
4824
+ if (realloc_needed || extent_mismatch )
4824
4825
{
4825
4826
/* Check whether dst is reallocatable. */
4826
4827
if (unlikely (!dst_reallocatable ))
@@ -4872,7 +4873,6 @@ case kind: \
4872
4873
for (i = 0 ; riter -> u .a .mode [i ] != CAF_ARR_REF_NONE ; ++ i )
4873
4874
{
4874
4875
array_ref = riter -> u .a .mode [i ];
4875
- dprint ("i = %zd, array_ref = %s\n" , i , caf_array_ref_str [array_ref ]);
4876
4876
switch (array_ref )
4877
4877
{
4878
4878
case CAF_ARR_REF_VECTOR :
@@ -4927,6 +4927,8 @@ case kind: \
4927
4927
caf_runtime_error (unknownarrreftype , stat , NULL , 0 );
4928
4928
return ;
4929
4929
}
4930
+ dprint ("i = %zd, array_ref = %s, delta = %ld\n" ,
4931
+ i , caf_array_ref_str [array_ref ], delta );
4930
4932
if (delta <= 0 )
4931
4933
return ;
4932
4934
/* Check the various properties of the destination array.
@@ -4940,15 +4942,15 @@ case kind: \
4940
4942
/* When dst is an array. */
4941
4943
if (dst_rank > 0 )
4942
4944
{
4943
- /* Check that dst_cur_dim is valid for dst. Can be superceeded
4945
+ /* Check that dst_cur_dim is valid for dst. Can be superceeded
4944
4946
* only by scalar data. */
4945
4947
if (dst_cur_dim >= dst_rank && delta != 1 )
4946
4948
{
4947
4949
caf_runtime_error (rankoutofrange , stat , NULL , 0 );
4948
4950
return ;
4949
4951
}
4950
4952
/* Do further checks, when the source is not scalar. */
4951
- else if (delta != 1 )
4953
+ else if (delta != 1 || realloc_required )
4952
4954
{
4953
4955
/* Check that the extent is not scalar and we are not in an array
4954
4956
* ref for the dst side. */
@@ -4975,7 +4977,7 @@ case kind: \
4975
4977
GFC_DESCRIPTOR_EXTENT (dst , dst_cur_dim ) != delta ;
4976
4978
/* When it is already known, that a realloc is needed or
4977
4979
* the extent does not match the needed one. */
4978
- if (realloc_required || realloc_needed || extent_mismatch )
4980
+ if (realloc_needed || extent_mismatch )
4979
4981
{
4980
4982
/* Check whether dst is reallocatable. */
4981
4983
if (unlikely (!dst_reallocatable ))
@@ -5061,8 +5063,8 @@ case kind: \
5061
5063
remote_memptr = mpi_token -> memptr ;
5062
5064
dst_index = 0 ;
5063
5065
#ifdef EXTRA_DEBUG_OUTPUT
5064
- dprint ("dst_rank: %zd\n" , GFC_DESCRIPTOR_RANK ( dst ) );
5065
- for (i = 0 ; i < GFC_DESCRIPTOR_RANK ( dst ) ; ++ i )
5066
+ dprint ("dst_rank: %zd\n" , dst_rank );
5067
+ for (i = 0 ; i < dst_rank ; ++ i )
5066
5068
{
5067
5069
dprint ("dst_dim[%zd] = (%zd, %zd)\n" ,
5068
5070
i , dst -> dim [i ].lower_bound , dst -> dim [i ]._ubound );
@@ -5394,7 +5396,7 @@ send_for_ref(caf_reference_t *ref, size_t *i, size_t src_index,
5394
5396
GFC_DESCRIPTOR_RANK (src ), ref_rank );
5395
5397
for (int r = 0 ; r < GFC_DESCRIPTOR_RANK (src ); ++ r )
5396
5398
{
5397
- dprint ("remote desc dim[%d] = (lb = %zd, ub = %zd, stride = %zd)\n" ,
5399
+ dprint ("remote desc dim[%d] = (lb= %zd, ub= %zd, stride= %zd)\n" ,
5398
5400
r , src -> dim [r ].lower_bound , src -> dim [r ]._ubound ,
5399
5401
src -> dim [r ]._stride );
5400
5402
}
@@ -5882,15 +5884,14 @@ PREFIX(send_by_ref) (caf_token_t token, int image_index,
5882
5884
GFC_DESCRIPTOR_RANK (dst ), ref_rank );
5883
5885
for (i = 0 ; i < GFC_DESCRIPTOR_RANK (dst ); ++ i )
5884
5886
{
5885
- dprint ("remote desc dim[%zd] = (lb = %zd, ub = %zd, stride = %zd)\n" ,
5887
+ dprint ("remote desc dim[%zd] = (lb= %zd, ub= %zd, stride= %zd)\n" ,
5886
5888
i , dst -> dim [i ].lower_bound , dst -> dim [i ]._ubound ,
5887
5889
dst -> dim [i ]._stride );
5888
5890
}
5889
5891
#endif
5890
5892
for (i = 0 ; riter -> u .a .mode [i ] != CAF_ARR_REF_NONE ; ++ i )
5891
5893
{
5892
5894
array_ref = riter -> u .a .mode [i ];
5893
- dprint ("i = %zd, array_ref = %s\n" , i , caf_array_ref_str [array_ref ]);
5894
5895
switch (array_ref )
5895
5896
{
5896
5897
case CAF_ARR_REF_VECTOR :
@@ -5960,6 +5961,8 @@ case kind: \
5960
5961
caf_runtime_error (unknownarrreftype , stat , NULL , 0 );
5961
5962
return ;
5962
5963
} // switch
5964
+ dprint ("i = %zd, array_ref = %s, delta = %ld\n" ,
5965
+ i , caf_array_ref_str [array_ref ], delta );
5963
5966
if (delta <= 0 )
5964
5967
return ;
5965
5968
if (dst != NULL )
@@ -5975,7 +5978,7 @@ case kind: \
5975
5978
/* When dst is an array. */
5976
5979
if (dst_rank > 0 )
5977
5980
{
5978
- /* Check that src_cur_dim is valid for dst. Can be superceeded
5981
+ /* Check that src_cur_dim is valid for dst. Can be superceeded
5979
5982
* only by scalar data. */
5980
5983
if (src_cur_dim >= dst_rank && delta != 1 )
5981
5984
{
@@ -6025,7 +6028,6 @@ case kind: \
6025
6028
for (i = 0 ; riter -> u .a .mode [i ] != CAF_ARR_REF_NONE ; ++ i )
6026
6029
{
6027
6030
array_ref = riter -> u .a .mode [i ];
6028
- dprint ("i = %zd, array_ref = %s\n" , i , caf_array_ref_str [array_ref ]);
6029
6031
switch (array_ref )
6030
6032
{
6031
6033
case CAF_ARR_REF_VECTOR :
@@ -6079,6 +6081,8 @@ case kind: \
6079
6081
caf_runtime_error (unknownarrreftype , stat , NULL , 0 );
6080
6082
return ;
6081
6083
} // switch
6084
+ dprint ("i = %zd, array_ref = %s, delta = %ld\n" ,
6085
+ i , caf_array_ref_str [array_ref ], delta );
6082
6086
if (delta <= 0 )
6083
6087
return ;
6084
6088
if (dst != NULL )
@@ -6094,8 +6098,8 @@ case kind: \
6094
6098
/* When dst is an array. */
6095
6099
if (dst_rank > 0 )
6096
6100
{
6097
- /* Check that src_cur_dim is valid for dst. Can be
6098
- * superceeded only by scalar data. */
6101
+ /* Check that src_cur_dim is valid for dst. Can be superceeded
6102
+ * only by scalar data. */
6099
6103
if (src_cur_dim >= dst_rank && delta != 1 )
6100
6104
{
6101
6105
caf_runtime_error (rankoutofrange , stat , NULL , 0 );
@@ -6368,15 +6372,14 @@ PREFIX(sendget_by_ref) (caf_token_t dst_token, int dst_image_index,
6368
6372
GFC_DESCRIPTOR_RANK (src ), ref_rank );
6369
6373
for (i = 0 ; i < GFC_DESCRIPTOR_RANK (src ); ++ i )
6370
6374
{
6371
- dprint ("remote desc dim[%zd] = (lb = %zd, ub = %zd, stride = %zd)\n" ,
6375
+ dprint ("remote desc dim[%zd] = (lb= %zd, ub= %zd, stride= %zd)\n" ,
6372
6376
i , src -> dim [i ].lower_bound , src -> dim [i ]._ubound ,
6373
6377
src -> dim [i ]._stride );
6374
6378
}
6375
6379
#endif
6376
6380
for (i = 0 ; riter -> u .a .mode [i ] != CAF_ARR_REF_NONE ; ++ i )
6377
6381
{
6378
6382
array_ref = riter -> u .a .mode [i ];
6379
- dprint ("i = %zd, array_ref = %s\n" , i , caf_array_ref_str [array_ref ]);
6380
6383
switch (array_ref )
6381
6384
{
6382
6385
case CAF_ARR_REF_VECTOR :
@@ -6446,6 +6449,8 @@ case kind: \
6446
6449
caf_runtime_error (unknownarrreftype , src_stat , NULL , 0 );
6447
6450
return ;
6448
6451
} // switch
6452
+ dprint ("i = %zd, array_ref = %s, delta = %ld\n" ,
6453
+ i , caf_array_ref_str [array_ref ], delta );
6449
6454
if (delta <= 0 )
6450
6455
return ;
6451
6456
size *= (ptrdiff_t )delta ;
@@ -6460,7 +6465,6 @@ case kind: \
6460
6465
for (i = 0 ; riter -> u .a .mode [i ] != CAF_ARR_REF_NONE ; ++ i )
6461
6466
{
6462
6467
array_ref = riter -> u .a .mode [i ];
6463
- dprint ("i = %zd, array_ref = %s\n" , i , caf_array_ref_str [array_ref ]);
6464
6468
switch (array_ref )
6465
6469
{
6466
6470
case CAF_ARR_REF_VECTOR :
@@ -6513,6 +6517,8 @@ case kind: \
6513
6517
caf_runtime_error (unknownarrreftype , src_stat , NULL , 0 );
6514
6518
return ;
6515
6519
} // switch
6520
+ dprint ("i = %zd, array_ref = %s, delta = %ld\n" ,
6521
+ i , caf_array_ref_str [array_ref ], delta );
6516
6522
if (delta <= 0 )
6517
6523
return ;
6518
6524
size *= (ptrdiff_t )delta ;
@@ -6665,7 +6671,8 @@ PREFIX(is_present) (caf_token_t token, int image_index, caf_reference_t *refs)
6665
6671
for (i = 0 ; riter -> u .a .mode [i ] != CAF_ARR_REF_NONE ; ++ i )
6666
6672
{
6667
6673
array_ref = riter -> u .a .mode [i ];
6668
- dprint ("i = %zd, array_ref = %s\n" , i , caf_array_ref_str [array_ref ]);
6674
+ dprint ("i = %zd, array_ref = %s\n" ,
6675
+ i , caf_array_ref_str [array_ref ]);
6669
6676
switch (array_ref )
6670
6677
{
6671
6678
case CAF_ARR_REF_FULL :
@@ -6805,8 +6812,7 @@ PREFIX(is_present) (caf_token_t token, int image_index, caf_reference_t *refs)
6805
6812
GFC_DESCRIPTOR_RANK (src ), ref_rank );
6806
6813
for (i = 0 ; i < GFC_DESCRIPTOR_RANK (src ); ++ i )
6807
6814
{
6808
- dprint ("remote desc dim[%zd] = "
6809
- "(lb = %zd, ub = %zd, stride = %zd)\n" ,
6815
+ dprint ("remote desc dim[%zd] = (lb=%zd, ub=%zd, stride=%zd)\n" ,
6810
6816
i , src_desc .dim [i ].lower_bound , src_desc .dim [i ]._ubound ,
6811
6817
src_desc .dim [i ]._stride );
6812
6818
}
0 commit comments