diff options
author | Tobias Burnus <burnus@net-b.de> | 2011-12-19 21:18:18 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2011-12-19 21:18:18 +0100 |
commit | 1e815d32216f4c35208830b02c933895b1c2e9e2 (patch) | |
tree | 2274ec03bb762bdfd67f64a0e9902f081c96eb2d /gcc | |
parent | 11c71a22d90023ec27f04b80e92838af8af692a2 (diff) | |
download | gcc-1e815d32216f4c35208830b02c933895b1c2e9e2.zip gcc-1e815d32216f4c35208830b02c933895b1c2e9e2.tar.gz gcc-1e815d32216f4c35208830b02c933895b1c2e9e2.tar.bz2 |
re PR fortran/51605 (internal compiler error gfc_trans_block_construct, at fortran/trans-stmt.c:984)
2011-12-19 Tobias Burnus <burnus@net-b.de>
PR fortran/51605
* parse.c (gfc_fixup_sibling_symbols): Regard FL_LABEL as
local symbol.
2011-12-19 Tobias Burnus <burnus@net-b.de>
PR fortran/51605
* gfortran.dg/block_10.f90: New.
From-SVN: r182497
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/parse.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/block_10.f90 | 34 |
4 files changed, 46 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index e5e8e7f..d9a9b43 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,6 +1,12 @@ 2011-12-19 Tobias Burnus <burnus@net-b.de> PR fortran/51605 + * parse.c (gfc_fixup_sibling_symbols): Regard FL_LABEL as + local symbol. + +2011-12-19 Tobias Burnus <burnus@net-b.de> + + PR fortran/51605 * match.c (gfc_match_select_type): Handle scalar polymophic coarrays. (select_type_set_tmp, ): Ditto; avoid segfault if !class_ok. diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index 7d91645..ea1d773 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -3908,6 +3908,7 @@ gfc_fixup_sibling_symbols (gfc_symbol *sym, gfc_namespace *siblings) || old_sym->attr.intrinsic || old_sym->attr.generic || old_sym->attr.flavor == FL_NAMELIST + || old_sym->attr.flavor == FL_LABEL || old_sym->attr.proc == PROC_ST_FUNCTION)) { /* Replace it with the symbol from the parent namespace. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d08c3ad..701fce8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-12-19 Tobias Burnus <burnus@net-b.de> + + PR fortran/51605 + * gfortran.dg/block_10.f90: New. + 2011-12-19 Jason Merrill <jason@redhat.com> PR c++/51553 diff --git a/gcc/testsuite/gfortran.dg/block_10.f90 b/gcc/testsuite/gfortran.dg/block_10.f90 new file mode 100644 index 0000000..0751f79 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/block_10.f90 @@ -0,0 +1,34 @@ +! { dg-do compile } +! +! PR fortran/51605 +! + +contains + subroutine foo + BLOCK_NAME: block + end block BLOCK_NAME + end subroutine foo + + subroutine BLOCK_NAME() + end subroutine BLOCK_NAME + + subroutine bar() + end subroutine bar +end + +subroutine test() +contains + subroutine BLOCK_NAME() + end subroutine BLOCK_NAME + + subroutine foobar() + end subroutine foobar + + subroutine foo + BLOCK_NAME: block + end block BLOCK_NAME + end subroutine foo + + subroutine bar() + end subroutine bar +end |