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

            Bug ID: 65433
           Summary: ICE processing lambdas
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: a...@cloudius-systems.com

Processing some complex code involving lambdas in gnu++1y mode, the compiler
segfaults:

$ g++ -std=gnu++1y -g  -Wall -Werror -fvisibility=hidden -pthread -O2 fail.i
In file included from ./core/seastar.hh:26:0,
                 from ./core/reactor.hh:25,
                 from ./net/net.hh:25,
                 from net/native-stack.hh:25,
                 from net/native-stack.cc:22:
./core/future.hh: In instantiation of 'struct future<T>::then_wrapped(Func&&)
[with Func = smp_message_queue::async_work_item<Func>::process() [with Func =
net::arp_learn(net::ethernet_address,
net::ipv4_address)::<lambda()>]::<lambda(auto:8&&)>; T = {};
futurize_t<std::result_of_t<Func(future<T>)> > = future<>]::<lambda(struct
future_state<>&&)>':
./core/future.hh:510:58:   required from
'futurize_t<std::result_of_t<Func(future<T>)> > future<T>::then_wrapped(Func&&)
[with Func = smp_message_queue::async_work_item<Func>::process() [with Func =
net::arp_learn(net::ethernet_address,
net::ipv4_address)::<lambda()>]::<lambda(auto:8&&)>; T = {};
futurize_t<std::result_of_t<Func(future<T>)> > = future<>]'
./core/reactor.hh:454:18:   required from 'future<>
smp_message_queue::async_work_item<Func>::process() [with Func =
net::arp_learn(net::ethernet_address, net::ipv4_address)::<lambda()>]'
net/native-stack.cc:338:1:   required from here
./core/future.hh:510:86: internal compiler error: Segmentation fault
         return
then<std::result_of_t<Func(future<T...>)>>(std::forward<Func>(func), []
(future_state<T...>&& state) { return future(std::move(state)); });
                                                                               
      ^


This is using gcc 5.0.0 from Fedora 22 (5.0.0-0.17).

Full source available from https://github.com/cloudius-systems/seastar. 
Preprocessed source attached.

Reply via email to