------- Comment #2 from rguenth at gcc dot gnu dot org 2010-02-05 11:36 ------- DECL_FUNCTION_PERSONALITY is set here because we see an EH tree at some point that might need the C++ personality routine.
Note that only eh-cleanup removes this empty EH region, so at -O0 we'd see DECL_FUNCTION_PERSONALITY in the LTO stream but the object files generated during compiling would still not refer to it (we run eh-cleanup before expansion when not optimizing). Thus there will be an inconsistency between what gold sees during symbol resolution and what GCC sees at LTO bytecode read time (as they see different optimized variants). Now we can re-compute DECL_FUNCTION_PERSONALITY from eh-cleanup which is probably a good idea and likely will fix the ICE at -O1 (where eh-cleanup is run before streaming LTO). But the issue will remain at -O0 so we have to deal with it somehow (like not asserting for DECL_EXTERNAL). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42762