Index: gcc/fortran/primary.c
===================================================================
--- gcc/fortran/primary.c	(revision 197920)
+++ gcc/fortran/primary.c	(working copy)
@@ -1953,11 +1953,13 @@ gfc_match_varspec (gfc_expr *primary, int equiv_fl
 	    return MATCH_ERROR;
 
 	  gcc_assert (!tail || !tail->next);
-	  gcc_assert (primary->expr_type == EXPR_VARIABLE
-		      || (primary->expr_type == EXPR_STRUCTURE
-			  && primary->symtree && primary->symtree->n.sym
-			  && primary->symtree->n.sym->attr.flavor));
 
+	  if (!(primary->expr_type == EXPR_VARIABLE
+		|| (primary->expr_type == EXPR_STRUCTURE
+		    && primary->symtree && primary->symtree->n.sym
+		    && primary->symtree->n.sym->attr.flavor)))
+	    return MATCH_ERROR;
+
 	  if (tbp->n.tb->is_generic)
 	    tbp_sym = NULL;
 	  else
