* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
@ 2021-03-08 8:34 ` marxin at gcc dot gnu.org
2021-03-08 8:35 ` [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b marxin at gcc dot gnu.org
` (14 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-08 8:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |WAITING
Ever confirmed|0 |1
Last reconfirmed| |2021-03-08
--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Can you please reduce it to a valid test-case?
I see a compilation error for the reduced test-case:
$ g++ pr99445.C -c
pr99445.C:11:3: error: parse error in template argument list
11 | response_type_t < typename Handle::signatures,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12 | typename implicit_conversions<typename decay<Ts>::type>::type...
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pr99445.C:12:67: error: invalid declarator at end of input
12 | typename implicit_conversions<typename decay<Ts>::type>::type...
| ^
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
2021-03-08 8:34 ` [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 marxin at gcc dot gnu.org
@ 2021-03-08 8:35 ` marxin at gcc dot gnu.org
2021-03-08 8:57 ` rguenth at gcc dot gnu.org
` (13 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-08 8:35 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[11 Regression] ICE in |[11 Regression] ICE in
|hashtab_chk_error, at |hashtab_chk_error, at
|hash-table.c:137 |hash-table.c:137 since
| |r11-7011-g6e0a231a4aa2407b
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
Likely started with r11-7011-g6e0a231a4aa2407b.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
2021-03-08 8:34 ` [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 marxin at gcc dot gnu.org
2021-03-08 8:35 ` [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b marxin at gcc dot gnu.org
@ 2021-03-08 8:57 ` rguenth at gcc dot gnu.org
2021-03-08 9:12 ` doko at debian dot org
` (12 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-03-08 8:57 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P1
Target Milestone|--- |11.0
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (2 preceding siblings ...)
2021-03-08 8:57 ` rguenth at gcc dot gnu.org
@ 2021-03-08 9:12 ` doko at debian dot org
2021-03-08 9:17 ` marxin at gcc dot gnu.org
` (11 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: doko at debian dot org @ 2021-03-08 9:12 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
--- Comment #3 from Matthias Klose <doko at debian dot org> ---
> Can you please reduce it to a valid test-case?
the run took 40 hours. I'll see when I can repeat it.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (3 preceding siblings ...)
2021-03-08 9:12 ` doko at debian dot org
@ 2021-03-08 9:17 ` marxin at gcc dot gnu.org
2021-03-08 14:25 ` ppalka at gcc dot gnu.org
` (10 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-08 9:17 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Matthias Klose from comment #3)
> > Can you please reduce it to a valid test-case?
>
> the run took 40 hours. I'll see when I can repeat it.
I can imagine. Or you can try to somehow "fix" the reduced test-case so that
it's valid again :)
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (4 preceding siblings ...)
2021-03-08 9:17 ` marxin at gcc dot gnu.org
@ 2021-03-08 14:25 ` ppalka at gcc dot gnu.org
2021-03-08 14:41 ` marxin at gcc dot gnu.org
` (9 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: ppalka at gcc dot gnu.org @ 2021-03-08 14:25 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
--- Comment #5 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Reduced valid testcase:
template <class> struct implicit_conversions;
template <class T>
using implicit_conversions_t = typename implicit_conversions<T>::type;
template <class...> struct response_type;
template <class Handle, class... Ts>
using type1 = response_type<implicit_conversions_t<Ts>...>;
template <class Handle, class... Ts>
using type2 = response_type<typename implicit_conversions<Ts>::type...>;
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (5 preceding siblings ...)
2021-03-08 14:25 ` ppalka at gcc dot gnu.org
@ 2021-03-08 14:41 ` marxin at gcc dot gnu.org
2021-03-09 11:45 ` jakub at gcc dot gnu.org
` (8 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-08 14:41 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (6 preceding siblings ...)
2021-03-08 14:41 ` marxin at gcc dot gnu.org
@ 2021-03-09 11:45 ` jakub at gcc dot gnu.org
2021-03-16 9:25 ` marxin at gcc dot gnu.org
` (7 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-03-09 11:45 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(gdb) p debug_tree ($15->args)
<tree_vec 0x7fffea19ec80 length:1
elt:0 <type_argument_pack 0x7fffea1b4e70
type <tree_vec 0x7fffea19eca0 length:1 elt:0 <type_pack_expansion
0x7fffea1b4dc8>>
VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fffea1b4e70>>
$23 = void
(gdb) p debug_tree ($16->args)
<tree_vec 0x7fffea19eb80 length:1
elt:0 <type_argument_pack 0x7fffea1b4930
type <tree_vec 0x7fffea19eba0 length:1 elt:0 <type_pack_expansion
0x7fffea1b4888>>
VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fffea1b4930>>
$24 = void
(gdb) p iterative_hash_template_arg ($15->args, 0)
$25 = 1060540270
(gdb) p iterative_hash_template_arg ($16->args, 0)
$26 = 2053511766
(gdb) p comp_template_args ($15->args, $16->args, 0, 0, false)
$27 = 1
(gdb) p debug_tree (0x7fffea1b4dc8)
<type_pack_expansion 0x7fffea1b4dc8
type <typename_type 0x7fffea1b4738 type VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1 structural-equality
context <record_type 0x7fffea1b4690 implicit_conversions>
fullname <identifier_node 0x7fffea05b300 type
normal local bindings <(nil)>>
chain <type_decl 0x7fffea06ee40 type>>
VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1 structural-equality>
$28 = void
(gdb) p debug_tree (0x7fffea1b4888)
<type_pack_expansion 0x7fffea1b4888
type <typename_type 0x7fffea1b47e0 implicit_conversions_t VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1 structural-equality
context <record_type 0x7fffea1b4690 implicit_conversions>
fullname <identifier_node 0x7fffea05b300 type
normal local bindings <(nil)>>
chain <type_decl 0x7fffea06ee40 type>>
type_0 type_6 VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1 structural-equality>
$29 = void
and flag_concepts is false. So the template args hash differently but compare
equal.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (7 preceding siblings ...)
2021-03-09 11:45 ` jakub at gcc dot gnu.org
@ 2021-03-16 9:25 ` marxin at gcc dot gnu.org
2021-03-31 0:14 ` jason at gcc dot gnu.org
` (6 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-16 9:25 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
--- Comment #7 from Martin Liška <marxin at gcc dot gnu.org> ---
@Jason: Can you please take a look?
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (8 preceding siblings ...)
2021-03-16 9:25 ` marxin at gcc dot gnu.org
@ 2021-03-31 0:14 ` jason at gcc dot gnu.org
2021-03-31 13:58 ` cvs-commit at gcc dot gnu.org
` (5 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jason at gcc dot gnu.org @ 2021-03-31 0:14 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org
Status|NEW |ASSIGNED
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (9 preceding siblings ...)
2021-03-31 0:14 ` jason at gcc dot gnu.org
@ 2021-03-31 13:58 ` cvs-commit at gcc dot gnu.org
2021-03-31 21:32 ` jason at gcc dot gnu.org
` (4 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-03-31 13:58 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jason Merrill <jason@gcc.gnu.org>:
https://gcc.gnu.org/g:a2531859bf5bf6cf1f29c0dca85fd26e80904a5d
commit r11-7931-ga2531859bf5bf6cf1f29c0dca85fd26e80904a5d
Author: Jason Merrill <jason@redhat.com>
Date: Tue Mar 30 20:31:18 2021 -0400
c++: Alias template in pack expansion [PR99445]
In this testcase, iterative_hash_template_arg checks
alias_template_specialization_p to determine whether to treat a type as a
dependent alias, and structural_comptypes checks
dependent_alias_template_spec_p. Normally that difference isn't a problem
because canonicalizing template arguments strips non-dependent aliases, but
that wasn't happening for the pack expansion. Fixed thus.
gcc/cp/ChangeLog:
PR c++/99445
* tree.c (strip_typedefs): Handle TYPE_PACK_EXPANSION.
gcc/testsuite/ChangeLog:
PR c++/99445
* g++.dg/cpp0x/alias-decl-variadic1.C: New test.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (10 preceding siblings ...)
2021-03-31 13:58 ` cvs-commit at gcc dot gnu.org
@ 2021-03-31 21:32 ` jason at gcc dot gnu.org
2022-01-13 12:36 ` redi at gcc dot gnu.org
` (3 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: jason at gcc dot gnu.org @ 2021-03-31 21:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #9 from Jason Merrill <jason at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (11 preceding siblings ...)
2021-03-31 21:32 ` jason at gcc dot gnu.org
@ 2022-01-13 12:36 ` redi at gcc dot gnu.org
2022-01-13 17:27 ` redi at gcc dot gnu.org
` (2 subsequent siblings)
15 siblings, 0 replies; 17+ messages in thread
From: redi at gcc dot gnu.org @ 2022-01-13 12:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
--- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> ---
There's a report of a regression caused by this:
https://gcc.gnu.org/pipermail/gcc-help/2022-January/141127.html
I'll ask for it to be reported to bugzilla.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (12 preceding siblings ...)
2022-01-13 12:36 ` redi at gcc dot gnu.org
@ 2022-01-13 17:27 ` redi at gcc dot gnu.org
2022-03-28 13:37 ` cvs-commit at gcc dot gnu.org
2022-03-28 19:13 ` cvs-commit at gcc dot gnu.org
15 siblings, 0 replies; 17+ messages in thread
From: redi at gcc dot gnu.org @ 2022-01-13 17:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=104008
--- Comment #11 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Jonathan Wakely from comment #10)
> There's a report of a regression caused by this:
> https://gcc.gnu.org/pipermail/gcc-help/2022-January/141127.html
> I'll ask for it to be reported to bugzilla.
That's now PR 104008
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (13 preceding siblings ...)
2022-01-13 17:27 ` redi at gcc dot gnu.org
@ 2022-03-28 13:37 ` cvs-commit at gcc dot gnu.org
2022-03-28 19:13 ` cvs-commit at gcc dot gnu.org
15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-03-28 13:37 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jason Merrill <jason@gcc.gnu.org>:
https://gcc.gnu.org/g:07be8f8da4c6840a1fd6b2229b147e50cc6f03dc
commit r12-7848-g07be8f8da4c6840a1fd6b2229b147e50cc6f03dc
Author: Jason Merrill <jason@redhat.com>
Date: Fri Mar 25 11:26:06 2022 -0400
c++: ICE with alias in pack expansion [PR103769]
This was breaking because when we stripped the 't' typedef in s<t<Args>...>
to be s<Args...>, the TYPE_MAIN_VARIANT of "Args..." was still
"t<Args>...", because type pack expansions are treated as types. Fixed by
using the right function to copy a "type".
PR c++/99445
PR c++/103769
gcc/cp/ChangeLog:
* tree.cc (strip_typedefs): Use build_distinct_type_copy.
gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/variadic-alias5.C: New test.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [Bug c++/99445] [11 Regression] ICE in hashtab_chk_error, at hash-table.c:137 since r11-7011-g6e0a231a4aa2407b
2021-03-07 9:28 [Bug other/99445] New: [11 Regression] ICE in doko at debian dot org
` (14 preceding siblings ...)
2022-03-28 13:37 ` cvs-commit at gcc dot gnu.org
@ 2022-03-28 19:13 ` cvs-commit at gcc dot gnu.org
15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-03-28 19:13 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99445
--- Comment #13 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Jason Merrill
<jason@gcc.gnu.org>:
https://gcc.gnu.org/g:3bf2e1bfc9858516e028137b313e4c689b0c8cd4
commit r11-9707-g3bf2e1bfc9858516e028137b313e4c689b0c8cd4
Author: Jason Merrill <jason@redhat.com>
Date: Fri Mar 25 11:26:06 2022 -0400
c++: ICE with alias in pack expansion [PR103769]
This was breaking because when we stripped the 't' typedef in s<t<Args>...>
to be s<Args...>, the TYPE_MAIN_VARIANT of "Args..." was still
"t<Args>...", because type pack expansions are treated as types. Fixed by
using the right function to copy a "type".
PR c++/99445
PR c++/103769
gcc/cp/ChangeLog:
* tree.c (strip_typedefs): Use build_distinct_type_copy.
gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/variadic-alias5.C: New test.
^ permalink raw reply [flat|nested] 17+ messages in thread