http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58528
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- The approach documented only works for ICEs at WPA time. For ICEs at LTRANS time you'd have to continue after WPA by instead of lto1 invoking the driver with the linker command. Thus, bisect the object files and libraries in /usr/bin/g++ -O2 -g -DNDEBUG -static-libstdc++ -flto -O2 CMakeFiles/Fix_Engine_Detail_ut.dir/Message_Index_ut.cpp.o CMakeFiles/Fix_Engine_Detail_ut.dir/Message_Log_ut.cpp.o CMakeFiles/Fix_Engine_Detail_ut.dir/Sequential_Message_Log_ut.cpp.o -o Fix_Engine_Detail_ut -rdynamic ../../libfix_engine.a ../../../middleware/libmiddleware.a /usr/local/gtest/gtest/lib/libgtest.a ../../../test/gtest/libtheme-gtest.a ../../../test/libtheme-test.a /usr/local/boost/boost_1_54_0/lib/libboost_filesystem.a /usr/local/boost/boost_1_54_0/lib/libboost_program_options.a /usr/local/boost/boost_1_54_0/lib/libboost_random.a /usr/local/boost/boost_1_54_0/lib/libboost_regex.a /usr/local/boost/boost_1_54_0/lib/libboost_serialization.a /usr/local/boost/boost_1_54_0/lib/libboost_system.a -lrt -lpthread ../../../attributes/libattributes.a ../../../msgs/libmessages.a /usr/local/lib/libzmq.a -Wl,--whole-archive -Wl,-Bstatic -libverbs -lmlx4 -Wl,-Bdynamic -Wl,--no-whole-archive -Wl,-Bstatic -libmad -libumad -Wl,-Bdynamic -ldl ../../../json/libjsoncpp.a ../../../libtheme.a /usr/local/boost/boost_1_54_0/lib/libboost_filesystem.a /usr/local/boost/boost_1_54_0/lib/libboost_program_options.a /usr/local/boost/boost_1_54_0/lib/libboost_system.a -lrt -lpthread adding -r -nostdlib to it (that is, drop as many objects from it as possible). If the failure also persists with -flto-partition=1to1 then this reduction will be much more deterministic. For the remaining object files and libraries try to build up a compile-and-link commandline substituting sources for objects and provide preprocessed source for them. Hopefully the process ends up in one (unlikely) to three source files needed.