public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/99208] New: [modules] ICE with partitions & instantiations of linkage-typedef structs
@ 2021-02-22 18:20 nathan at gcc dot gnu.org
2021-02-22 18:20 ` [Bug c++/99208] " nathan at gcc dot gnu.org
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: nathan at gcc dot gnu.org @ 2021-02-22 18:20 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99208
Bug ID: 99208
Summary: [modules] ICE with partitions & instantiations of
linkage-typedef structs
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: nathan at gcc dot gnu.org
Target Milestone: ---
Triaging 98718 ran into this:
// b_a.ii
module;
# 3 "b_a.ii" 1
typedef struct {} __mbstate_t;
template<typename _StateT> class fpos;
# 6 "" 2
export module hello:format;
export void format (const fpos<__mbstate_t> &);
// b_b.ii
export module hello;
export import :format;
zathras:94>./cc1plus -quiet -fmodules-ts b_a.ii && ./cc1plus -quiet
-fmodules-ts b_b.ii
b_b.ii:1:8: internal compiler error: in insert, at cp/module.cc:4904
1 | export module hello;
| ^~~~~~
0xcb1949 trees_out::insert(tree_node*, walk_kind)
../../../src/gcc/cp/module.cc:4904
0xcbaf8f trees_out::add_indirects(tree_node*)
../../../src/gcc/cp/module.cc:7328
0xcc1f6a trees_out::decl_node(tree_node*, walk_kind)
../../../src/gcc/cp/module.cc:8677
0xcc41c1 trees_out::tree_node(tree_node*)
../../../src/gcc/cp/module.cc:9179
0xcb1e4e trees_out::vec_chained_decls(tree_node*)
../../../src/gcc/cp/module.cc:4992
0xcd17a0 trees_out::write_class_def(tree_node*)
../../../src/gcc/cp/module.cc:11748
0xcd5947 trees_out::write_definition(tree_node*)
../../../src/gcc/cp/module.cc:12356
0xcd9299 depset::hash::find_dependencies(module_state*)
../../../src/gcc/cp/module.cc:13238
0xce60ed module_state::write(elf_out*, cpp_reader*)
../../../src/gcc/cp/module.cc:17611
0xcec92c finish_module_processing(cpp_reader*)
../../../src/gcc/cp/module.cc:19860
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/99208] [modules] ICE with partitions & instantiations of linkage-typedef structs
2021-02-22 18:20 [Bug c++/99208] New: [modules] ICE with partitions & instantiations of linkage-typedef structs nathan at gcc dot gnu.org
@ 2021-02-22 18:20 ` nathan at gcc dot gnu.org
2021-02-23 15:18 ` cvs-commit at gcc dot gnu.org
2021-02-23 15:18 ` nathan at gcc dot gnu.org
2 siblings, 0 replies; 4+ messages in thread
From: nathan at gcc dot gnu.org @ 2021-02-22 18:20 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99208
Nathan Sidwell <nathan at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Assignee|unassigned at gcc dot gnu.org |nathan at gcc dot gnu.org
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2021-02-22
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/99208] [modules] ICE with partitions & instantiations of linkage-typedef structs
2021-02-22 18:20 [Bug c++/99208] New: [modules] ICE with partitions & instantiations of linkage-typedef structs nathan at gcc dot gnu.org
2021-02-22 18:20 ` [Bug c++/99208] " nathan at gcc dot gnu.org
@ 2021-02-23 15:18 ` cvs-commit at gcc dot gnu.org
2021-02-23 15:18 ` nathan at gcc dot gnu.org
2 siblings, 0 replies; 4+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-02-23 15:18 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99208
--- 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:47145e6916f58e1cd4f562c06fa7289da49f690c
commit r11-7347-g47145e6916f58e1cd4f562c06fa7289da49f690c
Author: Nathan Sidwell <nathan@acm.org>
Date: Tue Feb 23 07:08:55 2021 -0800
c++: typedef for linkage [PR 99208]
Unnamed types with a typedef name for linkage were always troublesome
in modules. This is the underlying cause of that trouble -- we were
creating incorrect type structures. Classes have an implicit
self-reference, and we created that for unnamed classes too. It turns
out we make use of this member, so just not generating it turned into
a rathole. This member is created using the anonymous name -- because
we've not yet met the typedef name. When we retrofit the typedef name
we were checking identifier matching and changing all type variants
with that identifier. Which meant we ended up with a strange typedef
for the self reference. This fixes things to check for DECL identity
of the variants, so we don't smash the self-reference -- that
continues to have the anonymous name.
PR c++/99208
gcc/cp/
* decl.c (name_unnamed_type): Check DECL identity, not IDENTIFIER
identity.
gcc/testsuite/
* g++.dg/modules/pr99208_a.C: New.
* g++.dg/modules/pr99208_b.C: New.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/99208] [modules] ICE with partitions & instantiations of linkage-typedef structs
2021-02-22 18:20 [Bug c++/99208] New: [modules] ICE with partitions & instantiations of linkage-typedef structs nathan at gcc dot gnu.org
2021-02-22 18:20 ` [Bug c++/99208] " nathan at gcc dot gnu.org
2021-02-23 15:18 ` cvs-commit at gcc dot gnu.org
@ 2021-02-23 15:18 ` nathan at gcc dot gnu.org
2 siblings, 0 replies; 4+ messages in thread
From: nathan at gcc dot gnu.org @ 2021-02-23 15:18 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99208
Nathan Sidwell <nathan at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #2 from Nathan Sidwell <nathan at gcc dot gnu.org> ---
47145e6916f 2021-02-23 | c++: typedef for linkage [PR 99208]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-02-23 15:18 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-22 18:20 [Bug c++/99208] New: [modules] ICE with partitions & instantiations of linkage-typedef structs nathan at gcc dot gnu.org
2021-02-22 18:20 ` [Bug c++/99208] " nathan at gcc dot gnu.org
2021-02-23 15:18 ` cvs-commit at gcc dot gnu.org
2021-02-23 15:18 ` nathan at gcc dot gnu.org
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).