Paul asked me off list to split up the previously submitted patch to make it more reviewable. I used Claude to do this. The patches need to be applied in the order given. The test cases are realigned with the portions being fixed.

This is the v3 PR49802 patch broken into a series, as requested.  The
first patch holds everything that touches shared code that existing
callers go through; the remaining four add one feature or fix each, in
dependency order.  The frontend code is unchanged from v3 -- this is a
pure re-partitioning other than some comments in test cases. Some test coverage moved between value_15/16/18 so that each case sits in the patch that implements it.

 1/5  [PR49802]-1 Add a deep copy mode to gfc_conv_subref_array_arg
      trans.h, trans-expr.cc.  No behaviour change for any existing
      caller.  Also fixes two latent problems in the pass_optional path
      that 5/5 makes reachable.

 2/5  [PR49802]-2 Allow VALUE on assumed-length CHARACTER dummies
      resolve.cc, trans-types.cc, conv_dummy_value.
      value_5 (updated), value_6, value_7, value_11, value_14.

 3/5  [PR49802]-3 Allow VALUE on assumed-shape and explicit-shape array dummies
      resolve.cc, symbol.cc, trans-types.cc, gfc_conv_procedure_call.
      value_3, assumed_rank_11, c-interop/c535a-2 (updated), value_12,
      value_13, value_16, value_17.

 4/5  [PR49802]-4 Sequence association of a scalar actual with a VALUE array 
dummy
      has_value_array_dummy, conv_seq_assoc_value_arg.  value_15.

 5/5  [PR49802]-5 Absent optional actual argument passed to a VALUE dummy
      conv_dummy_value, gfc_conv_procedure_call.  value_18.

2/5 and 3/5 are independent of one another; both need 1/5, and 4/5 and
5/5 need 3/5.

Regression tested on x86_64-pc-linux-gnu at each of the five steps, not
only at the end of the series.

Regards,

Jerry


Reply via email to