aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans.h
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2018-09-22 18:44:01 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2018-09-22 18:44:01 +0000
commit056e6860b3a3f915b499a9e7be48f49da2c04850 (patch)
treeefba4c14d83c1c69cafcbf03c2c2db4ab500a286 /gcc/fortran/trans.h
parent73a958c67e3c99e10724dc65c4cb738da6188e34 (diff)
downloadgcc-056e6860b3a3f915b499a9e7be48f49da2c04850.zip
gcc-056e6860b3a3f915b499a9e7be48f49da2c04850.tar.gz
gcc-056e6860b3a3f915b499a9e7be48f49da2c04850.tar.bz2
re PR middle-end/41453 (use INTENT(out) for optimization)
2018-09-22 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/41453 * trans.h (gfc_conv_expr_reference): Add optional argument add_clobber to prototype. (gfc_conv_procedure_call): Set add_clobber argument to gfc_conv_procedure_reference to true for scalar, INTENT(OUT), non-pointer, non-allocatable, non-dummy variables whose type is neither BT_CHARACTER, BT_DERIVED or BT_CLASS, but only if the procedure is not elemental. * trans-expr.c (gfc_conv_procedure_reference): Add clobber statement before call if add_clobber is set. 2018-09-22 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/41453 * gfortran.dg/intent_optimize_2.f90: New test. From-SVN: r264506
Diffstat (limited to 'gcc/fortran/trans.h')
-rw-r--r--gcc/fortran/trans.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/trans.h b/gcc/fortran/trans.h
index 1813882..4f33a89 100644
--- a/gcc/fortran/trans.h
+++ b/gcc/fortran/trans.h
@@ -485,7 +485,8 @@ tree gfc_build_compare_string (tree, tree, tree, tree, int, enum tree_code);
void gfc_conv_expr (gfc_se * se, gfc_expr * expr);
void gfc_conv_expr_val (gfc_se * se, gfc_expr * expr);
void gfc_conv_expr_lhs (gfc_se * se, gfc_expr * expr);
-void gfc_conv_expr_reference (gfc_se * se, gfc_expr *);
+void gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr,
+ bool add_clobber = false);
void gfc_conv_expr_type (gfc_se * se, gfc_expr *, tree);