Commit Graph

93062 Commits

Author SHA1 Message Date
Andrew Pinski
158ec531fe handler-1.m: For the NeXT runtime, just return 0.
2009-04-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * objc/execute/exceptions/handler-1.m: For the NeXT runtime, just return 0.

From-SVN: r146461
2009-04-20 15:23:55 -07:00
Tobias Burnus
47b0b4fa4f re PR fortran/39811 (Bogus warning for valid continuation lines)
2009-04-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39811
        * scanner.c (load_line): Fix bogus "&" compile-time diagnostic.

2009-04-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39811
        * gfortran.dg/continuation_11.f90: New test.

From-SVN: r146460
2009-04-21 00:19:25 +02:00
Manuel López-Ibáñez
9c650d90ab re PR c++/13358 (long long and C++ do not mix well)
2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/13358
	* doc/invoke.texi (-Wlong-long): Update description.
	* c-lex (interpret_integer): Only warn if there was no previous
	overflow and -Wlong-long is enabled.
	* c-decl.c (declspecs_add_type): Drop redundant flags.
	* c.opt (Wlong-long): Init to -1.
	* c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
	and front-end warn_long_long. Wlong-long only depends on other
	flags if it is uninitialized.
	* c-parser.c (disable_extension_diagnostics): warn_long_long is
	the same for CPP and FE.
	(restore_extension_diagnostics): Likewise.
libcpp/
	* init.c (cpp_create_reader): Wlong_long is disabled by default.
	* expr.c (cpp_classify_number): Give different messages for C and
	C++ front-ends.
cp/
	* parser.c (cp_parser_check_decl_spec): Drop redundant flags.
	* error.c (pedwarn_cxx98): New.
	* cp-tree.h (pedwarn_cxx98): Declare.
testsuite/
	* gcc.dg/wtr-int-type-1.c: Use two dg-warning to match two
	messages. Test for "long long" in system headers.
	* gcc.dg/c99-longlong-2.c: New.
	* g++.dg/warn/pr13358.C: New.
	* g++.dg/warn/pr13358-2.C: New.
	* g++.dg/warn/pr13358-3.C: New.
	* g++.dg/warn/pr13358-4.C: New.

From-SVN: r146459
2009-04-20 22:12:52 +00:00
Andrew Pinski
37041295f5 framework-2.c: Fix up for non existent includes being fatal errors now.
2009-04-20  Andrew Pinski <andrew_pinski@playstation.sony.com>

        * gcc.dg/framework-2.c: Fix up for non existent includes
        being fatal errors now.

From-SVN: r146458
2009-04-20 14:59:38 -07:00
Paul Thomas
c867b7b653 re PR fortran/39800 (Rejects PRIVATE TYPE as compont of local type declaration)
2009-04-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/39800
	* resolve.c (is_sym_host_assoc): New function.
	(resolve_fl_derived): Call it when checking PRIVATE components
	of PUBLIC derived types.  Change gfc_error to a gfc_notify_std
	with std=f2003.
	(resolve_fl_namelist): Call it twice to check for host
	association.

2009-04-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/39800
	* gfortran.dg/private_type_13.f90: New test.
	* gfortran.dg/private_type_2.f90: Add option -std=f95.

From-SVN: r146457
2009-04-20 21:55:26 +00:00
Le-Chun Wu
311fa510e6 re PR c++/39803 (Bogus 'unused value' warning on declarations of non-POD arrays)
PR c++/39803
	* gcc/cp/init.c (build_vec_init): Set TREE_NO_WARNING on the
	compiler-generated INDIRECT_REF expression.
	* gcc/testsuite/g++.dg/warn/Wunused-14.C: New test.

From-SVN: r146454
2009-04-20 21:13:08 +00:00
Eric Botcazou
6e0f0975e5 decl.c (gnat_to_gnu_entity): Rewrite Esize calculation.
* gcc-interface/decl.c (gnat_to_gnu_entity): Rewrite Esize calculation.
	<E_Signed_Integer_Subtype>: Set the RM size on the integer type
	before wrapping it up in the record type.  Do not overwrite the
	Ada size of the record type with the Esize.

