Commit Graph

89053 Commits

Author SHA1 Message Date
Richard Sandiford 08d0963a0e configure.ac (mips*-*-*linux*, [...]): Use mt-mips-gnu.
* configure.ac (mips*-*-*linux*, mips*-*-gnu*): Use mt-mips-gnu.
	* configure: Regenerate.

config/
	* mt-mips16-compat: New file, taken from mt-mips-elfoabi.
	* mt-mips-elfoabi: Include mt-mips16-compat.
	* mt-mips-gnu: New file.

gcc/
	* config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
	mips/t-libgcc-mips16 to tmake_file.
	* config/mips/mips-protos.h (mips_call_type): New enum.
	(mips_pic_base_register, mips_got_load): Declare.
	(mips_restore_gp): Take an rtx argument.
	(mips_use_pic_fn_addr_reg_p): Declare.
	(mips_expand_call): Replace the sibcall_p argument with
	a mips_call_type argument.  Add a lazy_p parameter.
	(mips_split_call): Declare.
	* config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
	(MIPS16_PIC_TEMP): Likewise.
	(reg_class): Delete M16_NA_REGS.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
	(SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
	(mips_split_hi_p): Declare.
	* config/mips/mips.c (mips_split_hi_p): New array.
	(mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
	(mips_got_symbol_type_p): New function.
	(mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
	(mips16_stub_function_p): New function.
	(mips16_local_function_p): Likewise.
	(mips_use_pic_fn_addr_reg_p): Likewise.
	(mips_cannot_force_const_mem): Return false for HIGHs.
	Extend CONST_INT and symbolic handling to MIPS16, using
	mips_symbol_insns to check that the base symbol type is a
	legitimate constant.  Reject GOT-based constants if
	TARGET_MIPS16_PCREL_LOADS.
	(mips_const_insns): Check targetm.cannot_force_const_mem when
	decomposing a symbolic base and a large offset.
	(mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
	When calling a function that needs $25 from MIPS16 code,
	move the target address into $25 separately and add a USE
	to the call insn.
	(mips16_gp_pseudo_reg): Insert the initializer immediately
	before the first real insn.
	(mips_pic_base_register, mips_got_load): New functions.
	(mips_split_symbol): Generalize the name of the LO_SUM_OUT
	parameter to LOW_OUT.  Say that it can be any valid SET_SRC
	when splitting a load-address operation.  Split SYMBOL_GOT_DISP
	constants and highs of SYMBOL_GOT_PAGE_OFST constants.
	(mips_call_tls_get_addr): Update the call to mips_expand_call,
	also passing NULL_RTX rather than const0_rtx as the aux argument.
	(mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
	instead of TARGET_EXPLICIT_RELOCS.
	(mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
	(mips_load_call_address): Replace the sibcall_p argument with
	a mips_call_type argument.  Use mips_got_load.
	(mips16_local_alias): New structure.
	(mips16_local_aliases): New variable.
	(mips16_local_aliases_hash): New function.
	(mips16_local_aliases_eq): Likewise.
	(mips16_local_alias): Likewise.
	(mips16_stub_function): Likewise.
	(mips16_build_function_stub): Create a local alias for the target
	function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
	.cpload directive and an R_MIPS_NONE relocation for the target
	function, then load the alias rather than the function itself.
	Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
	(mips16_copy_fpr_return_value): Use mips16_stub_function and
	mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
	(mips16_build_call_stub): Replace the FN parameter with an
	FN_PTR parameter.  Force the address into a register if it
	isn't a call_insn_operand; don't rely on the caller to do this.
	If a call to a locally-defined and locally-binding MIPS16
	function must be made indirectly, redirect the call to the
	function's local alias.  Use mips16_stub_function_p,
	mips16_stub_function, mips_expand_call and use_reg.
	Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
	Use explicit %hi and %lo accesses where possible.
	Use MIPS_CALL to generate the correct code form of a
	jal instruction.  Add clobbers of $18 instead of uses.
	Update the call to mips_emit_call_insn.
	(mips_expand_call): Replace the SIBCALL_P argument with a
	mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
	Take a LAZY_P parameter.  Call mips16_build_call_stub first,
	allowing it to modify the call address.  Update the calls to
	mips_load_call_address and mips_emit_call_insn.
	(mips_split_call): New function.
	(mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
	!TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
	SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
	(mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
	(mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
	if TARGET_MIPS16.
	(mips_cprestore_slot): New function.
	(mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
	and use mips_cprestore_slot.
	(mips_output_function_prologue): Handle TARGET_MIPS16 for
	LOADGP_OLDABI.
	(mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
	then use a copygp_mips16 instruction to set up $28.
	(mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
	(mips16_lay_out_constants): Call split_all_insns_noflow.
	(mips_reorg_process_insns): Explicitly set all_noreorder_p to
	false if TARGET_MIPS16.
	(mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
	(mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
	mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
	(mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
	MIPS16 code.  Allow MIPS16 o32 PIC.
	(mips_override_options): Allow MIPS16 o32 PIC.
	* config/mips/mips.md: Lower CONST_GP_P moves into register moves
	after reload if TARGET_USE_GOT.
	(UNSPEC_COPYGP): New constant.
	(length): Use a default length of 8 for MIPS16 GOT loads.
	(*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
	(*got_page<mode>): Check mips_split_hi_p.
	(*got_disp<mode>, *got_page<mode>): Use mips_got_load.
	(unspec_got<mode>, unspec_call<mode>): New expanders.
	(load_got<mode>, load_call<mode>): Remove the length attributes.
	Use a got attribute instead of a type attribute.
	(copygp_mips16): New insn.
	(restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
	(load_call<mode>): Use a "d" constraint instead of an "r" constraint.
	(sibcall, sibcall_value, call, call_value): Update the calls
	to mips_expand_call.
	(call_internal, call_value_internal): Use mips_split_call.
	(call_value_multiple_internal): Likewise.
	(call_split): Move after call_internal (the insn it is split from).
	(call_internal_direct, call_value_internal_direct): Turn into
	define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
	(call_direct_split, call_value_direct_split): New patterns.
	* config/mips/constraints.md (c): Handle TARGET_MIPS16 first
	and use M16_REGS instead of M16_NA_REGS.
	* config/mips/predicates.md (const_call_insn_operand): Replace
	the TARGET_ABSOLUTE_ABICALLS-based check with a more general
	mips_use_pic_fn_addr_reg_p check.
	(move_operand): Reject HIGHs if mips_split_hi_p.
	* config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
	(__mips16_floatunsisf): Inline __mips16_floatsisf.
	(CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
	* config/mips/libgcc-mips16.ver: New file.
	* config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
	$(srcdir)/config/mips/libgcc-mips16.ver.

gcc/testsuite/
	* lib/target-supports.exp (check_profiling_available): Return false
	for -p and -pg on MIPS16 targets.

From-SVN: r138912
2008-08-09 19:08:15 +00:00
Richard Sandiford 7462a71535 mips.c (mips_unspec_address_offset): Move earlier in file.
gcc/
	* config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
	(mips_unspec_address, mips_unspec_offset_high): Likewise.
	(mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
	(mips16_cfun_returns_in_fpr_p): Likewise.

From-SVN: r138911
2008-08-09 18:21:50 +00:00
Richard Sandiford 579725054c mips.h (MASK_RETURN_ADDR): Expand commentary.
gcc/
	* config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
	* config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
	rather than 4 to PC.

From-SVN: r138910
2008-08-09 18:19:32 +00:00
Richard Sandiford e538e028ec mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
gcc/
	* config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
	(FUNCTION_PROFILER): Save the static chain pointer into $2
	beforehand and restore it aftewards.
	(TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
	address directly into $25 and call the function through $25;
	do not clobber $3.  Pad the DImode version to cover the space
	left by the deleted $25 <- $3 move.
	(TRAMPOLINE_SIZE): Adjust the size of the SImode version after
	the removal of the $25 <- $3 move.
	(INITIALIZE_TRAMPOLINE): Update offsets accordingly.
	* config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.

From-SVN: r138909
2008-08-09 18:11:19 +00:00
Richard Sandiford b2b6160771 mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
gcc/
2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
	* config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
	(ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
	* config/mips/mips.c (mips_start_function_definition): New function.
	(mips_end_function_definition): Likewise.
	(mips_output_function_prologue): Use mips_start_function_definition.
	(mips_output_function_epilogue): Use mips_end_function_definition.
	(build_mips16_function_stub): Use mips_start_function_definition
	and mips_end_function_definition.
	(build_mips16_call_stub): Likewise.

Co-Authored-By: Daniel Jacobowitz <dan@codesourcery.com>

From-SVN: r138908
2008-08-09 18:10:18 +00:00
Richard Guenther 7c9577becf gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
2008-08-09  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
	* gimple.h (gimple_call_fn): Adjust comment.
	(gimple_call_set_fndecl): New function.
	(gimple_call_fndecl): Adjust for GIMPLE_CALL no
	longer having bare FUNCTION_DECL operand.
	(gimple_call_return_type): Likewise.
	* tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.

	* value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
	(gimple_mod_pow2): Likewise.
	(gimple_mod_subtract): Likewise.
	(gimple_ic): Likewise.
	(gimple_stringop_fixed_value): Likewise.
	(gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
	longer having bare FUNCTION_DECL operand.
	* ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
	* omp-low.c (optimize_omp_library_calls): Likewise.
	* cgraphunit.c (update_call_expr): Likewise.
	* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
	(execute_convert_to_rsqrt): Likewise.
	* cfgexpand.c (gimple_to_tree): Simplify.
	(release_stmt_tree): Fix for GIMPLE_CALL no longer having
	bare FUNCTION_DECL operand.
	* tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
	(convert_gimple_call): Use gimple_call_fndecl.
	* c-common.c (c_warn_unused_result): Likewise.

	* gcc.dg/tree-ssa/inline-2.c: New testcase.

From-SVN: r138907
2008-08-09 17:28:39 +00:00
Paolo Carlini 6cccc20014 Revert fix for libstdc++/35637, thanks to other/36901.
2008-08-09  Paolo Carlini  <paolo.carlini@oracle.com>

	Revert fix for libstdc++/35637, thanks to other/36901.
	* include/tr1_impl/type_traits (__is_function_helper): New, uses
	variadic templates.
	(is_function): Forward to the latter.
	(__in_array): Remove.

From-SVN: r138906
2008-08-09 15:58:52 +00:00
Paolo Carlini a031f958a6 ctype_members.cc: Include <cstdio>.
2008-08-09  Paolo Carlini  <paolo.carlini@oracle.com>

	* config/locale/darwin/ctype_members.cc: Include <cstdio>.

From-SVN: r138905
2008-08-09 15:02:30 +00:00
Manuel López-Ibáñez ca085fd7b7 re PR c++/17880 (-Wsequence-point doesn't warn inside if, while, do conditions, for beg/cond/end expressions etc.)
2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/17880
	* c-typeck.c (digest_init): Call verify_sequence_points from here.
	(c_finish_return): Likewise.
	(c_start_case): Likewise.
	* c-common.c (warn_for_collisions_1): Use explicit location in
	warning.
	* c-parser.c (c_parser_condition): New. Call
	verify_sequence_points.
	(c_parser_paren_condition): Call c_parser_condition.
	(c_parser_for_statement): Call c_parser_condition.
testsuite/
	* gcc.dg/sequence-pt-pr17880.c: New.

From-SVN: r138904
2008-08-09 12:37:32 +00:00
Manuel López-Ibáñez 98e48a7f11 misc.c (gnat_handle_option): Replace set_Wunused by warn_unused.
2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

ada/
	* gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
	by warn_unused.

From-SVN: r138903
2008-08-09 09:37:57 +00:00
Manuel López-Ibáñez b13e752fd5 re PR c++/12242 (g++ should warn about out-of-range int->enum conversions)
2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/12242
cp/
	* cvt.c (ocp_convert): Warn for out-of-range conversions to enum.

testsuite/
	* g++.dg/warn/pr12242.C: New.

From-SVN: r138898
2008-08-09 00:30:41 +00:00
GCC Administrator 97679e5f65 Daily bump.
From-SVN: r138896
2008-08-09 00:16:37 +00:00
Manuel López-Ibáñez 71205d170c re PR other/36901 (pedwarn() + -pedantic-errors + -w (inhibit_warnings) should not emit errors)
2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 36901
	* diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.  
	* diagnostic.c (pedantic_warning_kind, permissive_error_kind):
	Moved from diagnostic.h
	(diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
	DK_PERMERROR.
	(emit_diagnostic): New.
	(warning0, pedwarn0): Delete.
	(warning, warning_at, pedwarn, permerror): Return bool.  
	* diagnostic.h (pedantic_warning_kind, permissive_error_kind):
	Moved to diagnostic.c.
	(struct diagnostic_context): Use correct type for
	classify_diagnostic.
	(diagnostic_report_diagnostic): Update declaration.
	(emit_diagnostic): Declare.
	* errors.c (warning): Return bool.  
	* errors.h (warning): Update declaration.
	* toplev.h (warning0, pedwarn0): Delete.
	(warning, warning_at, pedwarn, permerror): Return bool.
	* c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
	* c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
	inform. Update all calls.
	(diagnose_mismatched_decls): Check return value of warning/pedwarn
	before giving informative note.
	(implicit_decl_warning): Likewise.  
	* c-typeck.c (build_function_call): Likewise.  
	* tree-sssa.c (warn_uninit): Likewise.  
	* builtins.c (gimplify_va_arg_expr): Likewise.
fortran/
	* f95-lang.c (gfc_mark_addressable): Use "pedwarn (0," instead of
	'pedwarn0'.
cp/
	* cp-tree.h (struct diagnostic_context, struct diagnostic_info):
	Delete forward declarations. Check that toplev.h has not been
	included before this file. Include toplev.h and diagnostic.h.
	* error.c (cp_cpp_error): Use DK_PEDWARN.
	(cxx_incomplete_type_diagnostic): Update declaration.
	(cxx_incomplete_type_error): Use DK_ERROR.
	* typeck2.c (cxx_incomplete_type_diagnostic): Take a diagnostic_t
	as argument. Use emit_diagnostic.
	(cxx_incomplete_type_error): Use DK_ERROR.
	(add_exception_specifier): Use diagnostic_t instead of custom
	codes.  
	* typeck.c (complete_type_or_else): Update call to
	cxx_incomplete_type_diagnostic.
	* init.c (build_delete): Likewise.  
	* call.c (diagnostic_fn_t): Remove unused typedef.
	(build_temp): Pass a pointer to diagnostic_t.
	(convert_like_real): Use emit_diagnostic.
	(joust): Check return value of warning before giving informative
	note.  
	* friend.c (do_friend): Check return value of warning
	before giving informative note.
	* parser.c (cp_parser_template_id): Likewise.

testsuite/
	* gcc.dg/pr36901-1.c: New.
	* gcc.dg/pr36901-3.c: New.
	* gcc.dg/pr36901-2.c: New.
	* gcc.dg/pr36901-4.c: New.
	* gcc.dg/pr36901-system.h: New.
	* gcc.dg/pr36901.h: New.
	* gcc.target/powerpc/altivec-macros.c: Update.
	* gcc.target/i386/regparm.c: Update.
	* gcc.dg/funcdef-var-1.c: Update.
	* gcc.dg/parm-mismatch-1.c: Update.
	* gcc.dg/attr-noinline.c: Update.
	* gcc.dg/wtr-static-1.c: Update.
	* gcc.dg/redecl-11.c: Update.
	* gcc.dg/pr27953.c: Update.
	* gcc.dg/proto-1.c: Update.
	* gcc.dg/decl-3.c: Update.
	* gcc.dg/redecl-13.c: Update.
	* gcc.dg/pr15360-1.c: Update.
	* gcc.dg/redecl-15.c: Update.
	* gcc.dg/enum-compat-1.c: Update.
	* gcc.dg/dll-3.c: Update.
	* gcc.dg/array-5.c: Update.
	* gcc.dg/Wredundant-decls-2.c: Update.
	* gcc.dg/inline4.c: Update.
	* gcc.dg/redecl-2.c: Update.
	* gcc.dg/inline-14.c: Update.
	* gcc.dg/tls/diag-3.c: Update.
	* gcc.dg/funcdef-var-2.c: Update.
	* gcc.dg/20041213-1.c: Update.
	* gcc.dg/old-style-then-proto-1.c: Update.
	* gcc.dg/decl-2.c: Update.
	* gcc.dg/redecl-12.c: Update.
	* gcc.dg/decl-4.c: Update.
	* gcc.dg/Wshadow-1.c: Update.
	* gcc.dg/transparent-union-2.c: Update.
	* gcc.dg/visibility-7.c: Update.
	* gcc.dg/dll-2.c: Update.
	* gcc.dg/redecl-16.c: Update.
	* gcc.dg/inline1.c: Update.
	* gcc.dg/decl-8.c: Update.
	* gcc.dg/nested-redef-1.c: Update.
	* gcc.dg/inline3.c: Update.
	* gcc.dg/redecl-1.c: Update.
	* gcc.dg/inline5.c: Update.
	* gcc.dg/pr35899.c: Update.
	* gcc.dg/noncompile/label-lineno-1.c: Update.
	* gcc.dg/noncompile/label-1.c: Update.
	* gcc.dg/noncompile/20020220-1.c: Update.
	* gcc.dg/noncompile/redecl-1.c: Update.
	* gcc.dg/redecl-5.c: Update.
	* gcc.dg/qual-return-3.c: Update.
	* gcc.dg/label-decl-4.c: Update.

From-SVN: r138893
2008-08-08 23:57:19 +00:00
Manuel López-Ibáñez c73d5dd948 re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)
2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 7651
	* doc/invoke.texi (-Wextra): Move warning from here...
	(-Wuninitialized): ... to here.
cp/
	* class.c (check_bases_and_members): Warn with -Wuninitialized
	instead of -Wextra.
testsuite/
	* g++.dg/warn/Wuninitializable-member.C: New.
	* g++.dg/warn/Wuninitializable-member-no.C: New.

From-SVN: r138892
2008-08-08 23:32:23 +00:00
Paul Thomas 63a3341a9d re PR fortran/37011 (F2003, type extension: multiple inheritence not rejected)
2008-08-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37011
	* symbol.c (gfc_add_extension): New function.
	* decl.c (gfc_get_type_attr_spec): Call it.
	(gfc_match_derived_decl): Set symbol extension attribute from
	attr.extension.
	* gfortran.h : Add prototype for gfc_add_extension.

From-SVN: r138891
2008-08-08 23:22:51 +00:00
Manuel López-Ibáñez e73f7547c5 re PR c/28875 ("-Wextra -Wno-unused-parameter -Wall" doesn't work as expected)
2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 28875
	* flags.h (set_Wunused): Delete
	* toplev.c (process_options): Handle Wunused flags here.
	* opts.c (maybe_warn_unused_parameter): Delete.
	(common_handle_option): Replace set_Wunused by warn_unused.
	(set_Wextra): Do not handle Wunused-parameter here.
	(set_Wunused): Delete.
	* c-opts.c (c_common_handle_option): Replace set_Wunused by
	warn_unused.
	* common.opt (Wunused): Add Var and Init.
	(Wunused-function): Likewise.
	(Wunused-label): Likewise.
	(Wunused-parameter): Likewise.
	(Wunused-value): Likewise.
	(Wunused-variable): Likewise.
fortran/
	* options.c (set_Wall): Replace set_Wunused by warn_unused.
java/	
	* lang.c (java_handle_option): Replace set_Wunused with
	warn_unused.
testsuite/
	* gcc.dg/unused-6-no.c: New.
	* gcc.dg/unused-6-WallWextra.c: New.

From-SVN: r138890
2008-08-08 23:15:31 +00:00
Peter Bergner d40c9e3333 invoke.texi: Add cpu_type power7.
2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>

        * doc/invoke.texi: Add cpu_type power7.
        * config.in (HAVE_AS_VSX): New.
        * config.gcc: Add cpu_type power7.
        * configure.ac (HAVE_AS_VSX): Check for assembler support of the
        VSX instructions.
        * configure: Regenerate.
        * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
        power5.
        * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
        (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
        (EXTRA_SPECS): Add asm_cpu_power7 spec string.

From-SVN: r138887
2008-08-08 21:40:18 +00:00
Volker Reichelt 76871f0f31 re PR c++/35985 (ICE with pointer to member function as base)
PR c++/35985
	* decl.c (xref_basetypes): Check base for MAYBE_CLASS_TYPE_P,
	and make sure it is not a union.

	* g++.dg/inherit/base3.C: New.

From-SVN: r138886
2008-08-08 21:17:54 +00:00
Dorit Nuzman 7910ae0cde tree-vect-transform.c (vectorizable_conversion): Pass the integral type to vectorize.builtin_conversion.
2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>

        * tree-vect-transform.c (vectorizable_conversion): Pass the integral
        type to vectorize.builtin_conversion.
        (vectorizable_conversion): Likewise.
        * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
        integral type as input.
        * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
        FIX_TRUNC_EXPR.
        (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
        and ALTIVEC_BUILTIN_VCTSXS.
        (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
        formatting.

From-SVN: r138885
2008-08-08 19:00:36 +00:00
Daniel Kraft f6fad28ea1 gfortran.h (gfc_finalizer): Replaced member `procedure' by two new members `proc_sym' and `proc_tree' to...
2008-08-08  Daniel Kraft  <d@domob.eu>

	* gfortran.h (gfc_finalizer):  Replaced member `procedure' by two
	new members `proc_sym' and `proc_tree' to store the symtree after
	resolution.
	(gfc_find_sym_in_symtree):  Made public.
	* decl.c (gfc_match_final_decl):  Adapted for new member name.
	* interface.c (gfc_find_sym_in_symtree):  Made public.
	(gfc_extend_expr), (gfc_extend_assign):  Changed call accordingly.
	* module.c (mio_finalizer), (mio_f2k_derived), (mio_full_f2k_derived):
	New methods for module-file IO of f2k_derived.
	(mio_symbol):  Do IO of f2k_derived namespace.
	* resolve.c (gfc_resolve_finalizers):  Adapted for new member name and
	finding the symtree for the symbol here.
	* symbol.c (gfc_free_finalizer):  Adapted for new members.

2008-08-08  Daniel Kraft  <d@domob.eu>

	* gfortran.dg/finalize_9.f03:  New test.
	* gfortran.dg/module_md5_1.f90:  Adapted MD5-sum for changed module
	file format.

From-SVN: r138884
2008-08-08 20:19:46 +02:00
Richard Guenther 174ef36d72 tree-ssa-ccp.c (likely_value): Calls are not all varying.
2008-08-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (likely_value): Calls are not all varying.
	(surely_varying_stmt_p): Calls are varying only if they are
	non-builtin and not indirect or have no result.
	(ccp_fold): Re-instantiate code before the tuples merge.

	* gcc.dg/tree-ssa/ssa-ccp-20.c: New testcase.

From-SVN: r138882
2008-08-08 15:01:05 +00:00
Ed Schonberg 70d904ca8e freeze.adb (Generate_Prim_Op_References): New procedure, abstracted from Freeze_Entity.
2008-08-08  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
	from Freeze_Entity. Used to generate cross-reference information for
	types declared in generic packages.

From-SVN: r138881
2008-08-08 15:09:37 +02:00
Thomas Quinot cfb535550f Makefile.in: Reintroduce g-soccon.ads as a compatibility shim.
2008-08-08  Thomas Quinot  <quinot@adacore.com>

	* gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
	compatibility shim.

From-SVN: r138880
2008-08-08 15:03:37 +02:00
Arnaud Charlet a3ea913742 gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow checking for integer...
2008-08-08  Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
	checking for integer operations (including division by zero)", which
	is wrong -- divide by zero is not part of overflow checking.
	Also added misc clarification about what check-suppression means.

	* gnat_rm.texi: Clarify the meaning of pragma Suppress.

From-SVN: r138879
2008-08-08 15:00:00 +02:00
Robert Dewar e8c4584bd7 s-strxdr.adb: Minor reformatting
2008-08-08  Robert Dewar  <dewar@adacore.com>

	* s-strxdr.adb: Minor reformatting

From-SVN: r138878
2008-08-08 14:59:38 +02:00
Thomas Quinot 62b7afe926 g-soccon.ads: New file.
2008-08-08  Thomas Quinot  <quinot@adacore.com>

	* g-soccon.ads: New file.

	* g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
	g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
	g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
	g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
	unit, to allow building software that depends on this internal unit
	with both older and newer compilers.

From-SVN: r138877
2008-08-08 14:59:28 +02:00
Thomas Quinot d65251b83d s-osinte-hpux.ads, [...]: Minor reformatting
2008-08-08  Thomas Quinot  <quinot@adacore.com>

	* s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting

From-SVN: r138876
2008-08-08 14:59:14 +02:00
Thomas Quinot 79a776a8ef s-osinte-freebsd.ads: Minor reformatting
2008-08-08  Thomas Quinot  <quinot@adacore.com>

	* s-osinte-freebsd.ads: Minor reformatting

From-SVN: r138875
2008-08-08 14:58:46 +02:00
Thomas Quinot 9fd03ecdc2 gsocket.h: On Windows...
2008-08-08  Thomas Quinot  <quinot@adacore.com>

	* gsocket.h:
	On Windows, include <errno.h> and redefine only selected errno values
	from their <winsock2.h> definitions.

From-SVN: r138874
2008-08-08 14:58:36 +02:00
Thomas Quinot 35e546dc65 2008-08-08 Thomas Quinot <quinot@adacore.com>
* g-sercom.ads:
	(Name): Document application scope (only legacy PC serial ports on
	Linux and Windows).

From-SVN: r138873
2008-08-08 14:37:51 +02:00
Thomas Quinot 12d1a0dc95 Makefile.in: generate s-oscons.ads again, previous change was unneeded.
2008-08-06  Thomas Quinot  <quinot@adacore.com>

	* Makefile.in: generate s-oscons.ads again, previous change was
	unneeded.

From-SVN: r138872
2008-08-08 14:23:48 +02:00
Thomas Quinot 15d2e2d47e Makefile.in, [...]: Revert previous change, not needed after all.
2008-08-08  Thomas Quinot  <quinot@adacore.com>

	* gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
	previous change, not needed after all.

From-SVN: r138871
2008-08-08 14:23:28 +02:00
Arnaud Charlet 51e4c4b9dc exp_ch4.adb (Expand_Allocator_Expression): add check if null exclusion indicator is present
2008-08-08  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_Allocator_Expression): add check if null
	exclusion indicator is present

From-SVN: r138870
2008-08-08 14:22:51 +02:00
Robert Dewar 11f746c63b sem_attr.adb: Minor code reorganization (use Nkind_In) Minor reformatting
2008-08-08  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb: Minor code reorganization (use Nkind_In)
	Minor reformatting

From-SVN: r138869
2008-08-08 14:22:26 +02:00
Robert Dewar 632eb367bf s-fileio.adb: Minor reformatting
2008-08-08  Robert Dewar  <dewar@adacore.com>

	* s-fileio.adb: Minor reformatting

From-SVN: r138868
2008-08-08 14:22:18 +02:00
Robert Dewar 8529dde57a g-comlin.ads: Minor reformatting
2008-08-08  Robert Dewar  <dewar@adacore.com>

	* g-comlin.ads: Minor reformatting

From-SVN: r138867
2008-08-08 14:22:10 +02:00
Robert Dewar 1bae456237 g-comlin.adb: Minor code reorganization Minor reformatting
2008-08-08  Robert Dewar  <dewar@adacore.com>

	* g-comlin.adb: Minor code reorganization
	Minor reformatting

From-SVN: r138866
2008-08-08 14:22:02 +02:00
Richard Guenther 0f336c35d5 re PR tree-optimization/37056 (ICE in build2_stat, at tree.c:3257)
2008-08-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37056
	* gimple.h (gimple_assign_rhs_class): New helper function.
	* tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
	unary operations properly.

	* gcc.c-torture/compile/pr37056.c: New testcase.

From-SVN: r138865
2008-08-08 11:30:13 +00:00
Jan Hubicka b2077fd226 i386.h (ix86_size_cost): Declare.
* i386.h (ix86_size_cost): Declare.
	(ix86_cur_cost): New function macro.
	* i386.md (peepholes expanding size and splitters): Predicate by
	optimize_insn_for_speed_p.
	(peepholes reduce size and splitters): Predicate by
	optimize_insn_for_size_p.
	* i386.c (ix86_size_cost): Rename from ...
	(size_cost): This one.
	(override_options): Update.
	(decide_alg): Likewise.
	(ix86_expand_clear): Use RTL profile.
	(ix86_pad_returns): Use RTL profile.

From-SVN: r138864
2008-08-08 10:09:37 +00:00
Jan Hubicka a8ba47cb41 recog.c (split_all_insns): Set RTL profile
* recog.c (split_all_insns): Set RTL profile
	(peephole2_optimize): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.
	* combine.c (combine_instructions): Likewise.

From-SVN: r138863
2008-08-08 10:04:51 +00:00
Paolo Carlini 1de853b169 ios_base.h: Undef _IOS_BASE_SEEK_CUR and _IOS_BASE_SEEK_END at the end of the file.
2008-08-08  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/ios_base.h: Undef _IOS_BASE_SEEK_CUR and
	_IOS_BASE_SEEK_END at the end of the file.
	* include/bits/char_traits.h: Likewise for _CHAR_TRAITS_EOF.

From-SVN: r138862
2008-08-08 09:54:09 +00:00
Kaveh R. Ghazi 03c3034efe c-common.c (c_common_reswords): Also warn about keyword "bool".
* c-common.c (c_common_reswords): Also warn about keyword "bool".
	
testsuite:
	* gcc.dg/Wcxx-compat-2.c: Check for bool/_Bool.

From-SVN: r138859
2008-08-08 01:42:33 +00:00
GCC Administrator 948b3e6723 Daily bump.
From-SVN: r138854
2008-08-08 00:16:46 +00:00
Bob Wilson b412869cb2 xtensa.c (xtensa_copy_incoming_a7): Copy incoming value in a6 after the set_frame_ptr insn.
* config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming value
	in a6 after the set_frame_ptr insn.

From-SVN: r138851
2008-08-07 23:44:31 +00:00
Richard Henderson 09828811dc re PR target/37033 (Revision 138733 breaks -g vs -g0 for PCH)
PR debug/37033
        * gcc.c (cpp_options): Pass along -g*.

From-SVN: r138850
2008-08-07 13:06:36 -07:00
Aaron W. LaFramboise 98b453092a pex-win32.c (argv_to_argc): New function.
2008-08-07  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* pex-win32.c (argv_to_argc): New function.
	(spawn_script): Duplicate argv before calling win32_spawn.

From-SVN: r138849
2008-08-07 13:30:14 -06:00
H.J. Lu 056dd1af58 semantics.c (finish_decltype_type): Initialize type.
2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>

	* semantics.c (finish_decltype_type): Initialize type.

From-SVN: r138848
2008-08-07 11:28:23 -07:00
Joseph Myers 874d42b93e arm.c (output_move_neon): Update comment describing big-endian vector layout.
* config/arm/arm.c (output_move_neon): Update comment describing
	big-endian vector layout.
	(arm_assemble_integer): Do not handle big-endian NEON vectors
	specially.
	* config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
	neon_vget_lane<mode>_sext_internal,
	neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
	element indices for big-endian.

From-SVN: r138847
2008-08-07 17:58:29 +01:00
Richard Henderson 058514b381 configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
* configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
        * configure, config.in: Rebuild.
        * debug.h (dwarf2out_do_cfi_asm): Declare.
        * c-cppbuiltin.c (c_cpp_builtins): Use it.
        * dwarf2out.c (dwarf2out_do_cfi_asm): New.
        (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
        dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.

From-SVN: r138846
2008-08-07 09:29:22 -07:00
Joseph Myers 9940eebdf8 iwmmxt.md (movv8qi_internal, [...]): Combine into mov<mode>_internal.
* config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
	movv2si_internal): Combine into mov<mode>_internal.
	(movv2si_internal_2): Remove.

From-SVN: r138844
2008-08-07 16:43:28 +01:00