[Bug c++/78006] [5/6/7 Regression] Segmentation fault with 'using' and generic lambda trailing return types

2016-12-01 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78006

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P4

[Bug c++/78006] [5/6/7 Regression] Segmentation fault with 'using' and generic lambda trailing return types

2016-10-17 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78006

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Known to work||5.3.0
   Keywords||error-recovery,
   ||ice-on-invalid-code
   Last reconfirmed||2016-10-17
 CC||jason at gcc dot gnu.org,
   ||marxin at gcc dot gnu.org
 Ever confirmed|0   |1
Summary|Segmentation fault with |[5/6/7 Regression]
   |'using' and generic lambda  |Segmentation fault with
   |trailing return types   |'using' and generic lambda
   ||trailing return types
   Target Milestone|--- |5.5
  Known to fail||5.4.0, 6.2.0, 7.0

--- Comment #1 from Martin Liška  ---
Confirmed, started with r231713.

Error message with GCC 5.3.0:

pr78006.cpp: In substitution of ‘template x(TFs&&
...):: [with auto:1 = int]’:
pr78006.cpp:15:19:   required from here
pr78006.cpp:9:24: error: expansion pattern ‘void’ contains no argument packs
 return [](auto) -> rt { };
^
pr78006.cpp: In function ‘int main()’:
pr78006.cpp:15:19: error: no match for call to ‘(x(TFs&& ...) [with TFs =
{main()::}]::) (int)’
 x([](int){})(0);
   ^
pr78006.cpp:15:19: note: candidate: rt (*)(auto:1) 
pr78006.cpp:15:19: note:   candidate expects 2 arguments, 2 provided
pr78006.cpp:9:24: note: candidate: template x(TFs&&
...):: [with auto:1 = auto:1; TFs = {main()::}]
 return [](auto) -> rt { };
^
pr78006.cpp:9:24: note:   substitution of deduced template arguments resulted
in errors seen above