diff options
author | Tobias Burnus <burnus@net-b.de> | 2010-07-26 12:30:45 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2010-07-26 12:30:45 +0200 |
commit | 71ff73f3fbaac481a9c3c9f49c885e9a5bdee84b (patch) | |
tree | 1ed9d52990ece8fc0f17b1e1a024c78fbb1716ee /gcc | |
parent | aa622bf19fab077261cd2f714c75b39a4b66ac86 (diff) | |
download | gcc-71ff73f3fbaac481a9c3c9f49c885e9a5bdee84b.zip gcc-71ff73f3fbaac481a9c3c9f49c885e9a5bdee84b.tar.gz gcc-71ff73f3fbaac481a9c3c9f49c885e9a5bdee84b.tar.bz2 |
re PR fortran/45066 (ICE in namelist read in snapshot of 7/24/2010)
2010-07-26 Tobias Burnus <burnus@net-b.de>
PR fortran/45066
* trans-io.c (build_dt): Use NULL_TREE rather than NULL
for call to transfer_namelist_element.
* trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
for -fwhole-file.
2010-07-26 Tobias Burnus <burnus@net-b.de>
PR fortran/45066
* gfortran.dg/namelist_62.f90: New.
From-SVN: r162532
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/fortran/trans-decl.c | 3 | ||||
-rw-r--r-- | gcc/fortran/trans-io.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/namelist_62.f90 | 20 |
5 files changed, 36 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index f29ccca..999d38e 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,11 @@ +2010-07-26 Tobias Burnus <burnus@net-b.de> + + PR fortran/45066 + * trans-io.c (build_dt): Use NULL_TREE rather than NULL + for call to transfer_namelist_element. + * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl + for -fwhole-file. + 2010-07-25 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/40628 diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index a1789ea..4a3fcd8 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -1150,7 +1150,8 @@ gfc_get_symbol_decl (gfc_symbol * sym) true); if (sym->ts.type == BT_CHARACTER) sym->ts.u.cl->backend_decl = s->ts.u.cl->backend_decl; - return s->backend_decl; + sym->backend_decl = s->backend_decl; + return sym->backend_decl; } } } diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c index a806d42..00c44e7 100644 --- a/gcc/fortran/trans-io.c +++ b/gcc/fortran/trans-io.c @@ -1760,7 +1760,7 @@ build_dt (tree function, gfc_code * code) for (nml = dt->namelist->namelist; nml; nml = nml->next) transfer_namelist_element (&block, nml->sym->name, nml->sym, - NULL, NULL); + NULL, NULL_TREE); } else set_parameter_const (&block, var, IOPARM_common_flags, mask); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7897b05..b9de6e4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-07-26 Tobias Burnus <burnus@net-b.de> + + PR fortran/45066 + * gfortran.dg/namelist_62.f90: New. + 2010-07-26 Richard Guenther <rguenther@suse.de> * gcc.c-torture/execute/pr45017.c: Move ... diff --git a/gcc/testsuite/gfortran.dg/namelist_62.f90 b/gcc/testsuite/gfortran.dg/namelist_62.f90 new file mode 100644 index 0000000..23e2562 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/namelist_62.f90 @@ -0,0 +1,20 @@ +! { dg-do compile } +! +! PR fortran/45066 +! +! Contributed by Michael Richmond. +! +! Was failing due to a -fwhole-file bug. +! + +MODULE GA_commons + INTEGER :: nichflg(2) +END MODULE GA_commons + +PROGRAM gafortran + USE GA_commons + NAMELIST /ga/ nichflg + READ (23, nml=ga) +END PROGRAM gafortran + +! { dg-final { cleanup-modules "ga_commons" } } |