OSDN Git Service

* gcc-interface/trans.c (unchecked_conversion_nop): Handle function
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
index a12e7db..1fef2c7 100644 (file)
@@ -1,5 +1,78 @@
 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...