]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2016-12-04 Janus Weil <janus@gcc.gnu.org>
authorjanus <janus@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 Dec 2016 20:31:26 +0000 (20:31 +0000)
committerjanus <janus@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 Dec 2016 20:31:26 +0000 (20:31 +0000)
PR fortran/78618
* intrinsic.c (gfc_convert_type_warn): Do not set the full typespec for
the conversion symbol, but only type and kind. Set the full typespec
for the expression.
(gfc_convert_chartype): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@243232 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/intrinsic.c

index 3489bc4a14e6319178c96c6544549007fc2ca19c..2c06b31f9e539d07df19203b26481028f1ebb775 100644 (file)
@@ -1,3 +1,11 @@
+2016-12-04  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/78618
+       * intrinsic.c (gfc_convert_type_warn): Do not set the full typespec for
+       the conversion symbol, but only type and kind. Set the full typespec
+       for the expression.
+       (gfc_convert_chartype): Ditto.
+
 2016-12-03  Janus Weil  <janus@gcc.gnu.org>
 
        PR fortran/43207
index fdc11d8831c8e6543ae1c42f8c7576dc0d618b0f..fb83402c07d22862a1cf5beb538393405910ff64 100644 (file)
@@ -4984,12 +4984,14 @@ gfc_convert_type_warn (gfc_expr *expr, gfc_typespec *ts, int eflag, int wflag)
   new_expr->value.function.name = sym->lib_name;
   new_expr->value.function.isym = sym;
   new_expr->where = old_where;
+  new_expr->ts = *ts;
   new_expr->rank = rank;
   new_expr->shape = gfc_copy_shape (shape, rank);
 
   gfc_get_ha_sym_tree (sym->name, &new_expr->symtree);
   new_expr->symtree->n.sym->result = new_expr->symtree->n.sym;
-  new_expr->symtree->n.sym->ts = *ts;
+  new_expr->symtree->n.sym->ts.type = ts->type;
+  new_expr->symtree->n.sym->ts.kind = ts->kind;
   new_expr->symtree->n.sym->attr.flavor = FL_PROCEDURE;
   new_expr->symtree->n.sym->attr.function = 1;
   new_expr->symtree->n.sym->attr.elemental = 1;
@@ -5055,11 +5057,13 @@ gfc_convert_chartype (gfc_expr *expr, gfc_typespec *ts)
   new_expr->value.function.name = sym->lib_name;
   new_expr->value.function.isym = sym;
   new_expr->where = old_where;
+  new_expr->ts = *ts;
   new_expr->rank = rank;
   new_expr->shape = gfc_copy_shape (shape, rank);
 
   gfc_get_ha_sym_tree (sym->name, &new_expr->symtree);
-  new_expr->symtree->n.sym->ts = *ts;
+  new_expr->symtree->n.sym->ts.type = ts->type;
+  new_expr->symtree->n.sym->ts.kind = ts->kind;
   new_expr->symtree->n.sym->attr.flavor = FL_PROCEDURE;
   new_expr->symtree->n.sym->attr.function = 1;
   new_expr->symtree->n.sym->attr.elemental = 1;