http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55501
janus at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |janus at gcc dot gnu.org |gnu.org | --- Comment #5 from janus at gcc dot gnu.org 2012-11-28 10:35:54 UTC --- The following patch fixes it: Index: gcc/fortran/simplify.c =================================================================== --- gcc/fortran/simplify.c (revision 193810) +++ gcc/fortran/simplify.c (working copy) @@ -3973,8 +3973,10 @@ gfc_simplify_maskl (gfc_expr *i, gfc_expr *kind_ar gfc_expr * gfc_simplify_merge (gfc_expr *tsource, gfc_expr *fsource, gfc_expr *mask) { - if (tsource->expr_type != EXPR_CONSTANT - || fsource->expr_type != EXPR_CONSTANT + if ((tsource->expr_type != EXPR_CONSTANT + && tsource->expr_type != EXPR_STRUCTURE) + || (fsource->expr_type != EXPR_CONSTANT + && fsource->expr_type != EXPR_STRUCTURE) || mask->expr_type != EXPR_CONSTANT) return NULL;