aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2010-07-26 12:30:45 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2010-07-26 12:30:45 +0200
commit71ff73f3fbaac481a9c3c9f49c885e9a5bdee84b (patch)
tree1ed9d52990ece8fc0f17b1e1a024c78fbb1716ee /gcc
parentaa622bf19fab077261cd2f714c75b39a4b66ac86 (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/fortran/trans-decl.c3
-rw-r--r--gcc/fortran/trans-io.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/namelist_62.f9020
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" } }