]> gcc.gnu.org Git - gcc.git/commit
except.c: Support for catching a list of types with a single handler (struct eh_regio...
authorOlivier Hainque <hainque@act-europe.fr>
Fri, 16 Nov 2001 12:48:18 +0000 (13:48 +0100)
committerRichard Kenner <kenner@gcc.gnu.org>
Fri, 16 Nov 2001 12:48:18 +0000 (07:48 -0500)
commit6d41a92f7c22e76af40ee0012f02af8d0f52efe4
treec7687b57540a26d0d6218620d0cb0c8f6e8282d9
parenta8ca89dca83767049abf111dd2c659356a4c5880
except.c: Support for catching a list of types with a single handler (struct eh_region):...

        * except.c: Support for catching a list of types with a single handler
        (struct eh_region): Change type and filter to lists for catch regions.
        (mark_eh_region): Mark the filter list for GC also.
        (expand_start_catch): Always build a list if argument not NULL and
        register each type of the list through add_type_for_runtime.
        (duplicate_eh_region_1): Change type into type_list for catch regions.
        (assign_filter_values): Assign a filter to each type associated with a
        catch region. Assign filter for NULL types in a unique entry in the
        filter list.
        (build_post_landing_pads): Emit compare and jump for each filter of
        the list associated with a catch region.
        (reachable_next_level): When the type thrown is known, stop the search
        as soon as one type within a catch list matches. Also, a handler is
        potentially reachable only if at least one of the types it catches
        has not been previously caught.
        (collect_one_action_chain): Retrieve the filter for a NULL type list
        from the first filter list entry. For non NULL type lists, add an
        action record for every filter assigned.
        * except.h: Reflect changes in comment before expand_start_catch.

From-SVN: r47087
gcc/ChangeLog
gcc/except.c
gcc/except.h
This page took 0.050943 seconds and 5 git commands to generate.