aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2014-08-22 18:43:50 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2014-08-22 18:43:50 +0000
commitf172301ff40160dedd796d9846613e2706f7e3ea (patch)
treede25251af4f315ddc40ce91466bee5d1aedab763 /gcc/fortran/resolve.c
parent596e808cf6cc91f556838099b832bd01ce71e828 (diff)
downloadgcc-f172301ff40160dedd796d9846613e2706f7e3ea.zip
gcc-f172301ff40160dedd796d9846613e2706f7e3ea.tar.gz
gcc-f172301ff40160dedd796d9846613e2706f7e3ea.tar.bz2
re PR fortran/62135 (ICE with invalid SELECT CASE selector)
fortran/ PR fortran/62135 * resolve.c (resolve_select): Fix list traversal in case the last element of the CASE list was dropped as unreachable code. testsuite/ PR fortran/62135 * gfortran.dg/pr62135.f90: New test. From-SVN: r214351
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 32ff9dd..52aae90e 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -7761,7 +7761,7 @@ resolve_select (gfc_code *code, bool select_type)
/* Strip all other unreachable cases. */
if (body->ext.block.case_list)
{
- for (cp = body->ext.block.case_list; cp->next; cp = cp->next)
+ for (cp = body->ext.block.case_list; cp && cp->next; cp = cp->next)
{
if (cp->next->unreachable)
{