This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[lto] Fix EH runtime types streaming


This fixes two bugs:

1- The reading and writing of type lists for EH regions was out of sync.
2- When streaming out EH type lists, we were not converting them to
the appropriate runtime types nor registering them on input.


Bootstrapped and tested on x86_64 and i686.


Diego.


        * lto-function-out.c (output_type_ref): Do not call
        LTO_DEBUG_TOKEN.
        (output_type_list): Remove.  Update all callers.
        (get_eh_types_for_runtime): New.
        (output_eh_region): Call it.
        (output_expr_operand): Call output_type_ref when EXPR is
        a type.
        * lto-function-in.c (input_type_ref): Do not call
        LTO_DEBUG_TOKEN.
        (input_eh_region): Call add_type_for_runtime after
        reading type lists.
        Call input_expr_operand to read type lists.
        * except.c (add_type_for_runtime): Declare extern.
        (lookup_type_for_runtime): Likewise.
        * lto/lto-lang.c (lto_eh_runtime_type): New.
        (lto_init_eh): Set lang_eh_runtime_type to lto_eh_runtime_type.


testsuite/ChangeLog.lto

        * g++.dg/lto/20080926.C: New.

Attachment: 20080928-fix-eh-types.diff.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]