public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "markeggleston at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/82721] [8/9/10/11 Regression] Error message with corrupted text, sometimes ICE Date: Wed, 23 Sep 2020 15:25:37 +0000 [thread overview] Message-ID: <bug-82721-4-ZaKdhdzDNS@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-82721-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82721 markeggleston at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |markeggleston at gcc dot gnu.org --- Comment #10 from markeggleston at gcc dot gnu.org --- Using the bare minimum: integer :: b character(len(c)) :: b end I consistently get: 2 | character(len(c)) :: b | 1 Error: Symbol ‘b’ at (1) already has basic type of INTEGER pr82721temp.f90:2:14: 2 | character(len(c)) :: b | 1 Error: Statement function ‘’ at (1) is not allowed as an actual argument The second error pops out when the following code in resolve_types (resolve.c) is executed: for (cl = ns->cl_list; cl; cl = cl->next) resolve_charlen (cl); The list of character lengths is corrupt, the first item points to an expression of type EXPR_FUNCTION however its symtree has the name "end" instead of "len" it had when it was first added to the character lengths list. When reject_statement is called for "character(len(c)) :: b" the symtree structure for "len" is deleted, unfortunately the reference to the deleted symtree structure remains untouched in the expression representing the character length. Later a symtree is created for "end" which matches the symtree referenced by the character length expression thus the name is changed to "end" and the symtree points to symbol. As an experiment using a nasty dirty hack I prevent the symtree being deleted if it was referenced by the expression pointed to by the length field of the charlen structure. It had not affect on the reported errors. I have since discovered that the expression that is the first argument of the "len" function also has a symtree that is deleted which the reference remains as is. Note: the comment preceding reject_statement says: /* Undo anything tentative that has been built for the current statement, except if a gfc_charlen structure has been added to current namespace's list of gfc_charlen structure. */ Clearly this is not the case as items referenced indirectly from the gfc_charlen structure are deleted without references being touched. Further investigation is in progress.
next parent reply other threads:[~2020-09-23 15:25 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <bug-82721-4@http.gcc.gnu.org/bugzilla/> 2020-09-23 15:25 ` markeggleston at gcc dot gnu.org [this message] 2020-09-28 7:49 ` markeggleston at gcc dot gnu.org 2020-10-09 19:54 ` anlauf at gcc dot gnu.org 2021-03-03 7:38 ` zeccav at gmail dot com 2021-05-14 9:49 ` [Bug fortran/82721] [9/10/11/12 " jakub at gcc dot gnu.org 2021-06-01 8:09 ` rguenth at gcc dot gnu.org 2022-05-27 9:37 ` [Bug fortran/82721] [10/11/12/13 " rguenth at gcc dot gnu.org 2022-06-28 10:33 ` jakub at gcc dot gnu.org 2023-07-07 10:32 ` [Bug fortran/82721] [11/12/13/14 " rguenth 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-82721-4-ZaKdhdzDNS@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).