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 r10-10106] Fortran: Fix host associated PDT entity initialization Date: Fri, 10 Sep 2021 19:40:37 +0000 (GMT) [thread overview] Message-ID: <20210910194037.831EB384A8B2@sourceware.org> (raw) https://gcc.gnu.org/g:714b85f6fce0448b9d4d5e5d21152a3478b27422 commit r10-10106-g714b85f6fce0448b9d4d5e5d21152a3478b27422 Author: Paul Thomas <pault@gcc.gnu.org> Date: Tue Apr 20 07:30:07 2021 +0100 Fortran: Fix host associated PDT entity initialization 2021-04-20 Paul Thomas <pault@gcc.gnu.org> gcc/fortran PR fortran/100110 * trans-decl.c (gfc_get_symbol_decl): Replace test for host association with a check that the current and symbol namespaces are the same. gcc/testsuite/ PR fortran/100110 * gfortran.dg/pdt_31.f03: New test. * gfortran.dg/pdt_26.f03: Reduce 'builtin_malloc' count from 9 to 8. (cherry picked from commit 67378cd63d62bf0c69e966d1d202a1e586550a68) Diff: --- gcc/fortran/trans-decl.c | 3 ++- gcc/testsuite/gfortran.dg/pdt_26.f03 | 4 ++-- gcc/testsuite/gfortran.dg/pdt_31.f03 | 26 ++++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 27b4a9bc73d..c7dec272037 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -1534,7 +1534,8 @@ gfc_get_symbol_decl (gfc_symbol * sym) declaration of the entity and memory allocated/deallocated. */ if ((sym->ts.type == BT_DERIVED || sym->ts.type == BT_CLASS) && sym->param_list != NULL - && !(sym->attr.host_assoc || sym->attr.use_assoc || sym->attr.dummy)) + && gfc_current_ns == sym->ns + && !(sym->attr.use_assoc || sym->attr.dummy)) gfc_defer_symbol_init (sym); /* Dummy PDT 'len' parameters should be checked when they are explicit. */ diff --git a/gcc/testsuite/gfortran.dg/pdt_26.f03 b/gcc/testsuite/gfortran.dg/pdt_26.f03 index bf1273743d3..59ddcfb6cc4 100644 --- a/gcc/testsuite/gfortran.dg/pdt_26.f03 +++ b/gcc/testsuite/gfortran.dg/pdt_26.f03 @@ -2,7 +2,7 @@ ! { dg-options "-fdump-tree-original" } ! ! Test the fix for PR83567 in which the parameterized component 'foo' was -! being deallocated before return from 'addw', with consequent segfault in +! being deallocated before return from 'addw', with consequent segfault in ! the main program. ! ! Contributed by Berke Durak <berke.durak@gmail.com> @@ -43,4 +43,4 @@ program test_pdt if (any (c(1)%foo .ne. [13,15,17])) STOP 2 end program test_pdt ! { dg-final { scan-tree-dump-times "__builtin_free" 8 "original" } } -! { dg-final { scan-tree-dump-times "__builtin_malloc" 9 "original" } } +! { dg-final { scan-tree-dump-times "__builtin_malloc" 8 "original" } } diff --git a/gcc/testsuite/gfortran.dg/pdt_31.f03 b/gcc/testsuite/gfortran.dg/pdt_31.f03 new file mode 100644 index 00000000000..708c9454217 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pdt_31.f03 @@ -0,0 +1,26 @@ +! { dg-do run } +! +! Test the fix for PR100110, in which 'obj' was not being initialized. +! +! Contributed by Xiao Liu <xiao.liu@compiler-dev.com> +! +program p + implicit none + type t(n) + integer, len :: n + integer :: arr(n, n) + end type + + type(t(2)) :: obj + + obj%arr = reshape ([1,2,3,4],[2,2]) + if (obj%n .ne. 2) stop 1 + if (any (shape(obj%arr) .ne. [2,2])) stop 2 + call test() +contains + subroutine test() + if (obj%n .ne. 2) stop 3 + if (any (shape(obj%arr) .ne. [2,2])) stop 4 + if (any (reshape (obj%arr, [4]) .ne. [1,2,3,4])) stop 5 + end subroutine +end program
reply other threads:[~2021-09-10 19:40 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=20210910194037.831EB384A8B2@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).