Commit Graph

92924 Commits

Author SHA1 Message Date
Martin Jambor
7156c8abaf tree-switch-conversion.c (build_constructors): Split a long line.
2009-04-21  Martin Jambor  <mjambor@suse.cz>

	* tree-switch-conversion.c (build_constructors): Split a long line.
	(constructor_contains_same_values_p): New function.
	(build_one_array): Create assigns of constants if possible, do not call
	mark_sym_for_renaming, call update_stmt.
	(build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
	make_rename_temp.  Do not call mark_symbols_for_renaming, call
	update_stmt.
	(gen_def_assigns): Do not call mark_symbols_for_renaming or
	find_new_referenced_vars, call update_stmt.
	(gen_inbound_check): Use create_tmp_var and create ssa names manually
	instead of calling make_rename_temp.  Do not call
	find_new_referenced_vars or mark_symbols_for_renaming, call
	update_stmt.

	* testsuite/gcc.dg/tree-ssa/cswtch-2.c: New test.

From-SVN: r146517
2009-04-21 13:55:41 +02:00
Paolo Carlini
ed2807f4cd re PR libstdc++/39835 (Bootstrap failure: libstdc++-v3/include/bits/random.h:3630: error: expected â,â or â...â before numeric constant)
2009-04-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/39835
	* include/bits/random.h: Avoid the badname __alpha (and, for
	consistency, __beta too).
	* include/bits/random.tcc: Likewise.

From-SVN: r146516
2009-04-21 11:42:51 +00:00
Richard Guenther
2970ccb3bb re PR middle-end/39827 (ICE (segfault) when compiling gcc/varasm.c (in notice_global_symbol))
2009-04-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39827
	* tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME
	is in range.
	(tree_ssa_phiprop): Pass the correct array size.

From-SVN: r146515
2009-04-21 09:58:38 +00:00
Uros Bizjak
47f402d18f alpha.md (tune): Add cast to enum attr_tune.
* config/alpha/alpha.md (tune): Add cast to enum attr_tune.

From-SVN: r146484
2009-04-21 10:44:25 +02:00
Manuel López-Ibáñez
1e4ae551dd re PR c/16202 (The -Wsequence-point warning misses many important instances)
2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 16202
	* c-typeck.c (lvalue_p): Move declaration ...
	* c-common.h (lvalue_p): ... to here.
	* c-common.c (candidate_equal_p): New.
	(add_tlist): Use it.
	(merge_tlist): Use it.
	(warn_for_collisions_1): Likewise.
	(warning_candidate_p): Accept more candidates.
	(verify_tree): A warning candidate can be an expression. Use
	candidate_equal_p.
cp/
	* tree.c (lvalue_p_1): Use const_tree.
	Use CONST_CAST_TREE to avoid warning.
	(lvalue_p): Returns bool, receives const_tree.
testsuite/
	* gcc.dg/sequence-pt-1.c: Remove XFAILs.
	* gcc.dg/sequence-pt-2.c: New.
	* gcc.dg/sequence-pt-3.c: New.
	* g++.dg/warn/sequence-pt-1.C: Remove XFAILs.
	* g++.dg/warn/sequence-pt-2.c: New.
	* g++.dg/warn/sequence-pt-3.c: New.

From-SVN: r146472
2009-04-21 07:47:13 +00:00
Jakub Jelinek
6e9a9f9fed * gcc.dg/torture/pr39678.c (struct X): Make c field signed char.
From-SVN: r146470
2009-04-21 09:39:17 +02:00
Eric Botcazou
a962b0a184 decl.c (gnat_to_gnu_entity): Do not set force_global for imported subprograms.
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set force_global
	for imported subprograms.

From-SVN: r146469
2009-04-21 07:27:26 +00:00
Eric Botcazou
2f283818fc decl.c (gnat_to_gnu_entity): Do not make constant objects covered by 13.3(19) volatile.
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not make
	constant objects covered by 13.3(19) volatile.

From-SVN: r146468
2009-04-21 07:10:01 +00:00
Eric Botcazou
ac53d5f254 utils.c (create_type_decl): Do not pass declarations of dummy fat pointer types to the debug back-end.
* gcc-interface/utils.c (create_type_decl): Do not pass declarations
	of dummy fat pointer types to the debug back-end.

From-SVN: r146467
2009-04-21 07:00:44 +00:00
GCC Administrator
59356222e0 Daily bump.
From-SVN: r146466
2009-04-21 00:16:54 +00:00
Ben Elliston
244609a618 re PR target/5267 (invoke.texi "RS/6000 and PowerPC Options" list needs cleanup)
PR target/5267
	* doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
	for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
	options.  Remove -mcall-solaris documentation.

From-SVN: r146463
2009-04-21 09:55:53 +10:00
Andrew Pinski
f28a61ab11 Fix misspelling of process_init_element.
From-SVN: r146462
2009-04-20 16:13:17 -07:00
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