OSDN Git Service

* gcc-interface/utils2.c (build_unary_op) <ATTR_ADDR_EXPR>: Do not
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
index 802b4d4..d24a07d 100644 (file)
@@ -1,3 +1,142 @@
+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.