diff options
author | Martin Liska <mliska@suse.cz> | 2019-10-24 10:49:02 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-10-24 08:49:02 +0000 |
commit | d136595df77f75bc6e5132e26f09cad031f38c71 (patch) | |
tree | 26803e010c153593fe9cf23c845d7eae3e88e346 /gcc/fortran/resolve.c | |
parent | 0214d31a48f867b9b00134cea7223d35ed7865aa (diff) | |
download | gcc-d136595df77f75bc6e5132e26f09cad031f38c71.zip gcc-d136595df77f75bc6e5132e26f09cad031f38c71.tar.gz gcc-d136595df77f75bc6e5132e26f09cad031f38c71.tar.bz2 |
Fix another UBSAN in Fortran coarray.
2019-10-24 Martin Liska <mliska@suse.cz>
PR fortran/92174
* array.c (gfc_resolve_array_spec): Break the loop
for out of bounds index.
* resolve.c (is_non_constant_shape_array): Likewise.
From-SVN: r277367
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 93f2d0a..5deeb4f 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -12266,6 +12266,9 @@ is_non_constant_shape_array (gfc_symbol *sym) simplification now. */ for (i = 0; i < sym->as->rank + sym->as->corank; i++) { + if (i == GFC_MAX_DIMENSIONS) + break; + e = sym->as->lower[i]; if (e && (!resolve_index_expr(e) || !gfc_is_constant_expr (e))) |