------- Comment #1 from hjl dot tools at gmail dot com  2009-03-02 20:50 -------
-fexceptions with Fortran looks odd. Does Fortran support exceptions?
To support exceptions, C/C++ initializes eh_personality_libfunc. But
eh_personality_libfunc isn't initialized for Fortran. What does it
mean? Does Fortran support/need LSDA?

output_function_exception_table has

  /* Not all functions need anything.  */
  if (! crtl->uses_eh_lsda)
    return;

  if (eh_personality_libfunc)
    assemble_external_libcall (eh_personality_libfunc);

#ifdef TARGET_UNWIND_INFO
  /* TODO: Move this into target file.  */
  fputs ("\t.personality\t", asm_out_file);
  output_addr_const (asm_out_file, eh_personality_libfunc);
  fputs ("\n\t.handlerdata\n", asm_out_file);
  /* Note that varasm still thinks we're in the function's code section.
     The ".endp" directive that will immediately follow will take us back.  */
#else
  switch_to_exception_section (fnname);
#endif 

Since eh_personality_libfunc is NULL for Fortran, we crash.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39352

Reply via email to