]> git.ipfire.org Git - thirdparty/gcc.git/commit
fortran: Use pre-evaluated class container if available [PR110618]
authorMikael Morin <mikael@gcc.gnu.org>
Mon, 17 Jul 2023 12:14:18 +0000 (14:14 +0200)
committerMikael Morin <mikael@gcc.gnu.org>
Mon, 17 Jul 2023 12:14:18 +0000 (14:14 +0200)
commit1a46400e5ac0f21eead74b10752f69ebc7a8be27
tree3c4bddd01951e1d3b4b24a6269ee01e9b2521269
parentf60231e35d8d3f84f2ab6b3c19c254faa9519cf4
fortran: Use pre-evaluated class container if available [PR110618]

Add the possibility to provide a pre-evaluated class container argument
to gfc_add_finalizer to avoid repeatedly evaluating data reference
expressions in the generated code.

PR fortran/110618

gcc/fortran/ChangeLog:

* trans.h (gfc_add_finalizer_call): Add class container argument.
* trans.cc (gfc_add_finalizer_call): Ditto.  Pass down new
argument to get_final_proc_ref, get_elem_size, get_var_desc,
and get_vptr.
(get_elem_size): Add class container argument.
Use provided class container if it's available.
(get_var_descr): Same.
(get_vptr): Same.
(get_final_proc_ref): Same.  Add boolean telling the class
container argument is used.  Set it.  Don't try to use
final_wrapper if class container argument was used.
gcc/fortran/trans.cc
gcc/fortran/trans.h