aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-io.cc
diff options
context:
space:
mode:
authorHarald Anlauf <anlauf@gmx.de>2024-08-29 21:21:39 +0200
committerHarald Anlauf <anlauf@gmx.de>2024-08-29 21:21:39 +0200
commit6bfeba12c86b4d0dae27d99b484f64774dd49398 (patch)
tree1a4100a5240e63a509cd0822081504d6a2abea0b /gcc/fortran/trans-io.cc
parent81c47986e1d8efa70a4bd28e8dfc62bfca8e8362 (diff)
downloadgcc-6bfeba12c86b4d0dae27d99b484f64774dd49398.zip
gcc-6bfeba12c86b4d0dae27d99b484f64774dd49398.tar.gz
gcc-6bfeba12c86b4d0dae27d99b484f64774dd49398.tar.bz2
Fortran: fix ICE with use with rename of namelist member [PR116530]
gcc/fortran/ChangeLog: PR fortran/116530 * trans-io.cc (transfer_namelist_element): Prevent NULL pointer dereference. gcc/testsuite/ChangeLog: PR fortran/116530 * gfortran.dg/use_rename_12.f90: New test.
Diffstat (limited to 'gcc/fortran/trans-io.cc')
-rw-r--r--gcc/fortran/trans-io.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/trans-io.cc b/gcc/fortran/trans-io.cc
index 7ab82fa..c0baa71 100644
--- a/gcc/fortran/trans-io.cc
+++ b/gcc/fortran/trans-io.cc
@@ -1692,7 +1692,8 @@ transfer_namelist_element (stmtblock_t * block, const char * var_name,
gcc_assert (sym || c);
/* Build the namelist object name. */
- if (sym && !sym->attr.use_only && sym->attr.use_rename)
+ if (sym && !sym->attr.use_only && sym->attr.use_rename
+ && sym->ns->use_stmts->rename)
string = gfc_build_cstring_const (sym->ns->use_stmts->rename->local_name);
else
string = gfc_build_cstring_const (var_name);