public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "pault at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/96320] gfortran 8-10 shape mismatch in assumed-length dummy argument character array Date: Mon, 27 Jul 2020 07:26:06 +0000 [thread overview] Message-ID: <bug-96320-4-DsGUHenwmS@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-96320-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96320 Paul Thomas <pault at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |pault at gcc dot gnu.org CC| |pault at gcc dot gnu.org --- Comment #10 from Paul Thomas <pault at gcc dot gnu.org> --- Confirmed. The argument in the interface is assumed shape, as expected, while its shadow in the module procedure is tagged as deferred shape. Yet another fix (!): index ba1c8bc322e..9e822f5c396 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -1464,8 +1464,12 @@ gfc_check_dummy_characteristics (gfc_symbol *s1, gfc_symb ol *s2, { int i, compval; gfc_expr *shape1, *shape2; + bool module_procedure; - if (s1->as->type != s2->as->type) + module_procedure = s1->ns->proc_name && + s1->ns->proc_name->attr.module_procedure; + + if (s1->as->type != s2->as->type && !module_procedure) { snprintf (errmsg, err_len, "Shape mismatch in argument '%s'", s1->name); This fixes the problem but I rather think that the proper way to do it is further upstream. decl.c(gfc_match_submod_proc) looks as if the array spec is copied as it should be but I need to do a gdb session to check this. I'll have to put my thinking cap on regarding Steve's offering in comment 5. It should be noted that the submodule version works as intended in all versions of gfortran for which submodules are implemented: module foobar type foo contains procedure, nopass :: bar end type interface module subroutine bar(arg) character(len=*) arg(:) end subroutine end interface end module submodule (foobar) sbar contains module procedure bar print *, arg end procedure end submodule use foobar character(4) :: book(2) = ['abcd', 'efgh'] call bar(book) end I'm onto it. Thanks for the report Paul
next prev parent reply other threads:[~2020-07-27 7:26 UTC|newest] Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-26 4:47 [Bug fortran/96320] New: " damian at sourceryinstitute dot org 2020-07-26 16:34 ` [Bug fortran/96320] " dominiq at lps dot ens.fr 2020-07-26 16:44 ` damian at sourceryinstitute dot org 2020-07-26 16:54 ` dominiq at lps dot ens.fr 2020-07-26 18:43 ` kargl at gcc dot gnu.org 2020-07-26 19:13 ` kargl at gcc dot gnu.org 2020-07-26 21:35 ` jvdelisle at charter dot net 2020-07-27 0:39 ` damian at sourceryinstitute dot org 2020-07-27 0:45 ` sgk at troutmask dot apl.washington.edu 2020-07-27 3:34 ` damian at sourceryinstitute dot org 2020-07-27 7:26 ` pault at gcc dot gnu.org [this message] 2020-07-27 11:37 ` dominiq at lps dot ens.fr 2020-07-27 17:26 ` pault at gcc dot gnu.org 2020-07-27 18:12 ` damian at sourceryinstitute dot org 2020-07-27 19:03 ` dominiq at lps dot ens.fr 2020-07-28 9:24 ` dominiq at lps dot ens.fr 2020-07-28 9:43 ` paul.richard.thomas at gmail dot com 2020-07-28 10:32 ` dominiq at lps dot ens.fr 2020-07-28 14:13 ` sgk at troutmask dot apl.washington.edu 2020-07-28 15:18 ` dominiq at lps dot ens.fr 2020-08-02 10:00 ` cvs-commit at gcc dot gnu.org 2020-08-02 10:05 ` pault at gcc dot gnu.org 2020-08-03 23:45 ` damian at sourceryinstitute dot org 2020-08-04 1:53 ` sgk at troutmask dot apl.washington.edu 2020-08-15 1:59 ` damian at sourceryinstitute dot org 2020-08-20 17:17 ` damian at sourceryinstitute dot org 2020-12-28 14:55 ` cvs-commit at gcc dot gnu.org 2021-01-04 14:42 ` cvs-commit at gcc dot gnu.org 2021-01-04 15:15 ` pault at gcc dot gnu.org 2021-01-21 10:01 ` cvs-commit at gcc dot gnu.org 2023-10-31 14:17 ` pault at gcc dot gnu.org
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=bug-96320-4-DsGUHenwmS@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@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).