+2017-05-17 Fritz Reese <fritzoreese@gmail.com>
+
+ PR fortran/80668
+ * expr.c (component_initializer): Don't generate initializers for
+ pointer components.
+ * invoke.texi (-finit-derived): Document.
+
2017-05-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/80554
{
gfc_expr *init = NULL;
- /* See if we can find the initializer immediately. */
+ /* See if we can find the initializer immediately.
+ Some components should never get initializers. */
if (c->initializer || !generate
- || (ts->type == BT_CLASS && !c->attr.allocatable))
+ || (ts->type == BT_CLASS && !c->attr.allocatable)
+ || c->attr.pointer
+ || c->attr.class_pointer
+ || c->attr.proc_pointer)
return c->initializer;
/* Recursively handle derived type components. */
not initialize
@itemize @bullet
@item
+objects with the POINTER attribute
+@item
allocatable arrays
@item
variables that appear in an @code{EQUIVALENCE} statement.
+2017-05-17 Fritz Reese <fritzoreese@gmail.com>
+
+ PR fortran/80668
+ * gfortran.dg/pr80668.f90: New.
+
2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
PR middle-end/80775
--- /dev/null
+! { dg-do compile }
+! { dg-options "-finit-derived -finit-integer=12345678" }
+!
+! PR fortran/80668
+!
+! Test a regression where structure constructor expressions were created for
+! POINTER components with -finit-derived.
+!
+
+MODULE pr80668
+ IMPLICIT NONE
+ TYPE :: dist_t
+ INTEGER :: TYPE,nblks_loc,nblks
+ INTEGER,DIMENSION(:),POINTER :: dist
+ END TYPE dist_t
+
+CONTAINS
+
+ SUBROUTINE hfx_new()
+ TYPE(dist_t) :: dist
+ integer,pointer :: bob
+ CALL release_dist(dist, bob)
+ END SUBROUTINE hfx_new
+
+ SUBROUTINE release_dist(dist,p)
+ TYPE(dist_t) :: dist
+ integer, pointer, intent(in) :: p
+ END SUBROUTINE release_dist
+END MODULE