https://gcc.gnu.org/g:ea90328dc8df1da7d4893b9ced63b0e9e8583f0e
commit ea90328dc8df1da7d4893b9ced63b0e9e8583f0e Author: Mikael Morin <mik...@gcc.gnu.org> Date: Sat Jun 28 22:02:40 2025 +0200 Suppression gfc_conv_descriptor_data_addr Diff: --- gcc/fortran/trans-decl.cc | 5 ++--- gcc/fortran/trans-descriptor.cc | 10 ---------- gcc/fortran/trans-descriptor.h | 1 - 3 files changed, 2 insertions(+), 14 deletions(-) diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc index bbee31c23ffb..b6374abd1599 100644 --- a/gcc/fortran/trans-decl.cc +++ b/gcc/fortran/trans-decl.cc @@ -5135,8 +5135,7 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block) se.descriptor_only = 1; gfc_conv_expr (&se, e); descriptor = se.expr; - se.expr = gfc_conv_descriptor_data_addr (se.expr); - se.expr = build_fold_indirect_ref_loc (input_location, se.expr); + se.expr = gfc_conv_descriptor_data_get (se.expr); } gfc_free_expr (e); @@ -5340,7 +5339,7 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block) continue; /* 'omp allocate( {purpose: allocator, value: align}, {purpose: init-stmtlist, value: cleanup-stmtlist}, - {purpose: size-var, value: last-size-expr}} + {purpose: size-var, value: last-size-expr} ) where init-stmt/cleanup-stmt is the STATEMENT list to find the try-final block; last-size-expr is to find the location after which to add the code and 'size-var' is for the proper size, cf. diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc index bf7e24f77f26..65b43ee59ea4 100644 --- a/gcc/fortran/trans-descriptor.cc +++ b/gcc/fortran/trans-descriptor.cc @@ -214,16 +214,6 @@ gfc_conv_descriptor_data_set (stmtblock_t *block, tree desc, tree value) } -/* This provides address access to the data field. This should only be - used by array allocation, passing this on to the runtime. */ - -tree -gfc_conv_descriptor_data_addr (tree desc) -{ - tree field = gfc_get_descriptor_field (desc, DATA_FIELD); - return gfc_build_addr_expr (NULL_TREE, field); -} - static tree get_descriptor_offset (tree desc) { diff --git a/gcc/fortran/trans-descriptor.h b/gcc/fortran/trans-descriptor.h index bdf02e0096ea..bd17073c6308 100644 --- a/gcc/fortran/trans-descriptor.h +++ b/gcc/fortran/trans-descriptor.h @@ -29,7 +29,6 @@ tree gfc_get_cfi_dim_extent (tree desc, tree idx); tree gfc_get_cfi_dim_sm (tree desc, tree idx); -tree gfc_conv_descriptor_data_addr (tree desc); tree gfc_conv_descriptor_dtype (tree desc); tree gfc_conv_descriptor_rank (tree desc); tree gfc_conv_descriptor_version (tree desc);