[Bug c++/67247] ICE on std::forward args&& inside nested lambda function

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

Paolo Carlini  changed:

   What|Removed |Added

 Blocks||54367

--- Comment #6 from Paolo Carlini  ---
Fixed a while ago for 5.4.0.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54367
[Bug 54367] [meta-bug] lambda expressions

[Bug c++/67247] ICE on std::forward args&& inside nested lambda function

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

Paolo Carlini  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |5.4

--- Comment #5 from Paolo Carlini  ---
Fixed a while ago for 5.4.0.

[Bug c++/67247] ICE on std::forward args&& inside nested lambda function

2016-04-25 Thread tower120 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67247

tower120  changed:

   What|Removed |Added

  Known to work||6.0

--- Comment #4 from tower120  ---
Reduced case [Forwarding captured variadic arguments inside lambda] :
https://godbolt.org/g/D7lXEA

template
int g(T... t)
{
return 0;
}

template
void f(Args&&... args)
{
auto lm = [&](auto&&..._args) { 
auto f = [&]{g(std::forward(_args)...);};
  //auto f = [&]{g(_args...);}; /* THIS ONE OK */
return f(); 
};
lm(args...);
}

int main()
{
f(2, 5, 7);
}

Error "_args was not declared" on 4.9.x
ICE on 5.x
Ok on 6.x

[Bug c++/67247] ICE on std::forward args&& inside nested lambda function

2015-12-12 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67247

Markus Trippelsdorf  changed:

   What|Removed |Added

 CC||vittorio.romeo at outlook dot 
com

--- Comment #3 from Markus Trippelsdorf  ---
*** Bug 68876 has been marked as a duplicate of this bug. ***

[Bug c++/67247] ICE on std::forward args inside nested lambda function

2015-08-19 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67247

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
Testcase in Comment 2 started ICEing with r211084.


[Bug c++/67247] ICE on std::forward args inside nested lambda function

2015-08-17 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67247

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-08-17
 CC||trippels at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
markus@x4 tmp % cat la.ii
template typename _Tp _Tp forward (int);
template class F1, class F2
auto
operator (F1, F2 f2)
{
  return f2 (0);
}

template class F1, class F2
decltype (0)
operator (F1 f1, F2)
{
  f1 (0);
}

auto divide (int, int)
{
  0  [](auto... args1)
  {
return [](auto... args2)
{
  divide (forwarddecltype (args1) (args1)..., args2...);
};
  }  0;
}

markus@x4 tmp % g++ -c la.ii
la.ii: In instantiation of ‘divide(int, int)::lambda(auto:1
...)::lambda(auto:2 ...) [with auto:2 = {int}; auto:1 = {int}]’:
la.ii:13:6:   required from ‘int operator(F1, F2) [with F1 = divide(int,
int)::lambda(auto:1 ...) [with auto:1 = {int}]::lambda(auto:2 ...); F2 =
int]’
la.ii:24:8:   required from here
la.ii:22:14: internal compiler error: Segmentation fault
   divide (forwarddecltype (args1) (args1)..., args2...);
  ^
0xc795ef crash_signal
../../gcc/gcc/toplev.c:352
0x7f7dae93e70f ???
/var/tmp/glibc/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0x5c1525 resolve_args
../../gcc/gcc/cp/call.c:3942
0x5d8ee9 build_new_function_call(tree_node*, vectree_node*, va_gc,
vl_embed**, bool, int)
../../gcc/gcc/cp/call.c:4052
0x7666d8 finish_call_expr(tree_node*, vectree_node*, va_gc, vl_embed**, bool,
bool, int)
../../gcc/gcc/cp/semantics.c:2391
0x643032 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../gcc/gcc/cp/pt.c:15860
0x633ea8 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:15029
0x632d41 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:14440
0x634b0f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:14612
0x633103 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:14426
0x634b0f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:14612
0x631815 instantiate_decl(tree_node*, int, bool)
../../gcc/gcc/cp/pt.c:21154
0x6b6e42 mark_used(tree_node*, int)
../../gcc/gcc/cp/decl2.c:5101
0x5c9f2a build_over_call
../../gcc/gcc/cp/call.c:7569
0x5d9cf1 build_op_call_1
../../gcc/gcc/cp/call.c:4358
0x5d9cf1 build_op_call(tree_node*, vectree_node*, va_gc, vl_embed**, int)
../../gcc/gcc/cp/call.c:4381
0x7668e8 finish_call_expr(tree_node*, vectree_node*, va_gc, vl_embed**, bool,
bool, int)
../../gcc/gcc/cp/semantics.c:2408
0x643032 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../gcc/gcc/cp/pt.c:15860
0x633ea8 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:15029
0x632d41 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:14440
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.