------- Comment #4 from charlet at gcc dot gnu dot org  2007-08-14 08:40 -------
Subject: Bug 19037

Author: charlet
Date: Tue Aug 14 08:40:11 2007
New Revision: 127422

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=127422
Log:
2007-08-14  Olivier Hainque  <[EMAIL PROTECTED]>
            Eric Botcazou  <[EMAIL PROTECTED]>

        * targtyps.c (get_target_maximum_default_alignment): New function.
        Maximum alignment
        that the compiler might choose by default for a type or object.
        (get_target_default_allocator_alignment): New function. Alignment known
        to be honored by the target default allocator.
        (get_target_maximum_allowed_alignment): New function. Maximum alignment
        we might accept for any type or object on the target.
        (get_target_maximum_alignment): Now synonym of
maximum_default_alignment

        * gigi.h (get_target_maximum_default_alignment): Declare new function.
        (get_target_default_allocator_alignment): Likewise.
        (get_target_maximum_allowed_alignment): Likewise.

        PR ada/19037
        * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
        result of a function call, first try to use a stabilized reference for
        a constant renaming too.
        (validate_alignment): Use target_maximum_allowed_alignment instead of
        MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
        (gnat_to_gnu_entity): Use common nodes directly.
        (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
        alignment and size for the object.
        (lvalue_required_p): Handle N_Parameter_Association like
N_Function_Call
        and N_Procedure_Call_Statement.
        (takes_address): Rename to lvalue_required_p, add third parameter
        'aliased' and adjust recursive calls.
        <N_Indexed_Component>: Update 'aliased' from the array type.
        <N_Selected_Component>: New case.
        <N_Object_Renaming_Declaration>: New Likewise.
        (Identifier_to_gnu): Adjust for above changes.
        (maybe_stabilize_reference) <CONST_DECL>: New case.

        * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
        between type variants.
        (build_simple_component_ref): Likewise.
        (build_call_alloc_dealloc): Use target_default_allocator_alignment
        instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
        aligning type circuitry for allocations from the default storage pool.
        (build_allocator): Likewise.
        (build_simple_component_ref): Manually fold the reference for a
        constructor if the record type contains a template.

        * utils.c (value_zerop): Delete.
        (gnat_init_decl_processing): Emit debug info for common types.
        (rest_of_record_type_compilation): If a union contains a field
        with a non-constant qualifier, treat it as variable-sized.
        (finish_record_type): Give the stub TYPE_DECL a name.
        (rest_of_record_type_compilation): Likewise.
        (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
        types are equivalent array types.
        (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
        even if the type is not passed by reference.
        (static_ctors, static_dtors): Delete.
        (end_subprog_body): Do not record constructors and destructors.
        (build_global_cdtor): Delete.
        (gnat_write_global_declarations): Do not call build_global_cdtor.

        * lang-specs.h: If TARGET_VXWORKS_RTP is defined, append -mrtp when
        -fRTS=rtp is specified.
        If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
        specified.

        * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
        of the personality function with SJLJ exceptions.

        * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
        the name of the personality function with SJLJ exceptions.


Modified:
    trunk/gcc/ada/decl.c
    trunk/gcc/ada/gigi.h
    trunk/gcc/ada/lang-specs.h
    trunk/gcc/ada/misc.c
    trunk/gcc/ada/raise-gcc.c
    trunk/gcc/ada/targtyps.c
    trunk/gcc/ada/utils.c
    trunk/gcc/ada/utils2.c


-- 


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

Reply via email to