diff options
Diffstat (limited to 'gcc/fortran/parse.c')
-rw-r--r-- | gcc/fortran/parse.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index 484c05c..dac4077 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -1349,7 +1349,8 @@ parse_derived (void) } seen_sequence = 1; - gfc_add_sequence (&gfc_current_block ()->attr, NULL); + gfc_add_sequence (&gfc_current_block ()->attr, + gfc_current_block ()->name, NULL); break; default: @@ -1451,9 +1452,9 @@ loop: if (current_state == COMP_NONE) { if (new_state == COMP_FUNCTION) - gfc_add_function (&sym->attr, NULL); - if (new_state == COMP_SUBROUTINE) - gfc_add_subroutine (&sym->attr, NULL); + gfc_add_function (&sym->attr, sym->name, NULL); + else if (new_state == COMP_SUBROUTINE) + gfc_add_subroutine (&sym->attr, sym->name, NULL); current_state = new_state; } @@ -2200,15 +2201,15 @@ parse_contained (int module) gfc_new_block->name); else { - if (gfc_add_procedure (&sym->attr, PROC_INTERNAL, + if (gfc_add_procedure (&sym->attr, PROC_INTERNAL, sym->name, &gfc_new_block->declared_at) == SUCCESS) { if (st == ST_FUNCTION) - gfc_add_function (&sym->attr, + gfc_add_function (&sym->attr, sym->name, &gfc_new_block->declared_at); else - gfc_add_subroutine (&sym->attr, + gfc_add_subroutine (&sym->attr, sym->name, &gfc_new_block->declared_at); } } |