The following piece of code causes an ICE at ipa-inline.c:106 as soon as optimization is turned on. I can reproduce it using BOOST 1.32.0 and 1.33.1. It used to work previously (at least as of GCC 3.4.3).
#include <functional> #include <list> #include "boost/lambda/lambda.hpp" #include "boost/lambda/bind.hpp" struct Device { Device(); static std::list<Device*>* allDevices_; void init(); static void initAll(); }; void Device::initAll() { std::for_each( allDevices_->begin(), allDevices_->end(), boost::lambda::bind( &Device::init, boost::lambda::_1 ) ); } -- Summary: ICE in cgraph_estimate_size_after_inlining caused by boost::lambda Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kreckel at ginac dot de GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26919