http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55358
--- Comment #6 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-11-28 08:51:26 UTC --- Created attachment 28818 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28818 stl benchmark The last issue can be reproduced with an old C++ STL benchmark from Stepanov and Stroustrup (attached): markus@x4 ~ % /var/tmp/gcc_valgrind/usr/local/bin/g++ -O2 -fprofile-generate bench.cpp markus@x4 ~ % ./a.out size array vector with pointers vector with iterators deque list set multiset 10 0.18 0.18 0.19 0.44 1.08 0.67 1.08 ... markus@x4 ~ % /var/tmp/gcc_valgrind/usr/local/bin/g++ -O2 -fprofile-use -flto bench.cpp ==22679== Invalid write of size 8 ==22679== at 0x68007D: iterative_hash_canonical_type(tree_node*, unsigned int) (gimple.c:3170) ==22679== by 0xD611C0: htab_find_slot (hashtab.c:712) ==22679== by 0x68A918: gimple_register_canonical_type(tree_node*) (gimple.c:3438) ==22679== by 0x4D093B: lto_file_read(lto_file_struct*, _IO_FILE*, int*) (lto.c:2050) ==22679== by 0x4D25EA: lto_main() (lto.c:2966) ==22679== by 0x82A5B5: compile_file() (toplev.c:545) ==22679== by 0x82C4D9: toplev_main(int, char**) (toplev.c:1884) ==22679== by 0x4ECD884: (below main) (libc-start.c:258) ==22679== Address 0x4031e98 is not stack'd, malloc'd or (recently) free'd ==22679==