+2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/gigi.h (create_field_decl): Move PACKED parameter.
+ * gcc-interface/utils.c (create_field_decl): Move PACKED parameter.
+ (rest_of_record_type_compilation): Adjust call to create_field_decl.
+ (make_descriptor_field): Likewise and pass correctly typed constants.
+ (build_unc_object_type): Likewise.
+ (unchecked_convert): Likewise.
+ * gcc-interface/decl.c (elaborate_expression_2): New static function.
+ (gnat_to_gnu_entity): Use it to make alignment factors explicit.
+ Adjust call to create_field_decl.
+ (make_aligning_type): Likewise.
+ (make_packable_type): Likewise.
+ (maybe_pad_type): Likewise.
+ (gnat_to_gnu_field): Likewise.
+ (components_to_record): Likewise.
+ (create_field_decl_from): Likewise.
+ (create_variant_part_from): Remove superfluous test.
+ * gcc-interface/trans.c (gigi): Adjust call to create_field_decl.
+
+2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/gigi.h (build_unc_object_type): Add DEBUG_INFO_P param.
+ (build_unc_object_type_from_ptr): Likewise.
+ * gcc-interface/utils.c (build_unc_object_type): Add DEBUG_INFO_P param
+ and pass it to create_type_decl. Declare the type. Simplify.
+ (build_unc_object_type_from_ptr): Add DEBUG_INFO_P parameter and pass
+ it to build_unc_object_type.
+ * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust to above change.
+ * gcc-interface/trans.c (Attribute_to_gnu): Likewise.
+ (gnat_to_gnu): Likewise.
+ * gcc-interface/utils2.c (build_allocator): Likewise.
+
+2010-05-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR 40989
+ * gcc-interface/misc.c (gnat_handle_option): Fix long line.
+
+2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * gcc-interface/Makefile.in: Removed mips-sgi-irix5* support.
+
+2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR 40989
+ * gcc-interface/misc.c (gnat_handle_option): Add argument kind.
+
+2010-05-02 Giuseppe Scrivano <gscrivano@gnu.org>
+
+ * gnathtml.pl: Use 755 as mask for new directories.
+
+2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (gnat_gimplify_expr) <ADDR_EXPR>: Uniquize
+ constant constructors before taking their address.
+
+2010-04-25 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_dbug.ads: Fix outdated description. Mention link between XVS
+ and XVZ objects.
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Set
+ XVZ variable as unit size of XVS type.
+ (maybe_pad_type): Likewise.
+
+2010-04-25 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Do not
+ use memmove if the array type is bit-packed.
+
+2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/misc.c (gnat_init): Remove second argument in call to
+ build_common_tree_nodes.
+
+2010-04-18 Ozkan Sezer <sezeroz@gmail.com>
+
+ * gsocket.h: Make sure that winsock2.h is included before windows.h.
+
+2010-04-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/utils2.c (build_unary_op) <ATTR_ADDR_EXPR>: Do not
+ issue warning.
+
+2010-04-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * uintp.h (UI_Lt): Declare.
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do the size
+ computation in sizetype.
+ <E_Array_Subtype>: Use unified handling for all index types. Do not
+ generate MAX_EXPR-based expressions, only COND_EXPR-based ones. Add
+ bypass for PATs.
+ (annotate_value): Change test for negative values.
+ (validate_size): Apply test for negative values on GNAT nodes.
+ (set_rm_size): Likewise.
+ * gcc-interface/misc.c (gnat_init): Set unsigned types for sizetypes.
+ * gcc-interface/utils.c (rest_of_record_type_compilation): Change test
+ for negative values.
+ (max_size) <MINUS_EXPR>: Do not reassociate a COND_EXPR on the LHS.
+ (builtin_type_for_size): Adjust definition of signed_size_type_node.
+ * gcc-interface/utils2.c (compare_arrays): Optimize comparison of
+ lengths against zero.
+
+2010-04-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * back-end.adb (Call_Back_End): Pass Standard_Character to gigi.
+ * gcc-interface/gigi.h (gigi): Add standard_character parameter.
+ (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
+ LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE,
+ LONG_DOUBLE_TYPE_SIZE, SIZE_TYPE): Delete.
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Call
+ rm_size.
+ * gcc-interface/misc.c (gnat_init): Set signedness of char as per
+ flag_signed_char. Tag sizetype with "size_type" moniker.
+ * gcc-interface/trans.c (gigi): Add standard_character parameter.
+ Remove useless built-in types. Equate unsigned_char_type_node to
+ Standard.Character. Use it instead of char_type_node throughout.
+ (Attribute_to_gnu): Likewise.
+ (gnat_to_gnu): Likewise.
+ * gcc-interface/utils2.c (build_call_raise): Likewise.
+
+2010-04-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/gigi.h (enum standard_datatypes): Add new values
+ ADT_sbitsize_one_node and ADT_sbitsize_unit_node.
+ (sbitsize_one_node): New macro.
+ (sbitsize_unit_node): Likewise.
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Fix
+ latent bug in the computation of subrange_p. Fold wider_p predicate.
+ (cannot_be_superflat_p): Use an explicitly signed 64-bit type to do
+ the final comparison.
+ (make_aligning_type): Build real negation and use sizetype throughout
+ the offset computation.
+ (maybe_pad_type): Do not issue the warning when the new size expression
+ is too complex.
+ (annotate_value) <INTEGER_CST>: Simplify code handling negative values.
+ * gcc-interface/misc.c (gnat_init): Initialize sbitsize_one_node and
+ sbitsize_unit_node.
+ * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Fold
+ double negation.
+ (gnat_to_gnu) <N_Free_Statement>: Likewise.
+ * gcc-interface/utils.c (convert): Use sbitsize_unit_node.
+ * gcc-interface/utils2.c (compare_arrays): Compute real lengths and use
+ constants in sizetype. Remove dead code and tweak comments. Generate
+ equality instead of inequality comparisons for zero length tests.
+
+2010-04-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/gigi.h (gnat_init_decl_processing): Delete.
+ * gcc-interface/decl.c (gnat_to_gnu_entity): Constify a few variables.
+ <object>: Do not create the fake PARM_DECL if no debug info is needed.
+ Do not create the corresponding VAR_DECL of a CONST_DECL for debugging
+ purposes if no debug info is needed.
+ Fix formatting. Reorder and add comments.
+ * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Reference>: Constify
+ variable and remove obsolete comment.
+ * gcc-interface/utils.c (convert_vms_descriptor64): Tweak comment.
+ (convert_vms_descriptor32): Likewise.
+ (convert): Remove dead code.
+ <UNCONSTRAINED_ARRAY_REF>: Pass the field instead of its name to build
+ the reference to the P_ARRAY pointer.
+ <POINTER_TYPE>: Likewise.
+ (maybe_unconstrained_array) <UNCONSTRAINED_ARRAY_TYPE>: Likewise.
+ (gnat_init_decl_processing): Delete, move contents to...
+ * gcc-interface/misc.c (gnat_init): ...here.
+
+2010-04-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (unchecked_conversion_nop): Handle function
+ calls. Return true for conversion from a record subtype to its type.
+
+2010-04-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity): Use boolean_type_node in
+ lieu of integer_type_node for boolean operations.
+ (choices_to_gnu): Likewise.
+ * gcc-interface/trans.c (Attribute_to_gnu): Likewise.
+ (Loop_Statement_to_gnu): Likewise.
+ (establish_gnat_vms_condition_handler): Likewise.
+ (Exception_Handler_to_gnu_sjlj): Likewise.
+ (gnat_to_gnu): Likewise.
+ (build_unary_op_trapv): Likewise.
+ (build_binary_op_trapv): Likewise.
+ (emit_range_check): Likewise.
+ (emit_index_check): Likewise.
+ (convert_with_check): Likewise.
+ * gcc-interface/utils.c (convert_vms_descriptor64): Likewise.
+ (convert_vms_descriptor32): Likewise.
+ (convert_vms_descriptor): Likewise.
+ * gcc-interface/utils2.c (nonbinary_modular_operation): Likewise.
+ (compare_arrays): Use boolean instead of integer constants.
+ (build_binary_op) <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR,
+ TRUTH_OR_EXPR, TRUTH_XOR_EXPR>: New case. Check that the result type
+ is a boolean type.
+ <GE_EXPR, LE_EXPR, GT_EXPR, LT_EXPR>: Remove obsolete assertion.
+ <EQ_EXPR, NE_EXPR>: Check that the result type is a boolean type.
+ <PREINC/PREDECREMENT_EXPR, POSTINC/POSTDECREMENT_EXPR>: Delete.
+ <TRUTH_NOT_EXPR>: Check that the result type is a boolean type.
+ (build_unary_op): Use boolean_type_node in lieu of integer_type_node
+ for boolean operations.
+ (fill_vms_descriptor): Likewise. Fix formatting nits.
+
+2010-04-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/ada-tree.def (LOOP_STMT): Change to 4-operand nodes.
+ * gcc-interface/ada-tree.h (LOOP_STMT_TOP_COND, LOOP_STMT_BOT_COND):
+ Merge into...
+ (LOOP_STMT_COND): ...this.
+ (LOOP_STMT_BOTTOM_COND_P): New flag.
+ (LOOP_STMT_TOP_UPDATE_P): Likewise.
+ * gcc-interface/trans.c (can_equal_min_or_max_val_p): New function.
+ (can_equal_min_val_p): New static inline function.
+ (can_equal_max_val_p): Likewise.
+ (Loop_Statement_to_gnu): Use build4 in lieu of build5 and adjust to
+ new LOOP_STMT semantics. Use two different strategies depending on
+ whether optimization is enabled to translate the loop.
+ (gnat_gimplify_stmt) <LOOP_STMT>: Adjust to new LOOP_STMT semantics.
+
+2010-04-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * uintp.adb (UI_From_Dint): Remove useless code.
+ (UI_From_Int): Likewise.
+ * uintp.h: Reorder declarations.
+ (UI_From_gnu): Declare.
+ (UI_Base): Likewise.
+ (Vector_Template): Likewise.
+ (Vector_To_Uint): Likewise.
+ (Uint_0): Remove.
+ (Uint_1): Likewise.
+ * gcc-interface/gigi.h: Tweak comments.
+ * gcc-interface/cuintp.c (UI_From_gnu): New global function.
+ * gcc-interface/decl.c (maybe_pad_type): Do not warn if either size
+ overflows.
+ (annotate_value) <INTEGER_CST>: Call UI_From_gnu.
+ * gcc-interface/trans.c (post_error_ne_num): Call post_error_ne.
+ (post_error_ne_tree): Call UI_From_gnu and post_error_ne.
+ * gcc-interface/utils.c (max_size) <tcc_binary>: Do not special-case
+ TYPE_MAX_VALUE.
+
+2010-04-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Just copy
+ TYPE_NAME.
+ * gcc-interface/trans.c (smaller_packable_type_p): Rename into...
+ (smaller_form_type_p): ...this. Change parameter and variable names.
+ (call_to_gnu): Use the nominal type of the parameter to create the
+ temporary if it's a smaller form of the actual type.
+ (addressable_p): Return false if the actual type is integral and its
+ size is greater than that of the expected type.
+
+2010-04-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/cuintp.c (UI_To_gnu): Fix long line.
+ * gcc-interface/gigi.h (MARK_VISITED): Skip objects of constant class.
+ (process_attributes): Delete.
+ (post_error_ne_num): Change parameter name.
+ * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force debug info
+ with -g3. Remove a couple of obsolete lines. Minor tweaks.
+ If type annotating mode, operate on trees to compute the adjustment to
+ the sizes of tagged types. Fix long line.
+ (cannot_be_superflat_p): Tweak head comment.
+ (annotate_value): Fold local constant.
+ (set_rm_size): Fix long line.
+ * gcc-interface/trans.c (Identifier_to_gnu): Rework comments.
+ (Attribute_to_gnu): Fix long line.
+ <Attr_Size>: Remove useless assertion.
+ Reorder statements. Use size_binop routine.
+ (Loop_Statement_to_gnu): Use build5 in lieu of build_nt.
+ Create local variables for the label and the test. Tweak comments.
+ (Subprogram_Body_to_gnu): Reset cfun to NULL.
+ (Compilation_Unit_to_gnu): Use the Sloc of the Unit node.
+ (process_inlined_subprograms): Integrate into...
+ (Compilation_Unit_to_gnu): ...this.
+ (gnat_to_gnu): Fix long line.
+ (post_error_ne_num): Change parameter name.
+ * gcc-interface/utils.c (process_attributes): Static-ify.
+ <ATTR_MACHINE_ATTRIBUTE>: Set input_location before proceeding.
+ (create_type_decl): Add comment.
+ (create_var_decl_1): Process the attributes after adding the VAR_DECL
+ to the current binding level.
+ (create_subprog_decl): Likewise for the FUNCTION_DECL.
+ (end_subprog_body): Do not reset cfun to NULL.
+ (build_vms_descriptor32): Fix long line.
+ (build_vms_descriptor): Likewise.
+ (handle_nonnull_attribute): Likewise.
+ (convert_vms_descriptor64): Likewise.
+ * gcc-interface/utils2.c (fill_vms_descriptor): Fix long line.
+ (gnat_protect_expr): Fix thinko.
+
+2010-04-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (gigi): Set DECL_IGNORED_P on EH functions.
+ (gnat_to_gnu) <N_Op_Eq>: Restore the value of input_location
+ before translating the top-level node.
+ (lvalue_required_p) <N_Function_Call>: Return 1 if !constant.
+ <N_Object_Declaration>: Likewise.
+ <N_Assignment_Statement>: Likewise.
+ <N_Unchecked_Type_Conversion>: Likewise.
+ (call_to_gnu): Remove kludge.
+ (gnat_to_gnu) <N_Return_Statement>: When not optimizing, force labels
+ associated with user returns to be preserved.
+ (gnat_to_gnu): Add special code to deal with boolean rvalues.
+ * gcc-interface/utils2.c (compare_arrays): Set input_location on all
+ comparisons.
+ (build_unary_op) <ADDR_EXPR>: Call build_fold_addr_expr.
+ <INDIRECT_REF>: Call build_fold_indirect_ref.
+
+2010-04-15 Joel Sherrill <joel.sherrill@oarcorp.com>
+
+ * g-socket.adb: A target can have multiple missing errno's. This
+ will result in multiple errno's being defined as -1. Because of this
+ we can not use a case but must use a series of if's to avoid
+ a duplicate case error in GNAT.Sockets.Resolve_Error.
+
+2010-04-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (call_to_gnu): Open a nesting level if this is
+ a statement. Otherwise, if at top-level, push the processing of the
+ elaboration routine. In the misaligned case, issue the error messages
+ again on entry and create the temporary explicitly. Do not issue them
+ for CONSTRUCTORs.
+ For a function call, emit the range check if necessary.
+ In the copy-in copy-out case, create the temporary for the return
+ value explicitly.
+ Do not unnecessarily convert by-ref parameters to the formal's type.
+ Remove obsolete guards in conditions.
+ (gnat_to_gnu) <N_Assignment_Statement>: For a function call, pass the
+ target to call_to_gnu in all cases.
+ (gnat_gimplify_expr) <ADDR_EXPR>: Remove handling of SAVE_EXPR.
+ (addressable_p) <CONSTRUCTOR>: Return false if not static.
+ <COMPOUND_EXPR>: New case.
+ * gcc-interface/utils2.c (build_unary_op) <ADDR_EXPR>: Fold a compound
+ expression if it has unconstrained array type.
+ (gnat_mark_addressable) <COMPOUND_EXPR>: New case.
+ (gnat_stabilize_reference) <COMPOUND_EXPR>: Stabilize operands on an
+ individual basis.
+
+2010-04-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (gigi): Do not start statement group.
+ (Compilation_Unit_to_gnu): Set current_function_decl to NULL.
+ Start statement group and push binding level here...
+ (gnat_to_gnu) <N_Compilation_Unit>: ...and not here.
+ Do not push fake contexts at top level. Remove redundant code.
+ (call_to_gnu): Rename a local variable and constify another.
+ * gcc-interface/utils.c (gnat_pushlevel): Fix formatting nits.
+ (set_current_block_context): Set it as the group's block.
+ (gnat_init_decl_processing): Delete unrelated init code.
+ (end_subprog_body): Use NULL_TREE.
+
+2010-04-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (call_to_gnu): Do not unnecessarily force
+ side-effects of actual parameters before the call.
+
+2010-04-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (validate_size): Reorder, remove obsolete test
+ and warning.
+ (set_rm_size): Reorder and remove obsolete test.
+
+2010-04-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/gigi.h: Reorder declarations and tweak comments.
+ (gigi): Adjust ATTRIBUTE_UNUSED markers.
+ * gcc-interface/gadaint.h: New file.
+ * gcc-interface/trans.c: Include it in lieu of adaint.h. Reorder.
+ (__gnat_to_canonical_file_spec): Remove declaration.
+ (number_names): Delete.
+ (number_files): Likewise.
+ (gigi): Adjust.
+ * gcc-interface/Make-lang.in (ada/trans.o): Adjust dependencies to
+ above change.
+
+2010-04-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Class_Wide_Type>: Fix
+ comment.
+ * gcc-interface/trans.c (process_freeze_entity): Use local copy of
+ Ekind. Return early for class-wide types. Do not compute initializer
+ unless necessary. Reuse the tree for an associated class-wide type
+ only if processing its root type.
+
+2010-04-13 Joel Sherrill <joel.sherrill@oarcorp.com>
+
+ * gsocket.h: Run-time can no longer be built without network
+ OS headers available. Changing RTEMS GNAT build procedure to
+ reflect this and letting run-time build use network .h files.
+
+2010-04-13 Duncan Sands <baldrick@free.fr>
+
+ * gcc-interface/misc.c (gnat_eh_type_covers): Remove.
+ * gcc-interface/trans.c (Exception_Handler_to_gnu_zcx): Update comment.
+
+2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/gigi.h (standard_datatypes): Add ADT_parent_name_id.
+ (parent_name_id): New macro.
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Use it.
+ * gcc-interface/trans.c (gigi): Initialize it.
+ (lvalue_required_p) <N_Type_Conversion>: New case.
+ <N_Qualified_Expression>: Likewise.
+ <N_Allocator>: Likewise.
+ * gcc-interface/utils.c (convert): Try to properly upcast tagged types.
+
+2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/ada-tree.h (TYPE_BY_REFERENCE_P): Delete.
+ (DECL_CONST_ADDRESS_P): New macro.
+ (SET_DECL_ORIGINAL_FIELD_TO_FIELD): Likewise.
+ (SAME_FIELD_P): Likewise.
+ * gcc-interface/decl.c (constructor_address_p): New static function.
+ (gnat_to_gnu_entity) <object>: Set DECL_CONST_ADDRESS_P according to
+ the return value of above function.
+ (gnat_to_gnu_entity) <E_Record_Type>: Force BLKmode for all types
+ passed by reference.
+ <E_Record_Subtype>: Likewise.
+ Set TREE_ADDRESSABLE on the type if it passed by reference.
+ (make_packable_type): Use SET_DECL_ORIGINAL_FIELD_TO_FIELD.
+ (create_field_decl_from): Likewise.
+ (substitute_in_type): Likewise.
+ (purpose_member_field): Use SAME_FIELD_P.
+ * gcc-interface/misc.c (must_pass_by_ref): Test TREE_ADDRESSABLE.
+ * gcc-interface/trans.c (lvalue_required_p): Add ADDRESS_OF_CONSTANT
+ parameter and adjust recursive calls.
+ <N_Explicit_Dereference>: New case.
+ <N_Object_Declaration>: Return 1 if the object is of a class-wide type.
+ Adjust calls to lvalue_required_p. Do not return the initializer of a
+ DECL_CONST_ADDRESS_P constant if an lvalue is required for it.
+ (call_to_gnu): Delay issuing error message for a misaligned actual and
+ avoid the associated back-end assertion. Test TREE_ADDRESSABLE.
+ (gnat_gimplify_expr) <ADDR_EXPR>: Handle non-static constructors.
+ * gcc-interface/utils.c (make_dummy_type): Set TREE_ADDRESSABLE if the
+ type is passed by reference.
+ (convert) <CONSTRUCTOR>: Convert in-place in more cases.
+ * gcc-interface/utils2.c (build_cond_expr): Drop TYPE_BY_REFERENCE_P.
+ (build_simple_component_ref): Use SAME_FIELD_P.
+
+2010-04-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (Identifier_to_gnu): Use boolean variable.
+ (call_to_gnu): Test gigi's flag TYPE_BY_REFERENCE_P instead of calling
+ front-end's predicate Is_By_Reference_Type. Use consistent order and
+ remove ??? comment. Use original conversion in all cases, if any.
+ * gcc-interface/utils.c (make_dummy_type): Minor tweak.
+ (convert): Use local copy in more cases.
+ <INDIRECT_REF>: Remove deactivated code.
+ (unchecked_convert): Use a couple of local copies.
+
+2010-04-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (lvalue_required_for_attribute_p): New static
+ function.
+ (lvalue_required_p) <N_Attribute_Reference>: Call it.
+ (gnat_to_gnu) <N_Selected_Component>: Prevent build_component_ref from
+ folding the result only if lvalue_required_for_attribute_p is true.
+ * gcc-interface/utils.c (maybe_unconstrained_array): Pass correctly
+ typed constant to build_component_ref.
+ (unchecked_convert): Likewise.
+ * gcc-interface/utils2.c (maybe_wrap_malloc): Likewise.
+ (build_allocator): Likewise.
+
+2010-04-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/utils2.c (build_cond_expr): Take the address and
+ dereference if the result type is passed by reference.
+
+2010-04-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (Case_Statement_to_gnu): Bool-ify variable.
+ (gnat_to_gnu) <N_Null_Statement>: When not optimizing, generate a
+ goto to the next statement.
+
+2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/gigi.h (maybe_variable): Delete.
+ (protect_multiple_eval): Likewise.
+ (maybe_stabilize_reference): Likewise.
+ (gnat_save_expr): Declare.
+ (gnat_protect_expr): Likewise.
+ (gnat_stabilize_reference): Likewise.
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Use
+ gnat_stabilize_reference.
+ (maybe_variable): Delete.
+ (elaborate_expression_1): Use gnat_save_expr.
+ * gcc-interface/trans.c (Attribute_to_gnu): Use gnat_protect_expr.
+ (call_to_gnu): Pass NULL to gnat_stabilize_reference.
+ (gnat_to_gnu) <N_Object_Declaration>: Use gnat_save_expr.
+ <N_Slice>: Use gnat_protect_exp.
+ <N_Selected_Component>: Pass NULL to gnat_stabilize_reference.
+ <N_In>: Use gnat_protect_expr.
+ Pass NULL to gnat_stabilize_reference.
+ (build_unary_op_trapv): Use gnat_protect_expr.
+ (build_binary_op_trapv): Likewise.
+ (emit_range_check): Likewise.
+ (emit_index_check): Likewise.
+ (convert_with_check): Likewise.
+ (protect_multiple_eval): Move to utils2.c file.
+ (maybe_stabilize_reference): Merge into...
+ (gnat_stabilize_reference): ...this. Move to utils2.c file.
+ (gnat_stabilize_reference_1): Likewise.
+ * gcc-interface/utils.c (convert_to_fat_pointer): Use gnat_protect_expr
+ instead of protect_multiple_eval.
+ * gcc-interface/utils2.c (compare_arrays): Likewise.
+ (nonbinary_modular_operation): Likewise.
+ (maybe_wrap_malloc): Likewise.
+ (build_allocator): Likewise.
+ (gnat_save_expr): New function.
+ (gnat_protect_expr): Rename from protect_multiple_eval. Early return
+ in common cases. Propagate TREE_READONLY onto dereferences.
+ (gnat_stabilize_reference_1): Move from trans.c file.
+ (gnat_stabilize_reference): Likewise.
+
+2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/gigi.h (gnat_mark_addressable): Rename parameter.
+ * gcc-interface/decl.c (maybe_variable): Do not set TREE_STATIC on _REF
+ node. Use the type of the operand to set TREE_READONLY.
+ * gcc-interface/trans.c (Identifier_to_gnu): Do not set TREE_STATIC on
+ _REF node. Do not overwrite TREE_READONLY.
+ (call_to_gnu): Rename local variable and fix various nits. In the
+ copy-in/copy-out case, build the SAVE_EXPR manually.
+ (convert_with_check): Call protect_multiple_eval in lieu of save_expr
+ and fold the computations.
+ (protect_multiple_eval): Always save entire fat pointers.
+ (maybe_stabilize_reference): Minor tweaks.
+ (gnat_stabilize_reference_1): Likewise. Do not deal with tcc_constant,
+ tcc_type and tcc_statement.
+ * gcc-interface/utils.c (convert_to_fat_pointer): Call
+ protect_multiple_eval in lieu of save_expr.
+ (convert): Minor tweaks.
+ (maybe_unconstrained_array): Do not set TREE_STATIC on _REF node.
+ (builtin_type_for_size): Call gnat_type_for_size directly.
+ * gcc-interface/utils2.c (contains_save_expr_p): Delete.
+ (contains_null_expr): Likewise
+ (gnat_build_constructor): Do not call it.
+ (compare_arrays): Deal with all side-effects, use protect_multiple_eval
+ instead of gnat_stabilize_reference to protect the operands.
+ (nonbinary_modular_operation): Call protect_multiple_eval in lieu of
+ save_expr.
+ (maybe_wrap_malloc): Likewise.
+ (build_allocator): Likewise.
+ (build_unary_op) <INDIRECT_REF>: Do not set TREE_STATIC on _REF node.
+ (gnat_mark_addressable): Rename parameter.
+
+2010-04-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/ada-tree.h (TYPE_RETURNS_UNCONSTRAINED_P): Rename into.
+ (TYPE_RETURN_UNCONSTRAINED_P): ...this.
+ (TYPE_RETURNS_BY_REF_P): Rename into.
+ (TYPE_RETURN_BY_DIRECT_REF_P): ...this.
+ (TYPE_RETURNS_BY_TARGET_PTR_P): Delete.
+ * gcc-interface/gigi.h (create_subprog_type): Adjust parameter names.
+ (build_return_expr): Likewise.
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>:
+ Rename local variables. If the return Mechanism is By_Reference, pass
+ return_by_invisible_ref_p to create_subprog_type instead of toggling
+ TREE_ADDRESSABLE. Test return_by_invisible_ref_p in order to annotate
+ the mechanism. Use regular return for contrained types with non-static
+ size and return by invisible reference for unconstrained return types
+ with default discriminants. Update comment.
+ * gcc-interface/trans.c (Subprogram_Body_to_gnu): If the function
+ returns by invisible reference, turn the RESULT_DECL into a pointer.
+ Do not handle DECL_BY_REF_P in the CICO case here.
+ (call_to_gnu): Remove code handling return by target pointer. For a
+ function call, if the return type has non-constant size, generate the
+ assignment with an INIT_EXPR.
+ (gnat_to_gnu) <N_Return_Statement>: Remove dead code in the CICO case.
+ If the function returns by invisible reference, build the copy return
+ operation manually.
+ (add_decl_expr): Initialize the variable with an INIT_EXPR.
+ * gcc-interface/utils.c (create_subprog_type): Adjust parameter names.
+ Adjust for renaming of macros. Copy the node only when necessary.
+ (create_subprog_decl): Do not toggle TREE_ADDRESSABLE on the return
+ type, only change DECL_BY_REFERENCE on the RETURN_DECL.
+ (convert_from_reference): Delete.
+ (is_byref_result): Likewise.
+ (gnat_genericize_r): Likewise.
+ (gnat_genericize): Likewise.
+ (end_subprog_body): Do not call gnat_genericize.
+ * gcc-interface/utils2.c (build_binary_op) <INIT_EXPR>: New case.
+ (build_return_expr): Adjust parameter names, logic and comment.
+
+2010-04-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_pakd.adb (Create_Packed_Array_Type): Always use a modular type
+ if the size is small enough. Propagate the alignment if there is an
+ alignment clause on the original array type.
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>
+ Deal with under-aligned packed array types. Copy the size onto the
+ justified modular type and don't lay it out again. Likewise for the
+ padding type built for other under-aligned subtypes.
+ * gcc-interface/utils.c (finish_record_type): Do not set a default mode
+ on the type.
+
+2010-04-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set default
+ alignment on the RETURN type built for the Copy-In Copy-Out mechanism.
+
+2010-04-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (call_to_gnu): In the return-by-target-ptr case
+ do not set the result type if there is a specified target and do not
+ convert the result in any cases.
+ (protect_multiple_eval): Make direct SAVE_EXPR for CALL_EXPR.
+ (maybe_stabilize_reference) <COMPOUND_EXPR>: Merge with CALL_EXPR.
+
+2010-03-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/Makefile.in (SPARC/Solaris): Use sparcv8plus.
+
+2010-02-27 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/42253
+ * gcc-interface/utils2.c (build_binary_op) <EQ_EXPR>: Assert that fat
+ pointer base types are variant of each other. Apply special treatment
+ for null to fat pointer types in all cases.
+
+2010-01-28 Pascal Obry <obry@adacore.com>
+
+ * s-win32.ads: Add some missing constants.
+
+2010-01-28 Vincent Celier <celier@adacore.com>
+
+ * prj-attr-pm.adb (Add_Attribute): Do nothing if To_Package is
+ Unknown_Package.
+
+2010-01-28 Robert Dewar <dewar@adacore.com>
+
+ * gnat_rm.texi: Minor correction
+
+2010-01-27 Pascal Obry <obry@adacore.com>
+
+ * g-awk.adb: ensure that an AWK session is reusable.
+
+2010-01-27 Vasiliy Fofanov <fofanov@adacore.com>
+
+ * g-regist.adb (For_Every_Key): Fix previous change.
+ Minor reformatting.
+
+2010-01-27 Thomas Quinot <quinot@adacore.com>
+
+ * lib-writ.ads: Current version of spec for new N (note) ALI lines
+
+2010-01-27 Yannick Moy <moy@adacore.com>
+
+ * a-cdlili.adb (Insert): Correct exception message when cursor
+ designates wrong list.
+
+2010-01-27 Vincent Celier <celier@adacore.com>
+
+ * gnatcmd.adb: When there is only one main specified, the package
+ support Switches (<main>) and attribute Switches is specified for the
+ main, use these switches, instead of Default_Switches ("Ada").
+
+2010-01-27 Robert Dewar <dewar@adacore.com>
+
+ * sem_prag.adb, par-prag.adb, snames.ads-tmpl: pragma Dimension initial
+ implementation.
+ * exp_disp.adb: Minor reformatting
+
+2010-01-27 Tristan Gingold <gingold@adacore.com>
+
+ * seh_init.c: Use __ImageBase instead of _ImageBase.
+
+2010-01-27 Javier Miranda <miranda@adacore.com>
+
+ * exp_disp.ads, exp_disp.adb (Expand_Interface_Thunk): Modify the
+ profile of interface thunks. The type of the controlling formal is now
+ the covered interface type (instead of the target tagged type).
+
+2010-01-27 Sergey Rybin <rybin@adacore.com>
+
+ * gnat_rm.texi, gnat_ugn.texi: Update gnatcheck doc.
+
+2010-01-27 Robert Dewar <dewar@adacore.com>
+
+ * sinput.ads, sinput.adb (Sloc_Range): Applies to all nodes, formal
+ changed from Expr to N.
+
+2010-01-26 Thomas Quinot <quinot@adacore.com>
+
+ * gnat_ugn.texi: Adjust documentation of -gnatz switches.
+ * usage.adb: Replace line for -gnatz with two lines for -gnatzc and
+ -gnatzr.
+
+2010-01-26 Vincent Celier <celier@adacore.com>
+
+ * prj-attr.adb: Add new attribute Library_Install_Name_Option
+ Replace attribute Run_Path_Origin_Supported with Run_Path_Origin
+ * prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process
+ attributes Run_Path_Option and Library_Install_Name_Option.
+ * prj.ads (Project_Configuration): Replace component
+ Run_Path_Origin_Supported with component Run_Path_Origin. Add new
+ component Library_Install_Name_Option.
+ * snames.ads-tmpl: Add new standard name Library_Install_Name_Option
+ Replace Run_Path_Origin_Supported with Run_Path_Origin
+
+2010-01-26 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch8.adb (Use_One_Package): Within an instance, an actual package
+ is not hidden by a homograph declared in another actual package.
+
+2010-01-26 Robert Dewar <dewar@adacore.com>
+
+ * par_sco.adb (Traverse_Declarations_Or_Statements): Only generate
+ decisions for pragmas Assert, Check, Precondition, Postcondition if
+ -gnata set.
+ * scos.ads: Update comments.
+ * get_scos.adb, put_scos.adb: Minor fix to code reading statement SCOs.
+ Also remove obsolete code for CT (exit point) SCOs.
+
+2010-01-26 Thomas Quinot <quinot@adacore.com>
+
+ * switch-c.adb: Fix handling of -gnatz*
+
+2010-01-26 Robert Dewar <dewar@adacore.com>
+
+ * par_sco.adb (Traverse_Declarations_Or_Statements): Separate F/W
+ qualifiers for FOR/WHILE loops
+ * scos.ads: Use separate type letters F/W for for/while loops
+
+2010-01-26 Robert Dewar <dewar@adacore.com>
+
+ * get_scos.adb (Get_SCOs): Implement new form of CS entries (multiple
+ entries per line, one for each statement in the sequence).
+ * par_sco.adb (Traverse_Declarations_Or_Statements): Increase array
+ size from 100 to 10_000 for SC_Array to avoid any real possibility of
+ overflow. Output decisions in for loops.
+ Exclude labels from CS lines.
+ * scos.ads: Clarify that label is not included in the entry point
+
+2010-01-26 Robert Dewar <dewar@adacore.com>
+
+ * par_sco.adb (Traverse_Declarations_Or_Statments): Implement new
+ format of statement sequence SCO entries (one location/statement).
+ * put_scos.adb (Put_SCOs): Implement new format of CS lines
+ * scos.ads: Update comments.
+ * sem_eval.adb: Minor reformatting.
+
+2010-01-26 Robert Dewar <dewar@adacore.com>
+
+ * par_sco.ads, par_sco.adb (Set_Statement_Entry): New handling of exits
+ (Extend_Statement_Sequence): New procedures
+ (Traverse_Declarations_Or_Statements): New handling for exits.
+
+2010-01-26 Robert Dewar <dewar@adacore.com>
+
+ * par_sco.adb (Traverse_Declarations_Or_Statements): Add processing for
+ Case.
+
+2010-01-26 Robert Dewar <dewar@adacore.com>
+
+ * par_sco.adb (Is_Logical_Operator): Exclude AND/OR/XOR
+ * scos.ads: Clarify handling of logical operators
+
+2010-01-26 Arnaud Charlet <charlet@adacore.com>
+
+ * s-tpoben.adb: Update comments.
+
+2010-01-26 Robert Dewar <dewar@adacore.com>
+
+ * freeze.adb (Set_Small_Size): Don't set size if alignment clause
+ present.
+
+2010-01-26 Robert Dewar <dewar@adacore.com>
+
+ * scos.ads: Clean up documentation, remove obsolete XOR references
+2010-01-26 Vincent Celier <celier@adacore.com>
+
+ * gnat_ugn.texi: Complete documentation on the restrictions for
+ combined options in -gnatxxx switches.
+ Fix typo.
+
+2010-01-26 Arnaud Charlet <charlet@adacore.com>
+
+ * s-tpoben.adb (Initialize_Protection_Entries): If a PO is created from
+ a controlled operation, abort is already deferred at this point, so we
+ need to use Defer_Abort_Nestable.
+
+2010-01-26 Vincent Celier <celier@adacore.com>
+
+ * prj-conf.adb (Get_Config_Switches): Check for a default language for
+ a project extending a project with no languages.
+
2010-01-26 Vincent Celier <celier@adacore.com>
* switch-c.adb (Scan_Front_End_Switches): Take into account options