[Bug c++/90172] [9 Regression] ICE: Segmentation fault (in contains_struct_check)

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Apr 23 15:09:00 GMT 2019


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
This used to be accepted before r251433, which started rejecting it.
Before r257018, the diagnostics has been:
pr90172.C: In instantiation of ‘fooV(Ts ...) [with Ts = {const char*, int,
double, char, float, short int, unsigned int}]::<lambda(auto:1 ...)> [with
auto:1 = {fooV(Ts ...) [with Ts = {const char*, int, double, char, float, short
int, unsigned int}]::<lambda(auto:1 ...)>, const char*, int, double, char,
float, short int, unsigned int}]’:
pr90172.C:8:13:   required from ‘int fooV(Ts ...) [with Ts = {const char*, int,
double, char, float, short int, unsigned int}]’
pr90172.C:13:65:   required from here
pr90172.C:3:10: error: use ‘...’ to expand argument pack
     auto M = [](decltype(a) ... b) -> void {
          ^
pr90172.C:5:12: error: unable to deduce lambda return type from ‘M’
     return M;
            ^
but in r257018 and onwards:
pr90172.C: In instantiation of ‘int fooV(Ts ...) [with Ts = {const char*, int,
double, char, float, short int, unsigned int}]’:
pr90172.C:13:65:   required from here
pr90172.C:3:10: error: expansion pattern ‘decltype (#‘nontype_argument_pack’
not supported by dump_expr#<expression error>)’ contains no argument packs
     auto M = [](decltype(a) ... b) -> void {
          ^
and finally starting with r268377 we also ICE during error recovery.


More information about the Gcc-bugs mailing list