http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50999
--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-11-07 12:02:36 UTC --- Created attachment 25734 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25734 proposed patch Hm, on x86_64 the EH table is not empty (look at g++.dg/lto/20081109_1.C, the usual symtom is that the LTOed unit for that file does not contain info to unwind from the throw - can you confirm that?). The key is that lto_init_eh() has to be called for that unit - previously we saved flag_exceptions but now we only save explicit -fexceptions (thus, you can verify if explicitly adding that option to the compile command line fixes the issue). Does the attached patch help? It tries to start to address the (yet unsolved) issue of preserving lang-dependent options.