[Bug debug/87772] Crash with variadic template, constexpr constructor for templated non-literal type, using declaration

2022-02-01 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87772

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #3 from Martin Liška  ---
Cannot reproduce the original ICE.

[Bug debug/87772] Crash with variadic template, constexpr constructor for templated non-literal type, using declaration

2021-12-11 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87772

Andrew Pinski  changed:

   What|Removed |Added

  Known to fail|9.0 |8.5.0
   Keywords||needs-bisection
  Known to work||9.1.0

--- Comment #2 from Andrew Pinski  ---
Seems like the test in comment #0 is fixed in GCC 9.1.0. 
I get the following error message:
In file included from /usr/include/c++/8/bits/move.h:55,
 from /usr/include/c++/8/bits/stl_pair.h:59,
 from /usr/include/c++/8/utility:70,
 from /usr/include/c++/8/array:38,
 from main.cpp:1:
/usr/include/c++/8/type_traits: In substitution of 'template using enable_if_t = typename std::enable_if::type [with bool _Cond =
std::integral_constant::value; _Tp = void]':
main.cpp:17:8:   required from 'struct
Parser, 1>, 1> >'
main.cpp:24:53:   required from here
/usr/include/c++/8/type_traits:2331:11: error: no type named 'type' in 'struct
std::enable_if'

[Bug debug/87772] Crash with variadic template, constexpr constructor for templated non-literal type, using declaration

2018-10-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87772

Richard Biener  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-10-29
  Component|c++ |debug
 Ever confirmed|0   |1
  Known to fail||7.3.1, 8.2.1, 9.0

--- Comment #1 from Richard Biener  ---
Confirmed.  GCC 7 fails the same way, GCC 6 doesn't like the testcase.

> g++-8 t.ii -std=c++17 -g -B /abuild/rguenther/gcc8-g/gcc
main.cpp: In instantiation of ‘struct
Parser, 1>, 1> >’:
main.cpp:24:53:   required from here
main.cpp:16:8: internal compiler error: tree check: expected class ‘type’, have
‘exceptional’ (error_mark) in equate_type_number_to_die, at dwarf2out.c:5773
0x164f511 tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
/space/rguenther/src/svn/gcc-8-branch/gcc/tree.c:9384
0x848ea8 tree_class_check(tree_node*, tree_code_class, char const*, int, char
const*)
/space/rguenther/src/svn/gcc-8-branch/gcc/tree.h:3262
0xd4bc9b equate_type_number_to_die
/space/rguenther/src/svn/gcc-8-branch/gcc/dwarf2out.c:5773
0xd8099e gen_typedef_die
/space/rguenther/src/svn/gcc-8-branch/gcc/dwarf2out.c:25197
0xd83ad7 gen_decl_die
/space/rguenther/src/svn/gcc-8-branch/gcc/dwarf2out.c:26215