mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-25 08:15:23 +08:00
re PR fortran/39594 (compiler falls over in gfc_get_symbol_decl)
2009-04-03 Tobias Burnus <burnus@net-b.de> PR fortran/39594 * resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol if it is not a procedure pointer. * primary.c (match_actual_arg): Ditto. 2009-04-03 Tobias Burnus <burnus@net-b.de> PR fortran/39594 * gfortran.dg/common_12.f90: New. From-SVN: r145513
This commit is contained in:
parent
b77ba909af
commit
6f9c9d6d47
@ -1,3 +1,10 @@
|
||||
2009-04-03 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/39594
|
||||
* resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol
|
||||
if it is not a procedure pointer.
|
||||
* primary.c (match_actual_arg): Ditto.
|
||||
|
||||
2009-03-31 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
PR preprocessor/15638
|
||||
|
@ -1401,6 +1401,13 @@ match_actual_arg (gfc_expr **result)
|
||||
&& sym->attr.flavor != FL_UNKNOWN)
|
||||
break;
|
||||
|
||||
if (sym->attr.in_common && !sym->attr.proc_pointer)
|
||||
{
|
||||
gfc_add_flavor (&sym->attr, FL_VARIABLE, sym->name,
|
||||
&sym->declared_at);
|
||||
break;
|
||||
}
|
||||
|
||||
/* If the symbol is a function with itself as the result and
|
||||
is being defined, then we have a variable. */
|
||||
if (sym->attr.function && sym->result == sym)
|
||||
|
@ -719,6 +719,9 @@ resolve_common_vars (gfc_symbol *sym, bool named_common)
|
||||
gfc_error_now ("Derived type variable '%s' in COMMON at %L "
|
||||
"may not have default initializer", csym->name,
|
||||
&csym->declared_at);
|
||||
|
||||
if (csym->attr.flavor == FL_UNKNOWN && !csym->attr.proc_pointer)
|
||||
gfc_add_flavor (&csym->attr, FL_VARIABLE, csym->name, &csym->declared_at);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2009-04-03 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/39594
|
||||
* gfortran.dg/common_12.f90: New.
|
||||
|
||||
2009-04-03 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/39608
|
||||
|
18
gcc/testsuite/gfortran.dg/common_12.f90
Normal file
18
gcc/testsuite/gfortran.dg/common_12.f90
Normal file
@ -0,0 +1,18 @@
|
||||
! { dg-do compile }
|
||||
!
|
||||
! PR fortran/39594
|
||||
!
|
||||
! Contributed by Peter Knowles and reduced by Jakub Jelinek.
|
||||
!
|
||||
module pr39594
|
||||
implicit double precision(z)
|
||||
common /z/ z0,z1,z2,z3,z4,z5,z6,z7
|
||||
contains
|
||||
subroutine foo
|
||||
implicit double precision(z)
|
||||
common /z/ z0,z1,z2,z3,z4,z5,z6,z7
|
||||
call bar(z0)
|
||||
end subroutine foo
|
||||
end module
|
||||
|
||||
! { dg-final { cleanup-modules "pr39594" } }
|
Loading…
Reference in New Issue
Block a user