http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53746
vincenzo Innocente <vincenzo.innocente at cern dot ch> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[lto] segfault in |[lto] segfault in |std::vector::__base_ctor |std::vector::__base_ctor | |(with -fno-math-errno | |-fipa-pta) --- Comment #2 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2012-06-23 09:06:30 UTC --- to reproduce the crash get the preprocessed files wget http://innocent.home.cern.ch/innocent/bugAlgo.tgz tar -xzf bugAlgo.tgz cd bugAlgo/ and run export CXXGO="c++ -g -fPIC -fno-fat-lto-objects -flto -ffunction-sections -O2 -pipe -std=gnu++11 -msse3 -fvisibility-inlines-hidden -fno-math-errno -fipa-pta" echo $CXXGO for f in *.ii do $CXXGO -c $f done $CXXGO -Wl,-v stubs.o -shared -o libstubs.so -Wl,-rpath=./ $CXXGO -Wl,-v CosmicClusterAlgo.o EndcapPiZeroDiscriminatorAlgo.o HybridClusterAlgo.o Multi5x5BremRecoveryClusterAlgo.o PreshowerClusterAlgo.o a1.o -shared -o libAlgo.so -Wl,-rpath=./ -L./ -lstubs $CXXGO -Wl,-v HybridClusterTest.o -Wl,-rpath=./ -L./ -lAlgo -lstubs ./a.out 1 2 it will instead end correctly if one removed either -fno-math-errno or -fipa-pta or linking just $CXXGO -Wl,-v CosmicClusterAlgo.o EndcapPiZeroDiscriminatorAlgo.o HybridClusterAlgo.o Multi5x5BremRecoveryClusterAlgo.o -shared -o libAlgo.so -Wl,-rpath=./ -L./ -lstubs the main is just invoking a constructor contained in HybridClusterAlgo the behavior is the same on vanilla fedora 17, with 4.7.1, with gcc version 4.8.0 20120608