------- Comment #24 from charlet at gcc dot gnu dot org  2006-02-15 09:31 
-------
Subject: Bug 18659

Author: charlet
Date: Wed Feb 15 09:31:40 2006
New Revision: 111030

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=111030
Log:
2006-02-13  Richard Kenner  <[EMAIL PROTECTED]>
            Olivier Hainque  <[EMAIL PROTECTED]>
            Eric Botcazou  <[EMAIL PROTECTED]>

        * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.

        * gigi.h (value_factor_p): Add prototype and description, now public.

        * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
        promotion for field with rep clause if the associated size was proven
        to be in error.
        Expand comments describing attempts to use a packable type.
        (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
        E_Floating_Point_Subtype>: Inherit alias set of what we are making a
        subtype of to ensure conflicts amongst all subtypes in a hierarchy,
        necessary since these are not different types and pointers may
        actually designate any subtype in this hierarchy.
        (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
        discriminants but put them into record only if not Unchecked_Union;
        pass flag to components_to_record showing Unchecked_Union.
        (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
        components before variants; don't set TYPE_UNCHECKED_UNION_P.
        (components_to_record): New argument UNCHECKED_UNION.
        Remove special case code for Unchecked_Union and instead use main code
        with small changes.

        PR ada/26096
        (gnat_to_gnu_entity) <E_Variable>: Do not initialize the
        aligning variable with the expression being built, only its inner
        field.

        * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
        emit_sequence_entry_statements.
        (emit_sequence_entry_statements, body_with_handlers_p): Delete.
        (establish_gnat_vms_condition_handler): Move before
        Subprogram_Body_to_gnu.
        (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
        for a subprogram if it has a foreign convention or is exported.
        (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
        substituted for a CONST_DECL.
        (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
        Etype to assoc_to_constructor.
        (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
        discriminants of Unchecked_Union.
        (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
        don't need cluttering preprocessor directives.
        (establish_gnat_vms_condition_handler): New function. Establish the
GNAT
        condition handler as current in the compiled function.
        (body_with_handlers_p): New function. Tell whether a given sequence of
        statements node is attached to a package or subprogram body and
involves
        exception handlers possibly nested within inner block statements.
        (emit_sequence_entry_statements): New function, to emit special
        statements on entry of sequences when necessary. Establish GNAT
        condition handler in the proper cases for VMS.
        (Handled_Sequence_Of_Statements_to_gnu): Start block code with
        emit_sequence_entry_statements.

        * utils2.c (find_common_type): If both input types are BLKmode and
        have a constant size, use the smaller one.
        (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
        the same.

        * utils.c (value_factor_p): Make public, to allow uses from other gigi
        units.
        (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
        (convert, case UNION_TYPE): Remove special treatment for unchecked
        unions.

        PR ada/18659
        (update_pointer_to): Update variants of pointer types to
        unconstrained arrays by attaching the list of fields of the main
        variant.


Modified:
    trunk/gcc/ada/ada-tree.h
    trunk/gcc/ada/decl.c
    trunk/gcc/ada/gigi.h
    trunk/gcc/ada/trans.c
    trunk/gcc/ada/utils.c
    trunk/gcc/ada/utils2.c


-- 


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

Reply via email to