diff options
author | Daniel Franke <franke.daniel@gmail.com> | 2007-07-24 12:57:02 -0400 |
---|---|---|
committer | Daniel Franke <dfranke@gcc.gnu.org> | 2007-07-24 12:57:02 -0400 |
commit | fd8e2796db2f85f00d5d847088a714f547737360 (patch) | |
tree | 5f7057cb7bfdd9b2b0c93706b9a1e73123a1238a /gcc | |
parent | 3f2286f2a309eae914cf6de604374280a4fd7cdf (diff) | |
download | gcc-fd8e2796db2f85f00d5d847088a714f547737360.zip gcc-fd8e2796db2f85f00d5d847088a714f547737360.tar.gz gcc-fd8e2796db2f85f00d5d847088a714f547737360.tar.bz2 |
re PR fortran/32867 (ICE on nested initialization expressions)
gcc/fortran:
2007-07-24 Daniel Franke <franke.daniel@gmail.com>
PR fortran/32867
* expr.c (check_init_expr): Simplify matched functions.
gcc/testsuite:
2007-07-24 Daniel Franke <franke.daniel@gmail.com>
PR fortran/32867
* fortran.dg/initialization_10.f90: New test.
From-SVN: r126882
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/expr.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/initialization_10.f90 | 32 |
4 files changed, 43 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6445cf1..62489c8 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,10 @@ 2007-07-24 Daniel Franke <franke.daniel@gmail.com> + PR fortran/32867 + * expr.c (check_init_expr): Simplify matched functions. + +2007-07-24 Daniel Franke <franke.daniel@gmail.com> + PR fortran/32778 * intrinsic.c (add_sym): Do not exclude any symbols, even if not part of the selected standard. diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index 0028724..8e608ed 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -2132,7 +2132,7 @@ check_init_expr (gfc_expr *e) } if (m == MATCH_YES) - t = SUCCESS; + t = gfc_simplify_expr (e, 0); break; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1a75a1f..3b36d6a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2007-07-24 Daniel Franke <franke.daniel@gmail.com> + PR fortran/32867 + * fortran.dg/initialization_10.f90: New test. + +2007-07-24 Daniel Franke <franke.daniel@gmail.com> + PR fortran/32778 * gfortran.dg/imag_2.f: Removed * gfortran.dg/warn_std_1.f90: New test. diff --git a/gcc/testsuite/gfortran.dg/initialization_10.f90 b/gcc/testsuite/gfortran.dg/initialization_10.f90 new file mode 100644 index 0000000..92d9df5 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/initialization_10.f90 @@ -0,0 +1,32 @@ +! { dg-do compile } +! +! PR fortran/32867 - nested initialization expression not simplified +! +! Testcase contributed by H. J. Lu <hjl AT lucon DOT org> +! + +MODULE Readdata_mod +IMPLICIT NONE +Private +Public Parser + integer, parameter :: nkeywords = 2 +character(80), PARAMETER, dimension(1:nkeywords) :: keywords = & +(/'PROBLEMSIZE ', & + 'NFTRANS_TD '/) + +CONTAINS +SUBROUTINE Parser(nx, ny, keyword) +integer, intent(inout) :: nx, ny +character(80), intent(inout) :: keyword + +select case (keyword) + case (trim(keywords(1))) ! PROBLEMSIZE + nx = 1 + case (trim(keywords(2))) !'NFTRANS_TD' + ny = 1 +end select + +END SUBROUTINE Parser +END MODULE Readdata_mod + +! { dg-final { cleanup-modules "Readdata_mod" } } |