1. 18 Apr, 2010 2 commits
    • fold-const.c (fold_comparison): Use ssizetype. · 3b9e5d95
      2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* fold-const.c (fold_comparison): Use ssizetype.
      	* gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
      	* ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
      	* tree-loop-distribution.c (build_size_arg_loc): Likewise.
      	* tree-object-size.c (compute_object_sizes): Use size_type_node.
      
      	* tree.h (initialize_sizetypes): Remove parameter.
      	(build_common_tree_nodes): Remove second parameter.
      	* stor-layout.c (initialize_sizetypes): Remove parameter.
      	Always create an unsigned type.
      	(set_sizetype): Assert that the passed type is unsigned and simplify.
      	* tree.c (build_common_tree_nodes): Remove second parameter.
      	Adjust call to initialize_sizetypes.
      	* c-decl.c (c_init_decl_processing): Remove second argument in call to
      	build_common_tree_nodes.
      cp/
      	* decl.c (cxx_init_decl_processing): Remove second argument in call to
      	build_common_tree_nodes.
      java/
      	* decl.c (java_init_decl_processing): Remove argument in call to
      	initialize_sizetypes
      fortran/
      	* f95-lang.c (gfc_init_decl_processing): Remove second argument in call
      	to build_common_tree_nodes.
      ada/
      	* gcc-interface/misc.c (gnat_init): Remove second argument in call to
      	build_common_tree_nodes.
      lto/
      	* lto-lang.c (lto_init): Remove second argument in call to
      	build_common_tree_nodes.
      
      From-SVN: r158496
      Eric Botcazou committed
    • gsocket.h: Make sure that winsock2.h is included before windows.h. · 0d29aedc
      2010-04-18  Ozkan Sezer  <sezeroz@gmail.com>
      
              * gsocket.h: Make sure that winsock2.h is included before windows.h.
      
      From-SVN: r158482
      Ozkan Sezer committed
  2. 17 Apr, 2010 6 commits
    • utils2.c (build_unary_op): Do not issue warning. · f5631ae6
      	* gcc-interface/utils2.c (build_unary_op) <ATTR_ADDR_EXPR>: Do not
      	issue warning.
      
      From-SVN: r158469
      Eric Botcazou committed
    • Fix copyright date. · b9175f57
      From-SVN: r158468
      Eric Botcazou committed
    • Add missing hunk for previous patch. · b6c056fe
      From-SVN: r158467
      Eric Botcazou committed
    • uintp.h (UI_Lt): Declare. · 728936bb
      	* 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.
      
      From-SVN: r158466
      Eric Botcazou committed
    • back-end.adb (Call_Back_End): Pass Standard_Character to gigi. · 6936c61a
      	* 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.
      
      From-SVN: r158462
      Eric Botcazou committed
    • gigi.h (enum standard_datatypes): Add new values ADT_sbitsize_one_node and ADT_sbitsize_unit_node. · 1081f5a7
      	* 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.
      
      From-SVN: r158461
      Eric Botcazou committed
  3. 16 Apr, 2010 6 commits
    • gigi.h (gnat_init_decl_processing): Delete. · 86060344
      	* 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.
      
      From-SVN: r158428
      Eric Botcazou committed
    • trans.c (unchecked_conversion_nop): Handle function calls. · 68a3eb69
      	* gcc-interface/trans.c (unchecked_conversion_nop): Handle function
      	calls.  Return true for conversion from a record subtype to its type.
      
      From-SVN: r158412
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Use boolean_type_node in lieu of integer_type_node… · 1139f2e8
      decl.c (gnat_to_gnu_entity): Use boolean_type_node in lieu of integer_type_node for boolean operations.
      
      	* 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.
      
      From-SVN: r158411
      Eric Botcazou committed
    • ada-tree.def (LOOP_STMT): Change to 4-operand nodes. · d88bbbb9
      	* 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.
      
      From-SVN: r158410
      Eric Botcazou committed
    • uintp.adb (UI_From_Dint): Remove useless code. · 586388fd
      	* 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.
      
      From-SVN: r158408
      Eric Botcazou committed
    • decl.c (make_type_from_size): Just copy TYPE_NAME. · 169afcb9
      	* 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.
      
      From-SVN: r158398
      Eric Botcazou committed
  4. 15 Apr, 2010 8 commits
    • cuintp.c (UI_To_gnu): Fix long line. · 58c8f770
      	* 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.
      
      From-SVN: r158390
      Eric Botcazou committed
    • trans.c (gigi): Set DECL_IGNORED_P on EH functions. · 1fc24649
      	* 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.
      
      From-SVN: r158388
      Eric Botcazou committed
    • g-socket.adb: A target can have multiple missing errno's. · 8c709695
      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.
      
      From-SVN: r158382
      Joel Sherrill committed
    • gsocket.h: Run-time can no longer be built without network OS headers available. · d8a653c5
      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.
      
      From-SVN: r158381
      Joel Sherrill committed
    • trans.c (call_to_gnu): Open a nesting level if this is a statement. · 0b3467c4
      	* 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.
      
      From-SVN: r158371
      Eric Botcazou committed
    • trans.c (gigi): Do not start statement group. · a09d56d8
      	* 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.
      
      From-SVN: r158370
      Eric Botcazou committed
    • trans.c (call_to_gnu): Do not unnecessarily force side-effects of actual… · 932c8650
      trans.c (call_to_gnu): Do not unnecessarily force side-effects of actual parameters before the call.
      
      	* gcc-interface/trans.c (call_to_gnu): Do not unnecessarily force
      	side-effects of actual parameters before the call.
      
      From-SVN: r158369
      Eric Botcazou committed
    • decl.c (validate_size): Reorder, remove obsolete test and warning. · 8ff6c664
      	* gcc-interface/decl.c (validate_size): Reorder, remove obsolete test
      	and warning.
      	(set_rm_size): Reorder and remove obsolete test.
      
      From-SVN: r158368
      Eric Botcazou committed
  5. 14 Apr, 2010 2 commits
    • gigi.h: Reorder declarations and tweak comments. · 831f44c6
      	* 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.
      
      From-SVN: r158296
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Fix comment. · f08863f9
      	* 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.
      
      From-SVN: r158295
      Eric Botcazou committed
  6. 13 Apr, 2010 4 commits
    • gsocket.h: Run-time can no longer be built without network OS headers available. · 014edf49
      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.
      
      From-SVN: r158279
      Joel Sherrill committed
    • Remove lang_eh_type_covers, which is dead, and the corresponding · 1a710808
      Ada routine gnat_eh_type_covers.
      
      From-SVN: r158258
      Duncan Sands committed
    • gigi.h (standard_datatypes): Add ADT_parent_name_id. · 76af763d
      	* 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.
      
      From-SVN: r158255
      Eric Botcazou committed
    • gimple.c (walk_gimple_op): Do not request a pure rvalue on the RHS if the LHS is… · cb3d597d
      gimple.c (walk_gimple_op): Do not request a pure rvalue on the RHS if the LHS is of a non-renamable type.
      
      	* gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
      	rvalue on the RHS if the LHS is of a non-renamable type.
      	* tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
      ada/
      	* 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.
      
      From-SVN: r158254
      Eric Botcazou committed
  7. 12 Apr, 2010 1 commit
    • trans.c (Identifier_to_gnu): Use boolean variable. · c34f3839
      	* 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.
      
      From-SVN: r158216
      Eric Botcazou committed
  8. 11 Apr, 2010 3 commits
  9. 09 Apr, 2010 2 commits
    • gigi.h (maybe_variable): Delete. · 7d7a1fe8
      	* 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.
      
      From-SVN: r158159
      Eric Botcazou committed
    • gigi.h (gnat_mark_addressable): Rename parameter. · ced57283
      	* 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.
      
      From-SVN: r158156
      Eric Botcazou committed
  10. 08 Apr, 2010 1 commit
    • tree.h (TREE_ADDRESSABLE): Document its effect for function types. · d47d0a8d
      	* tree.h (TREE_ADDRESSABLE): Document its effect for function types.
      	* calls.c (expand_call): Pass the function type to aggregate_value_p.
      	* function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
      	the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
      	function type instead.  Reorder and simplify checks.
      
      	* gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
      ada/
      	* 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.
      
      From-SVN: r158139
      Eric Botcazou committed
  11. 07 Apr, 2010 3 commits
  12. 02 Apr, 2010 1 commit
    • Make-lang.in, [...]: Update copyright years. · c75c517d
      	* ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c, 
      	basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
      	collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
      	config/alpha/predicates.md, config/arm/arm.md,
      	config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
      	config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
      	config/darwin9.h, config/darwin.c, config/darwin.h,
      	config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
      	config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
      	config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
      	config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
      	config/mips/mips.md, config/mn10300/mn10300.c,
      	config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
      	config/rs6000/aix.h, config/rs6000/dfp.md,
      	config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
      	config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
      	config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
      	config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
      	config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
      	config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
      	c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
      	diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
      	doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
      	doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
      	fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
      	gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
      	graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
      	graphite-dependences.c, graphite-poly.c, graphite-poly.h,
      	graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
      	graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
      	intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
      	ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
      	ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
      	loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
      	objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
      	opt-functions.awk, opth-gen.awk, params.def, passes.c,
      	postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
      	rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
      	store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
      	tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
      	tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
      	tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
      	tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
      	tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
      	tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
      	tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
      	tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
      	tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
      	tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
      	unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
      
      From-SVN: r157950
      Steven Bosscher committed
  13. 10 Mar, 2010 1 commit