diff options
Diffstat (limited to 'gcc/fortran/expr.c')
-rw-r--r-- | gcc/fortran/expr.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index b94e5ac..07dfc7a 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -3125,6 +3125,13 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue) &rvalue->where); return FAILURE; } + if (attr.abstract) + { + gfc_error ("Abstract interface '%s' is invalid " + "in procedure pointer assignment at %L", + rvalue->symtree->name, &rvalue->where); + } + /* TODO. See PR 38290. if (rvalue->expr_type == EXPR_VARIABLE && lvalue->symtree->n.sym->attr.if_source != IFSRC_UNKNOWN && !gfc_compare_interfaces (lvalue->symtree->n.sym, @@ -3133,7 +3140,7 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue) gfc_error ("Interfaces don't match " "in procedure pointer assignment at %L", &rvalue->where); return FAILURE; - } + }*/ return SUCCESS; } |