diff options
author | Harald Anlauf <anlauf@gmx.de> | 2023-05-21 22:25:29 +0200 |
---|---|---|
committer | Harald Anlauf <anlauf@gmx.de> | 2023-05-24 21:51:02 +0200 |
commit | 5fd5d8fb744fd9251d04e4b17d04f2340e6a283b (patch) | |
tree | 9ee11c528359762ed26cfdcba196f8641fb1811f /gcc/fortran/iresolve.cc | |
parent | efd2b55d8562c6e80cb7ee8b9b1f9418f0c00cd9 (diff) | |
download | gcc-5fd5d8fb744fd9251d04e4b17d04f2340e6a283b.zip gcc-5fd5d8fb744fd9251d04e4b17d04f2340e6a283b.tar.gz gcc-5fd5d8fb744fd9251d04e4b17d04f2340e6a283b.tar.bz2 |
Fortran: checking and simplification of RESHAPE intrinsic [PR103794]
gcc/fortran/ChangeLog:
PR fortran/103794
* check.cc (gfc_check_reshape): Expand constant arguments SHAPE and
ORDER before checking.
* gfortran.h (gfc_is_constant_array_expr): Add prototype.
* iresolve.cc (gfc_resolve_reshape): Expand constant argument SHAPE.
* simplify.cc (is_constant_array_expr): If array is determined to be
constant, expand small array constructors if needed.
(gfc_is_constant_array_expr): Wrapper for is_constant_array_expr.
(gfc_simplify_reshape): Fix check for insufficient elements in SOURCE
when no padding specified.
gcc/testsuite/ChangeLog:
PR fortran/103794
* gfortran.dg/reshape_10.f90: New test.
* gfortran.dg/reshape_11.f90: New test.
Diffstat (limited to 'gcc/fortran/iresolve.cc')
-rw-r--r-- | gcc/fortran/iresolve.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/iresolve.cc b/gcc/fortran/iresolve.cc index 7880aba..571e1bd 100644 --- a/gcc/fortran/iresolve.cc +++ b/gcc/fortran/iresolve.cc @@ -2424,7 +2424,7 @@ gfc_resolve_reshape (gfc_expr *f, gfc_expr *source, gfc_expr *shape, break; } - if (shape->expr_type == EXPR_ARRAY && gfc_is_constant_expr (shape)) + if (shape->expr_type == EXPR_ARRAY && gfc_is_constant_array_expr (shape)) { gfc_constructor *c; f->shape = gfc_get_shape (f->rank); |