+2010-03-14 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/43362
+ * resolve.c (resolve_structure_cons): Add missing PURE constraint.
+ (resolve_ordinary_assign): Add check to avoid segfault.
+
2010-03-12 Paul Thomas <pault@gcc.gnu.org>
PR fortran/43291
"for pointer component '%s' should be a POINTER or "
"a TARGET", &cons->expr->where, comp->name);
}
+
+ /* F2003, C1272 (3). */
+ if (gfc_pure (NULL) && cons->expr->expr_type == EXPR_VARIABLE
+ && gfc_impure_variable (cons->expr->symtree->n.sym))
+ {
+ t = FAILURE;
+ gfc_error ("Invalid expression in the derived type constructor for pointer "
+ "component '%s' at %L in PURE procedure", comp->name,
+ &cons->expr->where);
+ }
}
return t;
if (lhs->ts.type == BT_DERIVED
&& lhs->expr_type == EXPR_VARIABLE
&& lhs->ts.u.derived->attr.pointer_comp
+ && rhs->expr_type == EXPR_VARIABLE
&& gfc_impure_variable (rhs->symtree->n.sym))
{
gfc_error ("The impure variable at %L is assigned to "
+2010-03-14 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/43362
+ * gfortran.dg/impure_constructor_1.f90: New test.
+
2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/43354