mirror of git://gcc.gnu.org/git/gcc.git
trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Deal with exprs that are indirect references; ie.
2019-01-15 Paul Thomas <pault@gcc.gnu.org> * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Deal with exprs that are indirect references; ie. dummy arguments. 2019-01-15 Paul Thomas <pault@gcc.gnu.org> * gfortran.dg/ISO_Fortran_binding_2.c : Change reference to ISO_Fortran_binding_2.h. From-SVN: r267946
This commit is contained in:
parent
51177d3d64
commit
92f3a180aa
|
|
@ -1,3 +1,8 @@
|
||||||
|
2019-01-15 Paul Thomas <pault@gcc.gnu.org>
|
||||||
|
|
||||||
|
* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Deal with exprs
|
||||||
|
that are indirect references; ie. dummy arguments.
|
||||||
|
|
||||||
2019-01-13 Dominique d'Humieres <dominiq@gcc.gnu.org>
|
2019-01-13 Dominique d'Humieres <dominiq@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/88803
|
PR fortran/88803
|
||||||
|
|
|
||||||
|
|
@ -4919,6 +4919,10 @@ gfc_conv_gfc_desc_to_cfi_desc (gfc_se *parmse, gfc_expr *e, gfc_symbol *fsym)
|
||||||
{
|
{
|
||||||
gfc_conv_expr_descriptor (parmse, e);
|
gfc_conv_expr_descriptor (parmse, e);
|
||||||
|
|
||||||
|
if (POINTER_TYPE_P (TREE_TYPE (parmse->expr)))
|
||||||
|
parmse->expr = build_fold_indirect_ref_loc (input_location,
|
||||||
|
parmse->expr);
|
||||||
|
|
||||||
/* All the temporary descriptors are marked as DECL_ARTIFICIAL. If
|
/* All the temporary descriptors are marked as DECL_ARTIFICIAL. If
|
||||||
the expression type is different from the descriptor type, then
|
the expression type is different from the descriptor type, then
|
||||||
the offset must be found (eg. to a component ref or substring)
|
the offset must be found (eg. to a component ref or substring)
|
||||||
|
|
@ -4949,6 +4953,11 @@ gfc_conv_gfc_desc_to_cfi_desc (gfc_se *parmse, gfc_expr *e, gfc_symbol *fsym)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gfc_conv_expr (parmse, e);
|
gfc_conv_expr (parmse, e);
|
||||||
|
|
||||||
|
if (POINTER_TYPE_P (TREE_TYPE (parmse->expr)))
|
||||||
|
parmse->expr = build_fold_indirect_ref_loc (input_location,
|
||||||
|
parmse->expr);
|
||||||
|
|
||||||
/* Copy the scalar for INTENT_IN. */
|
/* Copy the scalar for INTENT_IN. */
|
||||||
if (e->expr_type == EXPR_VARIABLE && fsym->attr.intent == INTENT_IN)
|
if (e->expr_type == EXPR_VARIABLE && fsym->attr.intent == INTENT_IN)
|
||||||
parmse->expr = gfc_evaluate_now (parmse->expr, &parmse->pre);
|
parmse->expr = gfc_evaluate_now (parmse->expr, &parmse->pre);
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2019-01-15 Paul Thomas <pault@gcc.gnu.org>
|
||||||
|
|
||||||
|
* gfortran.dg/ISO_Fortran_binding_2.c : Change reference to
|
||||||
|
ISO_Fortran_binding_2.h.
|
||||||
|
|
||||||
2019-01-15 Marek Polacek <polacek@redhat.com>
|
2019-01-15 Marek Polacek <polacek@redhat.com>
|
||||||
|
|
||||||
PR c++/88866
|
PR c++/88866
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
/* Test F2008 18.5: ISO_Fortran_binding.h functions. */
|
/* Test F2008 18.5: ISO_Fortran_binding.h functions. */
|
||||||
|
|
||||||
#include <ISO_Fortran_binding.h>
|
#include "../../../libgfortran/ISO_Fortran_binding.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <complex.h>
|
#include <complex.h>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue