public inbox for gcc-cvs@sourceware.org help / color / mirror / Atom feed
From: Harald Anlauf <anlauf@gcc.gnu.org> To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-7032] Fortran: reject simplifying TRANSFER for MOLD with storage size 0 Date: Thu, 3 Feb 2022 18:42:43 +0000 (GMT) [thread overview] Message-ID: <20220203184243.B24453858D35@sourceware.org> (raw) https://gcc.gnu.org/g:4e4252db0348a7274663a892c3a96d3ed7702aff commit r12-7032-g4e4252db0348a7274663a892c3a96d3ed7702aff Author: Harald Anlauf <anlauf@gmx.de> Date: Tue Feb 1 23:33:24 2022 +0100 Fortran: reject simplifying TRANSFER for MOLD with storage size 0 gcc/fortran/ChangeLog: PR fortran/104311 * check.cc (gfc_calculate_transfer_sizes): Checks for case when storage size of SOURCE is greater than zero while the storage size of MOLD is zero and MOLD is an array shall not depend on SIZE. gcc/testsuite/ChangeLog: PR fortran/104311 * gfortran.dg/transfer_simplify_15.f90: New test. Diff: --- gcc/fortran/check.cc | 2 +- gcc/testsuite/gfortran.dg/transfer_simplify_15.f90 | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/fortran/check.cc b/gcc/fortran/check.cc index d6c6767ae9e..fc97bb1371e 100644 --- a/gcc/fortran/check.cc +++ b/gcc/fortran/check.cc @@ -6150,7 +6150,7 @@ gfc_calculate_transfer_sizes (gfc_expr *source, gfc_expr *mold, gfc_expr *size, * representation is not shorter than that of SOURCE. * If SIZE is present, the result is an array of rank one and size SIZE. */ - if (result_elt_size == 0 && *source_size > 0 && !size + if (result_elt_size == 0 && *source_size > 0 && (mold->expr_type == EXPR_ARRAY || mold->rank)) { gfc_error ("%<MOLD%> argument of %<TRANSFER%> intrinsic at %L is an " diff --git a/gcc/testsuite/gfortran.dg/transfer_simplify_15.f90 b/gcc/testsuite/gfortran.dg/transfer_simplify_15.f90 new file mode 100644 index 00000000000..cdbec97ae71 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/transfer_simplify_15.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +! PR fortran/104311 - ICE out of memory +! Contributed by G.Steinmetz + +program p + type t + end type + type(t) :: x(2) + print *, transfer(1,x,2) ! { dg-error "shall not have storage size 0" } + print *, transfer(1,x,huge(1)) ! { dg-error "shall not have storage size 0" } +end
reply other threads:[~2022-02-03 18:42 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220203184243.B24453858D35@sourceware.org \ --to=anlauf@gcc.gnu.org \ --cc=gcc-cvs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).