|
| 1 | +2024-12-22 Harald Anlauf < [email protected]> |
| 2 | + |
| 3 | + * check.cc (gfc_check_random_seed): Clear gmp variables returned by |
| 4 | + gfc_array_size. |
| 5 | + * expr.cc (gfc_check_pointer_assign): Likewise. |
| 6 | + |
| 7 | +2024-12-22 Andre Vehreschild < [email protected]> |
| 8 | + |
| 9 | + PR fortran/107635 |
| 10 | + * gfortran.h (gfc_add_caf_accessor): New function. |
| 11 | + * gfortran.texi: Document new API routines. |
| 12 | + * resolve.cc (get_arrayspec_from_expr): Synthesize the arrayspec |
| 13 | + resulting from an expression, i.e. not only the rank, but also |
| 14 | + the bounds. |
| 15 | + (remove_coarray_from_derived_type): Remove coarray ref from a |
| 16 | + derived type to access it in access routine. |
| 17 | + (convert_coarray_class_to_derived_type): Same but for classes. |
| 18 | + The result is a derived type. |
| 19 | + (split_expr_at_caf_ref): Split an expression at the coarray |
| 20 | + reference to move the reference after the coarray ref into the |
| 21 | + access routine. |
| 22 | + (check_add_new_component): Helper to add variables as |
| 23 | + components to derived type transfered to the access routine. |
| 24 | + (create_get_parameter_type): Create the derived type to transfer |
| 25 | + addressing data to the access routine. |
| 26 | + (create_get_callback): Create the access routine. |
| 27 | + (add_caf_get_intrinsic): Use access routine instead of old |
| 28 | + caf_get. |
| 29 | + * trans-decl.cc (gfc_build_builtin_function_decls): Register new |
| 30 | + API routines. |
| 31 | + (gfc_create_module_variable): Use renamed flag. |
| 32 | + (gfc_emit_parameter_debug_info): |
| 33 | + (struct caf_accessor): Linked list of hash-access routine pairs. |
| 34 | + (gfc_add_caf_accessor): Add a hash-access routine pair to above |
| 35 | + linked list. |
| 36 | + (create_caf_accessor_register): Add all registered hash-access |
| 37 | + routine pairs to the current caf_init. |
| 38 | + (generate_coarray_init): Use routine above. |
| 39 | + (gfc_generate_module_vars): Use renamed flag. |
| 40 | + (generate_local_decl): Same. |
| 41 | + (gfc_generate_function_code): Same. |
| 42 | + (gfc_process_block_locals): Same. |
| 43 | + * trans-intrinsic.cc (conv_shape_to_cst): Build the product of a |
| 44 | + shape. |
| 45 | + (gfc_conv_intrinsic_caf_get): Create call to access routine. |
| 46 | + (conv_caf_send): Adapt to caf_get using less arguments. |
| 47 | + (gfc_conv_intrinsic_function): Same. |
| 48 | + * trans.cc (gfc_trans_force_lval): Helper to ensure that an |
| 49 | + expression can be used as an lvalue-ref. |
| 50 | + * trans.h (gfc_trans_force_lval): See above. |
| 51 | + |
| 52 | +2024-12-22 Andre Vehreschild < [email protected]> |
| 53 | + |
| 54 | + PR fortran/107635 |
| 55 | + * gfortran.h (gfc_comp_caf_token): Convenient macro for |
| 56 | + accessing caf_token's tree. |
| 57 | + * resolve.cc (gfc_resolve_ref): Backup caf_lhs when resolving |
| 58 | + expr in array_ref. |
| 59 | + (remove_caf_get_intrinsic): Removed. |
| 60 | + (resolve_variable): Set flag caf_lhs when resolving lhs of |
| 61 | + assignment to prevent insertion of caf_get. |
| 62 | + (resolve_lock_unlock_event): Same, but the lhs is the parameter. |
| 63 | + (resolve_ordinary_assign): Move conversion to caf_send to |
| 64 | + resolve_codes. |
| 65 | + (resolve_codes): Adress caf_get and caf_send here. |
| 66 | + (resolve_fl_derived0): Set component's caf_token when token is |
| 67 | + necessary. |
| 68 | + * trans-array.cc (gfc_conv_array_parameter): Get a coarray for |
| 69 | + expression that have a corank. |
| 70 | + (structure_alloc_comps): Use macro to get caf_token's tree. |
| 71 | + (gfc_alloc_allocatable_for_assignment): Same. |
| 72 | + * trans-expr.cc (gfc_get_ultimate_alloc_ptr_comps_caf_token): |
| 73 | + Same. |
| 74 | + (gfc_trans_structure_assign): Same. |
| 75 | + * trans-intrinsic.cc (conv_expr_ref_to_caf_ref): Same. |
| 76 | + (has_ref_after_cafref): New function to figure that after a |
| 77 | + reference of a coarray another reference is present. |
| 78 | + (conv_caf_send): Get rhs from correct place, when caf_get is |
| 79 | + not removed. |
| 80 | + * trans-types.cc (gfc_get_derived_type): Get caf_token from |
| 81 | + component and no longer guessing. |
| 82 | + |
1 | 83 | 2024-12-21 Harald Anlauf < [email protected]> |
2 | 84 |
|
3 | 85 | PR fortran/104819 |
|
0 commit comments