* [Bug lto/91027] [10 regression] SEGV in hash_table<odr_name_hasher, false, xcallocator>::find_slot_with_hash
[not found] <bug-91027-4@http.gcc.gnu.org/bugzilla/>
@ 2020-03-17 19:11 ` ibuclaw at gdcproject dot org
2020-03-20 16:26 ` cvs-commit at gcc dot gnu.org
` (7 subsequent siblings)
8 siblings, 0 replies; 9+ messages in thread
From: ibuclaw at gdcproject dot org @ 2020-03-17 19:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027
Iain Buclaw <ibuclaw at gdcproject dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ibuclaw at gdcproject dot org
--- Comment #11 from Iain Buclaw <ibuclaw at gdcproject dot org> ---
Jan, which would be most preferable for you, setting TYPE_CXX_ODR_P, or
removing SET_DECL_ASSEMBLER_NAME on the TYPE_DECL? Either fixes the problem in
the D front-end.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug lto/91027] [10 regression] SEGV in hash_table<odr_name_hasher, false, xcallocator>::find_slot_with_hash
[not found] <bug-91027-4@http.gcc.gnu.org/bugzilla/>
2020-03-17 19:11 ` [Bug lto/91027] [10 regression] SEGV in hash_table<odr_name_hasher, false, xcallocator>::find_slot_with_hash ibuclaw at gdcproject dot org
@ 2020-03-20 16:26 ` cvs-commit at gcc dot gnu.org
2020-03-20 16:28 ` ibuclaw at gcc dot gnu.org
` (6 subsequent siblings)
8 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-03-20 16:26 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027
--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Iain Buclaw <ibuclaw@gcc.gnu.org>:
https://gcc.gnu.org/g:b5446d0cc09e6a931065b98101d799711fd5b035
commit r10-7302-gb5446d0cc09e6a931065b98101d799711fd5b035
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date: Fri Mar 20 17:26:29 2020 +0100
d: Fix SEGV in hash_table<odr_name_hasher, false,
xcallocator>::find_slot_with_hash
This patch fixes LTO bug with the D front-end. As DECL_ASSEMBLER_NAME
is set on the TYPE_DECL, so TYPE_CXX_ODR_P must also be set on the type.
The addition of merge_aggregate_types is not strictly needed now, but it
fixes a problem introduced in newer versions of the dmd front-end where
templated types could be sent more than once to the D code generator.
gcc/d/ChangeLog:
2020-03-20 Iain Buclaw <ibuclaw@gdcproject.org>
PR lto/91027
* d-tree.h (struct GTY): Add daggregate field.
(IDENTIFIER_DAGGREGATE): Define.
(d_mangle_decl): Add declaration.
* decl.cc (mangle_decl): Remove static linkage, rename to...
(d_mangle_decl): ...this, update all callers.
* types.cc (merge_aggregate_types): New function.
(TypeVisitor::visit (TypeStruct *)): Call merge_aggregate_types,
set
IDENTIFIER_DAGGREGATE and TYPE_CXX_ODR_P.
(TypeVisitor::visit (TypeClass *)): Likewise.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug lto/91027] [10 regression] SEGV in hash_table<odr_name_hasher, false, xcallocator>::find_slot_with_hash
[not found] <bug-91027-4@http.gcc.gnu.org/bugzilla/>
2020-03-17 19:11 ` [Bug lto/91027] [10 regression] SEGV in hash_table<odr_name_hasher, false, xcallocator>::find_slot_with_hash ibuclaw at gdcproject dot org
2020-03-20 16:26 ` cvs-commit at gcc dot gnu.org
@ 2020-03-20 16:28 ` ibuclaw at gcc dot gnu.org
2020-03-25 11:49 ` ro at gcc dot gnu.org
` (5 subsequent siblings)
8 siblings, 0 replies; 9+ messages in thread
From: ibuclaw at gcc dot gnu.org @ 2020-03-20 16:28 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027
ibuclaw at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ibuclaw at gcc dot gnu.org
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #13 from ibuclaw at gcc dot gnu.org ---
I just went with setting TYPE_CXX_ODR_P.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug lto/91027] [10 regression] SEGV in hash_table<odr_name_hasher, false, xcallocator>::find_slot_with_hash
[not found] <bug-91027-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2020-03-20 16:28 ` ibuclaw at gcc dot gnu.org
@ 2020-03-25 11:49 ` ro at gcc dot gnu.org
2020-04-01 17:13 ` ibuclaw at gdcproject dot org
` (4 subsequent siblings)
8 siblings, 0 replies; 9+ messages in thread
From: ro at gcc dot gnu.org @ 2020-03-25 11:49 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027
Rainer Orth <ro at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|FIXED |---
Status|RESOLVED |REOPENED
--- Comment #14 from Rainer Orth <ro at gcc dot gnu.org> ---
Unfortunately, the bug is not fixed: while the original SEGV doesn't happen any
longer, I now see the ICE originally reported in Comment #6 on both
i386-pc-solaris2.11
and sparc-sun-solaris2.11:
FAIL: gdc.dg/lto/ltotests d_lto_ltotests_0.o-d_lto_ltotests_1.o link, -O0 -flto
-flto-partition=none (internal compiler error)
during IPA pass: pure-const^M
lto1: internal compiler error: in get_odr_type, at ipa-devirt.c:1936^M
0x7c4dfb get_odr_type(tree_node*, bool)^M
/vol/gcc/src/hg/master/local/gcc/ipa-devirt.c:1936^M
0x7cba63 build_type_inheritance_graph()^M
/vol/gcc/src/hg/master/local/gcc/ipa-devirt.c:2283^M
0x822f83 symbol_table::remove_unreachable_nodes(__FILE*)^M
/vol/gcc/src/hg/master/local/gcc/ipa.c:320^M
0x476fd7 read_cgraph_and_symbols(unsigned int, char const**)^M
/vol/gcc/src/hg/master/local/gcc/lto/lto-common.c:2915^M
0x459043 lto_main()^M
/vol/gcc/src/hg/master/local/gcc/lto/lto.c:625^M
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug lto/91027] [10 regression] SEGV in hash_table<odr_name_hasher, false, xcallocator>::find_slot_with_hash
[not found] <bug-91027-4@http.gcc.gnu.org/bugzilla/>
` (3 preceding siblings ...)
2020-03-25 11:49 ` ro at gcc dot gnu.org
@ 2020-04-01 17:13 ` ibuclaw at gdcproject dot org
2020-04-01 17:14 ` ibuclaw at gdcproject dot org
` (3 subsequent siblings)
8 siblings, 0 replies; 9+ messages in thread
From: ibuclaw at gdcproject dot org @ 2020-04-01 17:13 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027
--- Comment #15 from Iain Buclaw <ibuclaw at gdcproject dot org> ---
Rainer, Unless I'm mistaken, that is the same secondary bug I raised in pr94290
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug lto/91027] [10 regression] SEGV in hash_table<odr_name_hasher, false, xcallocator>::find_slot_with_hash
[not found] <bug-91027-4@http.gcc.gnu.org/bugzilla/>
` (4 preceding siblings ...)
2020-04-01 17:13 ` ibuclaw at gdcproject dot org
@ 2020-04-01 17:14 ` ibuclaw at gdcproject dot org
2020-04-01 17:16 ` ibuclaw at gdcproject dot org
` (2 subsequent siblings)
8 siblings, 0 replies; 9+ messages in thread
From: ibuclaw at gdcproject dot org @ 2020-04-01 17:14 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027
--- Comment #16 from Iain Buclaw <ibuclaw at gdcproject dot org> ---
Oops, apparently I mistyped the pr reference in the changelog.
The real bug report is pr94240.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug lto/91027] [10 regression] SEGV in hash_table<odr_name_hasher, false, xcallocator>::find_slot_with_hash
[not found] <bug-91027-4@http.gcc.gnu.org/bugzilla/>
` (5 preceding siblings ...)
2020-04-01 17:14 ` ibuclaw at gdcproject dot org
@ 2020-04-01 17:16 ` ibuclaw at gdcproject dot org
2020-04-02 8:34 ` ro at CeBiTec dot Uni-Bielefeld.DE
2020-04-02 8:34 ` ro at gcc dot gnu.org
8 siblings, 0 replies; 9+ messages in thread
From: ibuclaw at gdcproject dot org @ 2020-04-01 17:16 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027
--- Comment #17 from Iain Buclaw <ibuclaw at gdcproject dot org> ---
The commit for it is here.
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=98eb7b2ed249537d12004f2c58583140ac25d666
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug lto/91027] [10 regression] SEGV in hash_table<odr_name_hasher, false, xcallocator>::find_slot_with_hash
[not found] <bug-91027-4@http.gcc.gnu.org/bugzilla/>
` (6 preceding siblings ...)
2020-04-01 17:16 ` ibuclaw at gdcproject dot org
@ 2020-04-02 8:34 ` ro at CeBiTec dot Uni-Bielefeld.DE
2020-04-02 8:34 ` ro at gcc dot gnu.org
8 siblings, 0 replies; 9+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld.DE @ 2020-04-02 8:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027
--- Comment #18 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> --- Comment #17 from Iain Buclaw <ibuclaw at gdcproject dot org> ---
> The commit for it is here.
> https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=98eb7b2ed249537d12004f2c58583140ac25d666
I just noticed that I had a previous workaround of yours for the SEGV
still in my tree. Once I'd removed that, the failures were gone. Sorry
for the noise.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug lto/91027] [10 regression] SEGV in hash_table<odr_name_hasher, false, xcallocator>::find_slot_with_hash
[not found] <bug-91027-4@http.gcc.gnu.org/bugzilla/>
` (7 preceding siblings ...)
2020-04-02 8:34 ` ro at CeBiTec dot Uni-Bielefeld.DE
@ 2020-04-02 8:34 ` ro at gcc dot gnu.org
8 siblings, 0 replies; 9+ messages in thread
From: ro at gcc dot gnu.org @ 2020-04-02 8:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91027
Rainer Orth <ro at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |RESOLVED
Resolution|--- |FIXED
--- Comment #19 from Rainer Orth <ro at gcc dot gnu.org> ---
Fixed indeed.
^ permalink raw reply [flat|nested] 9+ messages in thread