[Bug c++/70971] ICE in parameter pack expansion

2017-10-28 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70971

Paolo Carlini  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC|paolo.carlini at oracle dot com|
 Resolution|--- |FIXED
   Target Milestone|--- |8.0

--- Comment #4 from Paolo Carlini  ---
Done. I adapted and further reduced a mini-std::function available in
g++.dg/cpp0x/variadic-function.C

[Bug c++/70971] ICE in parameter pack expansion

2017-10-28 Thread paolo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70971

--- Comment #3 from paolo at gcc dot gnu.org  ---
Author: paolo
Date: Sat Oct 28 16:10:10 2017
New Revision: 254199

URL: https://gcc.gnu.org/viewcvs?rev=254199=gcc=rev
Log:
2017-10-28  Paolo Carlini  

PR c++/70971
* g++.dg/torture/pr70971.C: New.

Added:
trunk/gcc/testsuite/g++.dg/torture/pr70971.C
Modified:
trunk/gcc/testsuite/ChangeLog

[Bug c++/70971] ICE in parameter pack expansion

2017-10-06 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70971

Paolo Carlini  changed:

   What|Removed |Added

 CC||paolo.carlini at oracle dot com

--- Comment #2 from Paolo Carlini  ---
This is fixed in trunk, it would be nice to commit a compact testcase.

[Bug c++/70971] ICE in parameter pack expansion

2016-06-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70971

Martin Liška  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-06-29
 CC||marxin at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Martin Liška  ---
ICEs from GCC 5.1.0 on all releases (including current trunk).

This is a bit reduced test-case:

#include 
struct A {};
template  struct typelist {};
template  std::unique_ptr chooseB(typelist);
template 
std::unique_ptr chooseB(typelist choices, Idx, Rest... rest) {
  auto f = [=](auto) { return [=] { return chooseB(choices, rest...); }; };
  std::function fs[]{f(Cs{})...};
}
main() { chooseB(typelist{}, 0, 1, 2); }