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.