public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "cvs-commit at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/99174] [modules] ICE with recursive inclusion of header-unit
Date: Mon, 22 Feb 2021 15:51:52 +0000	[thread overview]
Message-ID: <bug-99174-4-2Qbw2fK04I@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-99174-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99174

--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Nathan Sidwell <nathan@gcc.gnu.org>:

https://gcc.gnu.org/g:afed55036b65526be006d55f003f670ebeadb223

commit r11-7324-gafed55036b65526be006d55f003f670ebeadb223
Author: Nathan Sidwell <nathan@acm.org>
Date:   Mon Feb 22 07:43:56 2021 -0800

    c++: Recursing header imports and other duplicates [PR 99174]

    The fix for 98741 introduced two issues.  (a) recursive header units
    iced because we tried to read the preprocessor state after having
    failed to read the config.  (b) we could have duplicate imports of
    named modules in our pending queue, and that would lead to duplicate
    requests for pathnames, which coupled with the use of a null-pathname
    to indicate we'd asked could lead to desynchronization with the module
    mapper.  Fixed by adding a 'visited' flag to module state, so we ask
    exactly once.

            PR c++/99174
            gcc/cp
            * module.cc (struct module_state): Add visited_p flag.
            (name_pending_imports): Use it to avoid duplicate requests.
            (preprocess_module): Don't read preprocessor state if we failed to
            load a module's config.
            gcc/testsuite/
            * g++.dg/modules/pr99174-1_a.C: New.
            * g++.dg/modules/pr99174-1_b.C: New.
            * g++.dg/modules/pr99174-1_c.C: New.
            * g++.dg/modules/pr99174.H: New.

  parent reply	other threads:[~2021-02-22 15:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-19 21:52 [Bug c++/99174] New: " nathan at gcc dot gnu.org
2021-02-22 13:46 ` [Bug c++/99174] " nathan at gcc dot gnu.org
2021-02-22 15:51 ` cvs-commit at gcc dot gnu.org [this message]
2021-02-22 15:53 ` nathan 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-99174-4-2Qbw2fK04I@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: link
Be 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).