From-SVN: r146452
2009-04-20 19:56:48 +00:00
Ian Lance Taylor
bbbbb16a88 Fix enum conversions which are invalid in C++:
gcc/:
	Fix enum conversions which are invalid in C++:
	* auto-inc-dec.c (attempt_change): Change 0 to SET in function
	call.
	* calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function
	call.
	* cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
	* dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
	* dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function
	call.
	(dbxout_parms): Likewise.
	* df-core.c (df_set_flags): Change changeable_flags parameter to
	int.
	(df_clear_flags): Likewise.
	* df-problems.c (df_rd_bb_local_compute_process_def): Change
	top_flag parameter to int.
	(df_chain_create_bb_process_use): Likewise.
	(df_chain_add_problem): Change chain_flags parameter to unsigned
	int.  Remove cast.
	* df-scan.c (df_ref_create): Change ref_flags parameter to int.
	(df_ref_create_structure, df_def_record_1): Likewise.
	(df_defs_record, df_uses_record, df_get_call_refs): Likewise.
	(df_notes_rescan): Change 0 to VOIDmode in function call.
	(df_get_call_refs, df_insn_refs_collect): Likewise.
	(df_bb_regs_collect): Likewise.
	(df_entry_block_defs_collect): Likewise.
	(df_exit_block_uses_collect): Likewise.
	* df.h: Update declarations.
	* double-int.c (double_int_divmod): Add cast to enum type.
	* dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
	* dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
	(based_loc_descr): Likewise.
	(loc_descriptor_from_tree_1): Change first_op and second_op to
	enum dwarf_location_atom.  Add cast to enum type.
	* expmed.c (init_expmed): Change 0 to SET in function call.
	* expr.c (init_expr_target): Change 0 to VOIDmode in function
	call.
	(expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
	(do_store_flag): Likewise.
	* fixed-value.h (struct fixed_value): Change mode to enum
	machine_mode.
	* function.c (assign_parms): Change 0 to VOIDmode in function
	call.
	* genautomata.c (insert_automaton_decl): Change 1 to INSERT in
	function call.
	(insert_insn_decl, insert_decl, insert_state): Likewise.
	(automata_list_finish): Likewise.
	* genrecog.c (process_define_predicate): Add cast to enum type.
	* gensupport.c (init_predicate_table): Add cast to enum type.
	* gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
	function call.
	(gimple_build_call_1, gimple_build_label): Likewise.
	(gimple_build_goto, gimple_build_asm_1): Likewise.
	(gimple_build_switch_1, gimple_build_cdt): Likewise.
	* gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function
	call.
	(enum fallback): Rename from enum fallback_t.
	(fallback_t): Typedef as int.
	* gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
	GSI_SAME_STMT in function call.
	* ira.c (setup_class_subset_and_memory_move_costs): Add casts to
	enum type.
	(setup_reg_class_relations): Likewise.
	(setup_reg_class_nregs): Change cl to int.  Add casts to enum
	type.
	(setup_prohibited_class_mode_regs): Add cast to enum type.
	(setup_prohibited_mode_move_regs): Likewise.
	* ira-costs.c (record_reg_classes): Change rclass to enum
	reg_class.
	(record_address_regs): Change i to enum reg_class.
	* lists.c (alloc_EXPR_LIST): Add cast to enum type.
	* machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
	(GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
	(GET_MODE_2XWIDER_MODE): Likewise.
	(GET_CLASS_NARROWEST_MODE): Likewise.
	* omp-low.c (expand_omp_for): Add cast to enum type.
	* optabs.c (debug_optab_libfuncs): Add casts to enum type.
	* opts.c (enable_warning_as_error): Change kind to diagostic_t.
	* postreload.c (reload_cse_simplify_operands): Change rclass local
	to enum reg_class.
	* predict.c (combine_predictions_for_insn): Change best_predictor
	and predictor to enum br_predictor.
	(combine_predictions_for_bb): Likewise.
	(build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
	use SET_PREDICT_EXPR_OUTCOME.
	* real.c (real_arithmetic): Change icode to code in function
	call.
	* reginfo.c (init_move_cost): Add casts to enum type.
	(init_reg_sets_1, init_fake_stack_mems): Likewise.
	* regmove.c (regclass_compatible_p): Change class0 and class1 to
	enum reg_class.
	* reload.c (find_valid_class): Add casts to enum type.
	(push_reload): Change 0 to NO_REGS in function call.
	(find_reloads): Change this_alternative to array of enum
	reg_class.  Remove some now-unnecessary casts.
	(make_memloc): Change 0 to VOIDmode in function call.
	* reload1.c (reload): Change 0 to VOIDmode in function call.
	(eliminate_regs_1, elimination_effects): Likewise.
	(eliminate_regs_in_insn): Likewise.
	(emit_input_reload_insns): Add cast to enum type.
	(delete_output_reload): Change 0 to VOIDmode in function call.
	* reorg.c (insn_sets_resource_p): Convert include_delayed_effects
	to enum type in function call.
	* tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
	(SET_PREDICT_EXPR_OUTCOME): Define.
	* tree-dump.c (get_dump_file_info): Change phase parameter to
	int.
	(get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
	(dump_initialized_p, dump_flag_name, dump_end): Likewise.
	(dump_function): Likewise.
	* tree-dump.h: Update declarations.
	* tree-pass.h: Update declarations.
	* varasm.c (assemble_integer): Change mclass to enum mode_class.
	* config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
	enum type.
	(arm_rtx_costs_1): Correct parenthesization.
	(arm_rtx_costs): Add casts to enum type.
	(adjacent_mem_locations): Reverse arguments to const_ok_for_op.
	(vfp_emit_fstmd): Use add_rg_note.
	(emit_multi_reg_push, emit_sfm): Likewise.
	(thumb_set_frame_pointer): Likewise.
	(arm_expand_prologue): Likewise.
	(arm_regno_class): Change return type to enum reg_class.
	(thumb1_expand_prologue): Use add_reg_note.
	* config/arm/arm-protos.h (arm_regno_class): Update declaration.
	* config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
	in function call.
	* config/arm/gentune.sh: Add cast to enum type.
	* config/arm/arm-tune.md: Rebuild.
	* config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
	(ix86_split_fp_branch, predict_jump): Likewise.
	(ix86_expand_multi_arg_builtin): Change sub_code from enum
	insn_code to enum rtx_code.
	(ix86_builtin_vectorized_function): Add cast to enum type.
	* config/i386/i386.md (truncdfsf2): Change slot to enum
	ix86_stack_slot.
	(truncxf<mode>2, isinf<mode>2): Likewise.
	* config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
	enum type.
	* config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
	(spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
	(insert_bundle_state): Change 1 to INSERT in function call.
	(ia64_add_bundle_selector_before): Likewise.
	* config/ia64/ia64.md (cpu attr): Add cast to enum type.
	(save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
	(restore_stack_nonlocal): Likewise.
	* config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
	function call.
	* config/mips/mips.c (mips_binary_cost): Change 0 to SET in
	function call.
	(mips_rtx_costs): Likewise.
	(mips_override_options): Add casts to enum type.
	* config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
	in function call.
	* config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
	(store_reg, set_reg_plus_d): Likewise.
	(hppa_expand_prologue, hppa_profile_hook): Likewise.
	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
	cast to enum type.
	(altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
	function call.
	(emit_unlikely_jump): Use add_reg_note.
	(rs6000_emit_allocate_stack): Likewise.
	(rs6000_frame_related, rs6000_emit_prologue): Likewise.
	(output_toc): Change 1 to INSERT in function call.
	(output_profile_hook): Change 0 to LCT_NORMAL in function call.
	(rs6000_initialize_trampoline): Likewise.
	(rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
	function call.
	* config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
	(s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
	(s390_expand_setmem, s390_expand_cmpmem): Likewise.
	(save_gprs): Use add_reg_note.
	(s390_emit_prologue): Likewise.
	(s390_expand_builtin): Change 0 to EXPAND_NORMAL in function
	call.
	* config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
	(sparc_fold_builtin): Add cast to enum type.
	* config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
	enum insn_code.
	(spu_expand_prologue): Use add_reg_note.
	(expand_builtin_args): Change 0 to EXPAND_NORMAL in function
	call.

	* c-parser.c (c_parser_attributes): Change VEC back to tree list.
	(c_parser_postfix_expression_after_primary): Get VEC for list of
	arguments.  Get original types of arguments.  Call
	build_function_call_vec.
	(cached_expr_list_1, cached_expr_list_2): New static variables.
	(c_parser_expr_list): Change return type to VEC *.  Add
	p_orig_types parameter.  Change all callers.
	(c_parser_release_expr): New static function.
	(c_parser_vec_to_tree_list): New static function.
	* c-typeck.c (build_function_call): Rewrite to build a VEC and
	call build_function_call_vec.
	(build_function_call_vec): New function, based on old
	build_function_call.
	(convert_arguments): Remove nargs and argarray parameters.  Change
	values to a VEC.  Add origtypes parameter.
	(build_modify_expr): Add rhs_origtype parameter.  Change all
	callers.
	(convert_for_assignment): Add origtype parameter.  Change all
	callers.  If warn_cxx_compat, check for conversion to an enum
	type when calling a function.
	(store_init_value): Add origtype parameter.  Change all callers.
	(digest_init): Likewise.
	(struct init_node): Add origtype field.
	(add_pending_init): Add origtype parameter.  Change all callers.
	(output_init_element): Likewise.
	(output_pending_init_elements): Pass origtype from init_node to
	output_init_element.
	(process_init_elemnt): Pass origtype from c_expr to
	output_init_element.
	(c_finish_return): Add origtype parameter.  Change all callers.
	* c-common.c (sync_resolve_size): Change params to VEC *.  Change
	caller.
	(sync_resolve_params): Likewise.
	(sync_resolve_return): Change params to first_param.  Change
	caller.
	(resolve_overloaded_builtins): Change params to VEC *.  Change
	callers.   Save first parameter around call to
	build_function_call_vec.
	* c-decl.c (finish_decl): Add origtype parameter.  Change all
	callers.  Call build_function_call_vec rather than
	build_function_call for cleanup.
	* c-tree.h: Update declarations.
	* c-common.h: Update declarations.
	* stub-objc.c (objc_rewrite_function_call): Change parameter from
	params to first_param.
	* target.h (struct gcc_target): Change resolve_overloaded_builtin
	params parameter from tree to void *.
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Change arglist parameter to have type void *, and to be a pointer
	to a VEC.
	* config/rs6000/rs6000-protos.h
	(altivec_resolve_overloaded_builtin): Update declaration.
	* config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
	fnargs parameter to have type void *, and to be a pointer to a
	VEC.  Call build_function_call_vec instead of
	build_function_call.
	* config/spu/spu-protos.h (spu_expand_builtin): Update
	declaration.

gcc/cp/:
	* typeck.c (build_function_call_vec): New function.
	(cp_build_function_call): Only pass first parameter to
	objc_rewrite_function_call.
	(build_modify_expr): Add rhs_origtype parameter.  Change all
	callers.
	* decl.c (finish_decl): Add origtype parameter.  Change all
	callers.
	* semantics.c (finish_call_expr): Pass VEC to
	resolve_overloaded_builtin.

gcc/objc:
	* objc-act.c (objc_rewrite_function_call): Change parameter from
	params to first_param.  Change all callers.

gcc/testsuite:
	* gcc.dg/Wcxx-compat-3.c: New testcase.

From-SVN: r146451
2009-04-20 19:35:00 +00:00
Eric Botcazou
c2efda0dee trans.c (unchecked_conversion_lhs_nop): New predicate.
* gcc-interface/trans.c (unchecked_conversion_lhs_nop): New predicate.
	(gnat_to_gnu) <N_Unchecked_Type_Conversion>: Return the expression
	if the conversion is on the LHS of an assignment and a no-op.
	<all> Do not convert the result to the result type if the Parent
	node is such a conversion.

From-SVN: r146450
2009-04-20 19:30:55 +00:00
Ian Lance Taylor
a916d97fc0 cp-tree.h (base_access): Change typedef to int.
* cp-tree.h (base_access): Change typedef to int.
	* parser.c (cp_parser_omp_flush): Change 0 to OMP_CLAUSE_ERROR.
	(cp_parser_omp_threadprivate): Likewise.
	* pt.c (unify_pack_expansion): Add casts to enum type.

From-SVN: r146448
2009-04-20 17:45:15 +00:00
Eric Botcazou
77022fa873 ada-tree.h (DECL_HAS_REP_P): Delete.
* gcc-interface/ada-tree.h (DECL_HAS_REP_P): Delete.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Add support for extension
	of types with unknown discriminants.
	(substitute_in_type): Rewrite and restrict to formal substitutions.
	* gcc-interface/utils.c (create_field_decl): Do not set DECL_HAS_REP_P.
	(update_pointer_to): Update comment.

From-SVN: r146447
2009-04-20 17:41:33 +00:00
Ian Lance Taylor
d9d3eaab8c * verify-impl.c (verify_instructions_0): Add cast to enum type.
From-SVN: r146446
2009-04-20 17:38:23 +00:00
Ian Lance Taylor
8fa2df72bb module.c (import_iso_c_binding_module): Add casts to enum type.
* module.c (import_iso_c_binding_module): Add casts to enum type.
	* trans-intrinsic.c (gfc_conv_intrinsic_minmax): Change op to enum
	tree_code.
	(gfc_conv_intrinsic_anyall): Likewise.
	(gfc_conv_intrinsic_arith): Likewise.
	(gfc_conv_intrinsic_minmaxloc): Likewise.
	(gfc_conv_intrinsic_minmaxval): Likewise.
	(gfc_conv_intrinsic_bitop): Likewise.
	(gfc_conv_intrinsic_singlebitop): Likewise.
	(gfc_conv_intrinsic_strcmp): Likewise.

From-SVN: r146445
2009-04-20 17:37:49 +00:00
Joey Ye
6ff078d4f4 atom.md: Add bypasses with ix86_dep_by_shift_count.
2009-04-20  Joey Ye  <joey.ye@intel.com>
	    Xuepeng Guo <xuepeng.guo@intel.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.

	* config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
	(IX86_LEA_PRIORITY): Likewise.
	(distance_non_agu_define): New function.
	(distance_agu_use): Likewise.
	(ix86_lea_for_add_ok): Likewise.
	(ix86_dep_by_shift_count): Likewise.

	* config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
	should split for LEA.

	* config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
	function.
	(ix86_dep_by_shift_count): Likewise.

Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
Co-Authored-By: Xuepeng Guo <xuepeng.guo@intel.com>

From-SVN: r146443
2009-04-20 10:09:25 -07:00
Richard Guenther
87a5b4cc3c expr.c (handled_component_p): Move ...
2009-04-20  Richard Guenther  <rguenther@suse.de>

	* expr.c (handled_component_p): Move ...
	* tree.h (handled_component_p): ... here.
	* tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
	ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
	and REALPART_EXPR to be in one group.

From-SVN: r146427
2009-04-20 14:11:34 +00:00
Richard Guenther
438c239d76 basic-block.h (get_all_dominated_blocks): Declare.
2009-04-20  Richard Guenther  <rguenther@suse.de>

	* basic-block.h (get_all_dominated_blocks): Declare.
	* dominance.c (get_all_dominated_blocks): New function.
	* tree-cfg.c (get_all_dominated_blocks): Remove.
	(remove_edge_and_dominated_blocks): Adjust.
	* tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
	(tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
	instead of recursing.

From-SVN: r146425
2009-04-20 14:01:52 +00:00
Arnaud Charlet
e69614ada0 [multiple changes]
2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Use_One_Package): In an instance, if two
	potentially_use_visible and non-overloadable homonyms are available
	from  the actuals of distinct formal packages, retain the current one,
	which was visible in the generic, to prevent spurious visibility
	errors.
	(End_Use_Package): Restore use_visibility when needed.

2009-04-20  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi, vms_data.ads: Update doc.

From-SVN: r146424
2009-04-20 15:47:53 +02:00
Arnaud Charlet
32838704ec Make-lang.in: Update dependencies
2009-04-20  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies

	* gcc-interface/Makefile.in: Link run-time against winsock2 lib under
	Windows.

From-SVN: r146423
2009-04-20 15:45:37 +02:00
Arnaud Charlet
37951d8ec6 [multiple changes]
2009-04-20  Robert Dewar  <dewar@adacore.com>

	* checks.ads: Fix documentation of range check handling

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Use_One_Type): Use proper entity on warning message for
	a redundant use_type clause.

From-SVN: r146422
2009-04-20 15:32:11 +02:00
Arnaud Charlet
5d5832bc7e sem_ch6.adb (Analye_Subprogram_Declaration): Code reorganization, for better handling of null procedures.
2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analye_Subprogram_Declaration): Code reorganization,
	for better handling of null procedures.
	(Check_Overriding_Indicator): Do not emit a warning on a missing
	overriding indicator on an operator when the type of which the operator
	is a primitive is private.

From-SVN: r146421
2009-04-20 15:29:13 +02:00
Robert Dewar
af02a866e6 sem_attr.adb (Eval_Attribute, [...]): Catch more cases where this attribute can be evaluated at compile time.
2009-04-20  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb (Eval_Attribute, case Length): Catch more cases where
	this attribute can be evaluated at compile time.
	(Eval_Attribute, case Range_Length): Same improvement

	* sem_eval.ads, sem_eval.adb (Compile_Time_Compare): New procedure

From-SVN: r146420
2009-04-20 15:28:50 +02:00
Doug Kwan
fed5ae113c cgraph.h (cgraph_node_ptr): New type for vector functions.
* cgraph.h (cgraph_node_ptr): New type for vector functions.
	(struct cgraph_node_set_def): New type.
	(cgraph_node_set) New type. Also declare vector functions.
	(struct cgraph_node_set_element_def): New type.
	(cgraph_node_set_element): Ditto.
	(cgraph_node_set_iterator): New iterator type.
	(cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
	cgraph_node_set_remove, dump_cgraph_node_set,
	debug_cgraph_node_set): New prototypes.
	(csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
	cgraph_node_set_size): New inlines.
	* tree-pass.h (struct cgraph_node_set_def): New decl to avoid
	including cgraph.h.
	(struct ipa_opt_pass): Add struct cgraph_node_set_def
	argument to function 'write_summary'.
	* ipa.c: Include ggc.h.
	(hash_cgraph_node_set_element,
	eq_cgraph_node_set_element, cgraph_node_set_new,
	cgraph_node_set_add, cgraph_node_set_remove,
	cgraph_node_set_find, dump_cgraph_node_set,
	debug_cgraph_node_set): New functions.
	* Makefile.in (ipa.o): Add dependency on GGC_H.

From-SVN: r146418
2009-04-20 09:27:15 -04:00
Arnaud Charlet
97a8fb1624 [multiple changes]
2009-04-20  Bob Duff  <duff@adacore.com>

	* sem.adb, gnat1drv.adb, debug.adb: Use the -gnatd.W switch to control
	debugging output.

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb: Minor reformatting

	* gnatcmd.adb: Minor reformatting

From-SVN: r146417
2009-04-20 15:24:27 +02:00
Arnaud Charlet
7340e4326b [multiple changes]
2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_User_Defined_Binary_Op): If left operand is
	overloaded and one interpretation matches the context, label the
	operand with the type of first formal.

2009-04-20  Bob Duff  <duff@adacore.com>

	* debug.ads: Minor comment fix.

	* debug.adb: Minor comment fixes.

2009-04-20  Javier Miranda  <miranda@adacore.com>

	* rtsfind.ads (RE_Null_Id): New entity of package Ada.Exceptions

	* exp_ch6.adb (Expand_Inlined_Call): Undo previous patch.

	* exp_ch11.adb (Expand_N_Raise_Statement): When the raise stmt
	is expanded into a call to Raise_Exception, avoid passing the
	exception-name'identity in runtimes in which this argument
	is not used.

From-SVN: r146416
2009-04-20 15:18:56 +02:00
Arnaud Charlet
bf06d37fd3 [multiple changes]
2009-04-20  Jerome Lambourg  <lambourg@adacore.com>

	* impunit.adb: Add i-cil and i-cilobj packages, now needed by the
	generated bindings for cil.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): If the type has unknown
	discriminants, collect components from the Underlying_Record_View,
	which will be used in the expansion of the aggregate into assignments.

	* sem_ch3.adb: Do not label derived type with unknown discriminants as
	having a private declaration.

From-SVN: r146415
2009-04-20 15:14:40 +02:00
Arnaud Charlet
58a9d876fc [multiple changes]
2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.adb (Expand_Subtype_From_Expr): use the
	underlying_record_view when available, to create the proper constrained
	subtype for an object of a derived type with unknown discriminants.

2009-04-20  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.ad (Expand_Inlined_Call): Avoid generation of temporaries for
	formals that have pragma unreferenced.

From-SVN: r146414
2009-04-20 15:11:19 +02:00
Arnaud Charlet
e34ca162e7 [multiple changes]
2009-04-20  Pascal Obry  <obry@adacore.com>

	* a-direct.adb (To_Lower_If_Case_Insensitive): Removed.
	Remove all calls to To_Lower_If_Case_Insensitive to preserve
	the pathname original casing.

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* g-trasym.adb: Minor reformatting

	* s-os_lib.adb: Minor reformatting

	* sem.adb: Minor reformatting
	Minor code reorganization

	* sem_ch3.adb: Minor reformatting

	* sem_ch4.adb: Minor reformatting

	* sem_ch8.adb: Minor reformatting

	* sem_type.adb: Minor reformatting

From-SVN: r146412
2009-04-20 15:05:53 +02:00
Arnaud Charlet
ee9aa7b663 [multiple changes]
2009-04-20  Javier Miranda  <miranda@adacore.com>

	* sem_disp.adb (Find_Dispatching_Type): For subprograms internally
	generated by derivations of tagged types use the aliased subprogram a
	reference to locate their controlling type.

2009-04-20  Tristan Gingold  <gingold@adacore.com>

	* g-trasym.adb: Set size of result buffer before calling
	convert_address.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Valid_Candidate): When checking whether a prefixed call
	to a function returning an array can be interpreted as a call with
	defaulted parameters whose result is indexed, take into account the
	types of all the indices of the array result type.

2009-04-20  Pascal Obry  <obry@adacore.com>

	* a-direct.adb, s-os_lib.adb: Minor reformatting.

From-SVN: r146411
2009-04-20 14:59:51 +02:00
Arnaud Charlet
bddd6058a2 [multiple changes]
2009-04-20  Nicolas Roche  <roche@adacore.com>

	* sysdep.c (__gnat_localtime_tzoff): on Windows, manipulated times are
	unsigned long long. So compare local_time and utc_time before computing
	the difference.

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch3.adb (Build_Derived_Private_Type): Insert the declaration
	of the Underlying_Record_View before that of the derived type.

	* exp_ch3.adb (Expand_Record_Extension): Do not special-case types
	with unknown discriminants with regard to the parent subtype.

From-SVN: r146410
2009-04-20 14:54:27 +02:00
Ed Schonberg
a3c39f83ee sem_ch8.adb (Analyze_Object_Renaming): Proper checks on incorrect null exclusion qualifiers for object renaming...
2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Proper checks on incorrect
	null exclusion qualifiers for object renaming declarations.

From-SVN: r146409
2009-04-20 14:54:05 +02:00
Bob Duff
4f18d8607e sem.adb (Semantics, [...]): Include dependents of bodies that are not included.
2009-04-20  Bob Duff  <duff@adacore.com>

	* sem.adb (Semantics, Walk_Library_Items): Include dependents of bodies
	that are not included. This is necessary if the main unit is a generic
	instantiation.

	* gnat1drv.adb (Gnat1drv): Comment out the call to Check_Library_Items,
	because it doesn't work if -gnatn is used.

From-SVN: r146408
2009-04-20 14:42:34 +02:00
Hristian Kirtchev
451800a057 exp_ch3.adb (Make_Predefined_Primitive_Specs, [...]): Do not create the declarations and bodies of the primitive subprograms...
* exp_ch3.adb (Make_Predefined_Primitive_Specs,
        Predefined_Primitive_Bodies): Do not create the declarations and bodies
        of the primitive subprograms associated with dispatching select
        statements when the runtime is in configurable mode.

From-SVN: r146407
2009-04-20 14:35:50 +02:00
Arnaud Charlet
c206e8fd96 sem_ch3.adb, [...]: Minor reformatting
* sem_ch3.adb, sem_ch6.adb: Minor reformatting

        * adaint.c (__gnat_is_readable_file): Check for file existence
        when not using ACL (always the case on remote drives).

From-SVN: r146406
2009-04-20 14:34:24 +02:00
Arnaud Charlet
5987e59ca5 [multiple changes]
2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* rtsfind.adb (RTE, RTE_Record_Component): In
	Configurable_Run_Time_Mode, do not enable front-end inlining.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* g-socthi-vms.adb: Remove now unnecessary WITH clause on
	System.Address_To_Access_Conversions.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem.adb: Guard against ill-formed subunits.

2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-calfor.adb (Image): Subtract 0.5 from the sub second component only
	when it is positive.  This avoids a potential constraint error raised
	by the conversion to Natural.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* einfo.ads: Minor comment rewording

	* sem_aggr.adb: Minor comment rewording

	* sem_ch3.adb, sem_ch6.adb: Minor reformatting

2009-04-20  Pascal Obry  <obry@adacore.com>

	* adaint.c (__gnat_is_readable_file): Check for file existence
	when not using ACL (always the case on remote drives).

From-SVN: r146405
2009-04-20 14:30:25 +02:00
Ed Schonberg
3c19e9be43 sem_ch8,adb (Analyze_Object_Renaming): Reject ambiguous expressions in an object renaming declaration when...
2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8,adb (Analyze_Object_Renaming): Reject ambiguous expressions
	in an object renaming declaration when the expected type is an
	anonymous access type.

	* sem_type.adb (Disambiguate): Use anonymousness to resolve a potential
	ambiguity when one interpretation is an anonymous access type and the
	other is a named access type, and the context itself is anonymous

From-SVN: r146404
2009-04-20 14:29:39 +02:00
Gary Dismukes
5e9579b495 exp_ch5.adb (Expand_Assign_Array): For the case where the assignment involves a target that has a specified address...
2009-04-20  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch5.adb (Expand_Assign_Array): For the case where the assignment
	involves a target that has a specified address, don't set Forward_OK
	and Backward_OK to False if the rhs is an aggregate, since overlap
	can't occur.

From-SVN: r146403
2009-04-20 14:29:26 +02:00
Bob Duff
1414183ded output.adb (Flush_Buffer): Do not indent blank lines.
2009-04-20  Bob Duff  <duff@adacore.com>

	* output.adb (Flush_Buffer): Do not indent blank lines.
	(Ignore_Output): New procedure for output suppression.

From-SVN: r146402
2009-04-20 14:29:12 +02:00
Arnaud Charlet
8737a29a32 [multiple changes]
2009-04-20  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads: Minor comment fixes

	* exp_disp.adb: Minor reformatting

	* gnat1drv.adb: Minor reformatting

	* output.adb: Minor reformatting

	* s-vxwext-kernel.ads: Minor reformatting

	* sem.ads: Minor reformatting

	* sem.adb: Minor reformatting

	* sem_elim.adb: Minor reformatting

	* uname.ads: Minor reformatting

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* init.c (__gnat_adjust_context_for_raise): On x86{-64}/Linux, add
	a small dope of 4 words to the adjustment to the stack pointer.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* xoscons.adb: generate C header s-oscons.h in
	addition to s-oscons.ads.

	* socket.c: On VMS, use s-oscons.h.

	* sem_ch3.adb: Minor reformatting

	* exp_ch9.adb: Minor reformatting

From-SVN: r146401
2009-04-20 14:17:42 +02:00
Eric Botcazou
85087bcb0d trans.c (check_for_eliminated_entity): Remove.
* gcc-interface/trans.c (check_for_eliminated_entity): Remove.
	(Attribute_to_gnu): Do not call check_for_eliminated_entity.
	(call_to_gnu): Likewise.

From-SVN: r146400
2009-04-20 11:34:59 +00:00
Ira Rosen
c4551b28a7 re PR tree-optimization/39675 (ICE in vect_get_vec_def_for_operand, at tree-vect-transform.c:1999)
PR tree-optimization/39675
	* tree-vect-loop.c (vect_transform_loop): Remove currently redundant 
	check of the return code of vect_schedule_slp. Check that stmt_vec_info
	still exists for the statement, before checking its vectorization type.

From-SVN: r146399
2009-04-20 11:26:18 +00:00
Eric Botcazou
ecc3905a2d trans.c (gigi): Declare the name of the compilation unit as the first global name at the very...
* gcc-interface/trans.c (gigi): Declare the name of the compilation
	unit as the first global name at the very beginning.

From-SVN: r146398
2009-04-20 11:01:49 +00:00
Vasilis Liaskovitis
34d01e1d17 re PR fortran/35423 (Implement OpenMP workshare)
PR fortran/35423
	* trans.h (OMPWS_WORKSHARE_FLAG, OMPWS_CURR_SINGLEUNIT,
	OMPWS_SCALARIZER_WS, OMPWS_NOWAIT): Define.
	(ompws_flags): New extern decl.
	* trans-array.c (gfc_trans_scalarized_loop_end): Build OMP_FOR
	for the outer dimension if ompws_flags allow it.
	* trans.c (gfc_generate_code): Clear ompws_flags.
	* trans-expr.c (gfc_trans_assignment_1): Allow worksharing
	array assignments inside of !$omp workshare.
	* trans-stmt.c (gfc_trans_where_3): Similarly for where statements
	and constructs.
	* trans-openmp.c (ompws_flags): New variable.
	(gfc_trans_omp_workshare): Rewritten.

	* testsuite/libgomp.fortran/workshare2.f90: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r146397
2009-04-20 12:59:59 +02:00
Thomas Quinot
2907036db7 socket.c, [...] (__gnat_inet_pton): Needs to be enabled for HP-UX as well...
2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.ads,
	s-oscons-tmplt.c, gsocket.h, g-socthi-mingw.ads, g-socthi.ads,
	g-sothco.ads (__gnat_inet_pton): Needs to be enabled for HP-UX as well,
	since HP-UX supports neither inet_aton nor inet_pton (altough the
	latter is part of the Single UNIX Specification!).
	So reorganize code, and share C implementation based on inet_addr(3)
	with VMS (instead of having a VMS specific Ada implementation in
	g-socthi-vms.adb).

From-SVN: r146396
2009-04-20 12:45:28 +02:00
Arnaud Charlet
d50633515b [multiple changes]
2009-04-20  Gary Dismukes  <dismukes@adacore.com>

	* osint-c.ads, osint-c.adb (Get_Object_Output_File_Name): New function
	to return the object file name saved by Set_Object_Output_File_Name.

2009-04-20  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.adb (Initialize_Option_Scan): Fix initialization of parsers
	for the standard command line, when argc has been modified since the
	start of the application.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* socket.c (__gnat_inet_pton, Windows case): Adjust return value.
	WSAStringToAddress returns 0 for success and SOCKET_ERROR for failure.

From-SVN: r146395
2009-04-20 12:41:25 +02:00
Arnaud Charlet
51c2e647b2 Update comment.
From-SVN: r146394
2009-04-20 12:39:48 +02:00
Arnaud Charlet
3edf2f76e4 [multiple changes]
2009-04-20  Bob Duff  <duff@adacore.com>

	* gnat1drv.adb (Gnat1drv): Put call to Check_Library_Items inside
	pragma Debug.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Build_Protected_Sub_Specification): Mark generated
	subprogram as Eliminated when source operation is.
	(Expand_N_Protected_Type_Declaration): Generate protected and
	unprotected specs for the internal operations, even if the source
	operation is eliminated.

2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Make_Predefined_Primitive_Specs,
	Predefined_Primitive_Bodies): Do not create the declarations and bodies
	of the primitive subprograms associated with dispatching select
	statements when the runtime is in configurable mode.

2009-04-20  Ed Falis  <falis@adacore.com>

	* s-vxwext-kernel.ads (tickGet): Use tick64Get.

From-SVN: r146393
2009-04-20 12:35:28 +02:00
Arnaud Charlet
4fd1e8b001 [multiple changes]
2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* s-oscons-tmplt.c: Add support for generating a dummy version of
	s-oscons.ads providing all possible constants.

	* g-socthi-mingw.ads: Fix calling convention for __gnat_inet_pton.

	* socket.c (__gnat_inet_pton): On Windows make sure we always use the
	ANSI version (not the UNICODE version) of WSAStringToAddress.

2009-04-20  Pascal Obry  <obry@adacore.com>

	* adaint.c (__gnat_set_OWNER_ACL): properly free memory
	allocated for the security descriptor and make sure all
	handles are closed before leaving this procedure.

From-SVN: r146392
2009-04-20 12:23:29 +02:00
Arnaud Charlet
9013065bc0 [multiple changes]
2009-04-20  Javier Miranda  <miranda@adacore.com>

	* einfo.ads, einfo.adb (Is_Underlying_Record_View): New subprogram
	(Set_Is_Underlying_Record_View): New subprogram

	* sem_aggr.adb (Discr_Present, Resolve_Record_Aggregate): In case of
	private types with unknown discriminants use the underlying record view
	if available.

	* sem_ch3.adb (Build_Derived_Private_Type): Enable construction of the
	underlying record view in the full view of private types whose parent
	has unknown discriminants.
	(Build_Derived_Record_Type): Avoid generating the class-wide entity
	associated with an underlying record view.
	(Derived_Type_Declaration): Avoid deriving parent primitives in
	underlying record views.

	* sem_ch6.adb (Check_Return_Subtype_Indication): Add support for
	records with unknown discriminants.

	* sem_type.adb (Covers): Handle underlying record views.
	(Is_Ancestor): Add support for underlying record views.

	* exp_attr.adb (Expand_Attribute): Expand attribute 'size into a
	dispatching call if the type of the target object is tagged and has
	unknown discriminants.

	* exp_aggr.adb (Resolve_Record_Aggregate): Add support for records with
	unknown discriminants.

	* exp_disp.adb (Build_Dispatch_Tables): Avoid generating dispatch
	tables for internally built underlying record views.

	* sprint.adb (sprint_node_actual): Improve output of aggregates with an
	empty list of component associations.

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* sem_ch10.adb: Minor reformatting

	* socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.ads,
	g-socthi-mingw.ads, g-socthi.ads, g-socket.adb
	(GNAT.Sockets.Inet_Addr): Do not use non-portable inet_aton, instead use
	standard inet_pton API (and emulate it on platforms that do not
	support it).
	(GNAT.Sockets.Thin.Inet_Pton, VMS case): Implement in terms of
	DECC$INET_ADDR, imported in Ada.
	(GNAT.Sockets.Thin.Inet_Pton, VxWorks and Windows cases): Use C
	implementation provided by GNAT runtime.
	(__gnat_inet_pton): C implementation of inet_pton(3) for VxWorks and
	Windows.

From-SVN: r146391
2009-04-20 12:18:48 +02:00
Arnaud Charlet
7289b80c09 [multiple changes]
2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi: Add documentation for -fno-ivopts.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_Context): Do not analyze a unit in a
	with_clause if it is the main unit.

From-SVN: r146390
2009-04-20 12:07:30 +02:00
Arnaud Charlet
c09a557e3a [multiple changes]
2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* sem_type.adb, ali.adb, erroutc.adb: Minor code reorganization
	(no behaviour change): Use Append instead of Increment_Last followed
	by assignment.

2009-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generate the
	declarations of all primitives associated with dispatching asynchronous,
	conditional and timed selects when dispaching calls are forbidden and
	select statements are not allowed (such as in Ravenscar).
	(Predefined_Primitive_Bodies): Ditto for bodies.

	* exp_disp.ad (Make_DT): Do not create and populate the
	Select_Specific_Data of the dispatch table when dispatching calls are
	forbidden and select statements are not allowed (such as in Ravenscar).

2009-04-20  Robert Dewar  <dewar@adacore.com>

	* a-tifiio.adb: Minor reformatting

2009-04-20  Thomas Quinot  <quinot@adacore.com>

	* g-socthi-vms.adb, g-socket.adb, g-socket.ads: inet_aton(3), unlike
	other C library functions, report *failure* with a zero status, and
	success with a non-zero status.

2009-04-20  Bob Duff  <duff@adacore.com>

	* sem.ads, sem.adb (Walk_Library_Items): New generic procedure.
	(Semantics): After analyzing each unit, Append it to the
	Comp_Unit_List, if appropriate.

	* gnat1drv.adb (Check_Library_Items): New procedure for debugging
	purposes.
	(Gnat1drv): Correct comment regarding Back_End_Mode.

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi: Add documentation for -fno-inline-small-functions.

From-SVN: r146389
2009-04-20 12:04:20 +02:00