84571 Commits

Author SHA1 Message Date
Rask Ingemann Lambertsen
f43e89a3f6 * config.host (ia64*-*-elf*): Build ia64 specific libgcc parts.
From-SVN: r130319
2007-11-20 18:11:07 +00:00
Rask Ingemann Lambertsen
8c2123af69 read-rtl.c (fatal_expected_char): Print EOF as text rather that its binary representation.
* read-rtl.c (fatal_expected_char): Print EOF as text rather that
	its binary representation.

From-SVN: r130318
2007-11-20 17:24:51 +00:00
Jakub Jelinek
542f8eb989 re PR c++/34089 (Segfault on specialization using struct instead of template function.)
PR c++/34089
	* parser.c (cp_parser_class_head): Reject function template ids.

	* g++.dg/template/crash74.C: New test.

From-SVN: r130316
2007-11-20 17:19:40 +01:00
Richard Guenther
8ef62eeb74 tree-ssa-operands.c (add_virtual_operand): Consistently prune accesses.
2007-11-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (add_virtual_operand): Consistently prune
	accesses.

	* gcc.c-torture/execute/20071120-1.c: New testcase.

From-SVN: r130315
2007-11-20 15:16:25 +00:00
Paolo Carlini
f22aa574dc functional_hash.h: Do not include ext/numeric_traits.h.
2007-11-20  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/functional_hash.h: Do not include ext/numeric_traits.h.
	* include/tr1/functional_hash.h: Likewise.
	* include/std/functional: Include ext/type_traits.h.
	* include/tr1/functional: Likewise.

From-SVN: r130314
2007-11-20 14:06:53 +00:00
Thiemo Seufer
0a7ea4078e mips.c (mips_file_start): Add support for flagging 32-bit code with -mfp64 floating-point.
* config/mips/mips.c (mips_file_start): Add support for
	flagging 32-bit code with -mfp64 floating-point.

From-SVN: r130313
2007-11-20 13:48:55 +00:00
Paolo Carlini
a0ba4e53fd functional_hash.h (hash<long double>::operator()(long double)): Only declare.
2007-11-20  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1_impl/functional_hash.h
	(hash<long double>::operator()(long double)): Only declare.
	* src/hash.cc: Define here.
	* config/abi/pre/gnu.ver: Adjust exports.
	* include/tr1/functional: Do not include <cmath>.
	* include/std/functional: Likewise.

	* include/std/functional: Include <new>.

From-SVN: r130312
2007-11-20 12:34:44 +00:00
Jakub Jelinek
7ef249e59f re PR c/34146 (Inefficient code with compound literals inside a CONSTRUCTO)
PR c/34146
	* c-gimplify.c (optimize_compound_literals_in_ctor): New function.
	(c_gimplify_expr): Use it.

	PR c/34146
	* gcc.dg/tree-ssa/pr34146.c: New test.

	PR testsuite/33978
	* gcc.dg/tree-ssa/pr33723.c: Adjust scan pattern to make it less
	dependent on target settings like move_by_pieces etc.

From-SVN: r130311
2007-11-20 11:36:03 +01:00
Ben Elliston
cae85ca91a * config/spu/spu_mfcio.h: Fix typo.
From-SVN: r130310
2007-11-20 19:00:10 +11:00
Jakub Jelinek
6da06848ec re PR c++/28879 (ICE with VLA in template function)
PR c++/28879
	* tree.c (build_cplus_array_type_1): Don't pass any VLA types
	when processing_template_decl to build_array_type.

	* g++.dg/template/vla2.C: New test.

From-SVN: r130309
2007-11-20 07:38:48 +01:00
Jakub Jelinek
63d34078b6 re PR c++/33962 (ICE at call to overloaded template function with variable-length function argument list)
PR c++/33962
	* pt.c (more_specialized_fn): Don't segfault if one or
	both argument list end with ellipsis.

	* g++.dg/overload/template3.C: New test.

From-SVN: r130308
2007-11-20 07:26:11 +01:00
Ben Elliston
cb96cf3b9d * unwind.inc: Comment that unwind-sjlj.c includes this file.
From-SVN: r130307
2007-11-20 16:38:30 +11:00
Ulrich Weigand
1763dfa74d mfc_tag_release.c: New file.
* config/spu/mfc_tag_release.c: New file.
	* config/spu/mfc_multi_tag_release.c: Likewise.
	* config/spu/mfc_multi_tag_reserve.c: Likewise.
	* config/spu/mfc_tag_release.c: Likewise.
	* config/spu/mfc_tag_reserve.c: Likewise.
	* config/spu/mfc_tag_table.c: Likewise.
	* config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
	(TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
	* config/spu/spu_mfcio.h (uint64_t): Typedef if __IN_LIBGCC2
	is defined and avoid <stdint.h>.
	(MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
	(mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
	mfc_multi_tag_release): Likewise.
	(__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
	__mfc_multi_tag_release): Declare.

Co-Authored-By: Ben Elliston <bje@au.ibm.com>

From-SVN: r130306
2007-11-20 16:12:09 +11:00
Jerry DeLisle
457784b849 re PR fortran/33317 (CSHIFT/EOSHIFT: Rejects optional dummy for DIM=)
2007-11-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/33317
	* gfortran.dg/optional_dim_2.f90: Remove test.

From-SVN: r130305
2007-11-20 01:51:04 +00:00
Jerry DeLisle
e76e6ce3ff re PR fortran/33317 (CSHIFT/EOSHIFT: Rejects optional dummy for DIM=)
2007-11-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/33317
	* trans-expr.c (gfc_conv_missing_dummy): Revert.
	* iresolve.c (gfc_resolve_cshift): Revert.
	(gfc_resolve_eoshift): Likewise.
	* check.c (gfc_check_cshift): Revert.
	(gfc_check_eoshift): Likewise.

From-SVN: r130304
2007-11-20 01:37:43 +00:00
GCC Administrator
9fc1c58ff0 Daily bump.
From-SVN: r130301
2007-11-20 00:17:31 +00:00
Jason Merrill
aadfee482f note PR 28834
From-SVN: r130298
2007-11-19 17:32:30 -05:00
Jason Merrill
4009f2e7f0 PR debug/29436, c/32326
PR debug/29436, c/32326
        * tree.c (build_type_attribute_qual_variant): Refuse to make
        a distinct copy of a struct/enum type.  Use build_distinct_type_copy.
        * doc/extend.texi (Type Attributes): Don't encourage people to add
        attributes to struct/enum types in a typedef.  Fix
        transparent_union example.

        * tree-inline.c (remap_type_1): Remove code that's redundant with
        remap_type.
        (build_duplicate_type): Set id.copy_decl.
        * c-common.c (handle_transparent_union_attribute): Simplify logic.

From-SVN: r130297
2007-11-19 16:35:13 -05:00
Peter Bergner
4d4447b56b rs6000.c (invalid_e500_subreg, [...]): Handle DDmode and TDmode similarly to DFmode and TFmode.
* config/rs6000/rs6000.c (invalid_e500_subreg,
	rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
	rs6000_legitimize_address, rs6000_legitimize_reload_address,
	rs6000_legitimate_address, function_arg_advance,
	spe_build_register_parallel, rs6000_spe_function_arg,
	rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
	emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
	rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
	TDmode similarly to DFmode and TFmode.
	* config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
	DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.

	* gcc.dg/dfp/ddmode-ice.c: New test.

From-SVN: r130296
2007-11-19 13:50:47 -06:00
Eric Botcazou
b7cfd8a4e1 Add missing entry.
From-SVN: r130295
2007-11-19 17:49:53 +00:00
Eric Botcazou
7634135aec re PR ada/34098 (xgcc: Internal error: Segmentation fault (program gnat1))
PR ada/34098
ada/
        * misc.c (gnat_adjust_rli): Delete.
        (gnat_init): Do not initialize the translation code here.
        Do not call set_lang_adjust_rli.
        * trans.c (init_code_table): Make static.
        (gnat_init_stmt_group): Delete.
        (gigi): Initialize the translation code entirely here.
        Emit debug info for the common types here instead of...
        * utils.c (gnat_init_decl_processing): ...here.
        * gigi.h (init_code_table): Delete.
        (gnat_init_stmt_group): Likewise.

        * stor-layout.c (lang_adjust_rli): Delete.
        (set_lang_adjust_rli): Likewise.
        (layout_type): Do not call lang_adjust_rli hook.
        * tree.h (set_lang_adjust_rli): Delete.

From-SVN: r130294
2007-11-19 17:49:11 +00:00
Eric Botcazou
921d313fd5 re PR tree-optimization/34036 (ICE with control flow in the middle of basic block for -fnon-call-exceptions)
PR tree-optimization/34036
	* gcc.dg/tree-ssa/pr23109.c: Pass -ftrapping-math and expect warning.

From-SVN: r130293
2007-11-19 17:27:06 +00:00
Bernd Schmidt
4d82f261af bfin.c (must_save_p): New function, mostly broken out of n_dregs_to_save and n_pregs_to_save.
* config/bfin/bfin.c (must_save_p): New function, mostly broken out of
	n_dregs_to_save and n_pregs_to_save.
	(n_pregs_to_save, n_dregs_to_save): Use it.  New argument CONSECUTIVE;
	all callers changed.
	(expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
	able to save single D/P registers that aren't saved by the push/pop
	multiple insns.

From-SVN: r130292
2007-11-19 15:46:41 +00:00
Thiemo Seufer
60f1711a6d * config-ml.in: Don't hardcode the Makefile name.
From-SVN: r130291
2007-11-19 12:59:49 +00:00
Richard Biener
56aa7240a1 re PR tree-optimization/34099 (optimizer problem)
2007-11-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34099
	* tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
	MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
	if only one operand is undefined.

	* gcc.c-torture/execute/pr34099-2.c: New testcase.

From-SVN: r130290
2007-11-19 12:52:58 +00:00
Richard Guenther
0cedb9e94e re PR tree-optimization/34099 (optimizer problem)
2007-11-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34099
	* tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
	MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
	if only one operand is undefined.

	* gcc.c-torture/execute/pr34099-2.c: New testcase.

From-SVN: r130289
2007-11-19 12:52:09 +00:00
Tobias Burnus
bc3e7a8cfc re PR fortran/34079 (Bind(C): Character argument/return value problems)
2007-11-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34079
        * decl.c (gfc_match_entry): Support BIND(C).
        (gfc_match_subroutine): Fix comment typo.

2007-11-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34079
        * gfortran.dg/bind_c_usage_10_c.c: New.
        * gfortran.dg/bind_c_usage_10.f03: New.

From-SVN: r130288
2007-11-19 13:30:17 +01:00
Eric Botcazou
4aba7b1186 re PR tree-optimization/34036 (ICE with control flow in the middle of basic block for -fnon-call-exceptions)
PR tree-optimization/34036
	* doc/invoke.texi (Optimize Options): Refactor documentation
	of -ffast-math.

From-SVN: r130287
2007-11-19 11:07:28 +00:00
Eric Botcazou
c5edab650d re PR tree-optimization/34036 (ICE with control flow in the middle of basic block for -fnon-call-exceptions)
PR tree-optimization/34036
	* opts.c (set_fast_math_flags): Do not set flags in common
	with set_unsafe_math_optimizations_flags, invoke it directly.
	(set_unsafe_math_optimizations_flags): Unset flag_trapping_math
	and flag_signed_zeros.
	* toplev.c (process_options): Force flag_associative_math to 0 and
	warn, if it is set and either flag_trapping_math or flag_signed_zeros
	is set too.
	* doc/invoke.texi (Optimize Options): Document the new behavior
	of -funsafe-math-optimizations, that -fassociative-math requires
	both -fno-signed-zeros and -fno-trapping-math and make it clear
	that -fno-trapping-math requires -fno-signaling-nans.

From-SVN: r130286
2007-11-19 06:27:31 +00:00
GCC Administrator
88af50ebcd Daily bump.
From-SVN: r130283
2007-11-19 00:17:28 +00:00
Jakub Jelinek
be461b8fb9 re PR c++/30988 (Incorrect "no return statement" warning with __attribute__ ((noreturn)) and __FUNCTION__)
PR c++/30988
	semantics.c (finish_call_expr): Set current_function_returns_abnormally
	if fn is noreturn FUNCTION_DECL or OVERLOAD with all noreturn
	functions.

	* g++.dg/warn/noreturn-4.C: New test.
	* g++.dg/warn/noreturn-5.C: New test.
	* g++.dg/warn/noreturn-6.C: New test.
	* g++.dg/warn/noreturn-7.C: New test.

From-SVN: r130280
2007-11-18 23:20:54 +01:00
Thomas Koenig
bce8455643 re PR fortran/32770 ([Meta-bug] -fdefault-integer-8 issues)
2007-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/32770
	* gfortran.fortran-torture/execute/equiv_5.f:  Set kind on
	integers so tests works with -fdefault-integer-8.
	* gfortran.fortran-torture/execute/elemental.f90:  Use default
	integers so test passes with -fdefault-integer-8.
	* gfortran.fortran-torture/execute/der_io.f90:  Increase
	buffer length so test passes with -fdefault-integer-8.
	* gfortran.dg/bounds_check_8.f90:  Likewise.
	* gfortran.dg/arrayio_derived_1.f90:  LIkewise.
	* gfortran.dg/equiv_7.f90:  Set kind so test passes
	with -fdefault-integer-8.
	* gfortran.dg/g77/20030326-1.f:  Set kind explicitly to
	provoke overflow.

From-SVN: r130279
2007-11-18 21:18:07 +00:00
Jerry DeLisle
0cf5118a8b Add PR reference to previous entry.
From-SVN: r130278
2007-11-18 21:05:31 +00:00
Jerry DeLisle
a03890ea9d re PR fortran/33317 (CSHIFT/EOSHIFT: Rejects optional dummy for DIM=)
2007-11-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/33317
	* gfortran.dg/optional_dim_2.f90: New test.
	
	PR fortran/34139
	* gfortran.dg/subref_array_pointer_2.f90: Update test condition.

From-SVN: r130277
2007-11-18 20:59:41 +00:00
Jerry DeLisle
33717d596b trans-expr.c (gfc_conv_missing_dummy): Set the type of the dummy argument to default integer if flagged to do so.
2007-11-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* trans-expr.c (gfc_conv_missing_dummy): Set the type of the dummy
	argument to default integer if flagged to do so. Fix typo in comment.
	* resolve.c (gfc_resolve_dim_arg): Whitespace cleanup.
	* iresolve.c (gfc_resolve_cshift): Do not convert type, mark attribute
	for converting the DIM type appropriately in trans-expr.c.
	(gfc_resolve_eoshift): Likewise.
	* check.c (dim_check): Remove pre-existing dead code.
	(gfc_check_cshift): Enable dim_check to allow DIM as an optional.
	(gfc_check_eoshift): Likewise.
	* trans_intrinsic.c (gfc_conv_intrinsic_function_args): Fix whitespace.

From-SVN: r130276
2007-11-18 20:53:16 +00:00
Jakub Jelinek
05969da4c3 re PR rtl-optimization/34132 (ICE: internal consistency failure (invalid rtl sharing found in the insn))
PR rtl-optimization/34132
	* gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
	and insn.

	* gcc.c-torture/compile/20071118-1.c: New test.

From-SVN: r130275
2007-11-18 20:22:35 +01:00
Jakub Jelinek
33727b5ecb re PR middle-end/33335 (FAIL: 26_numerics/complex/inserters_extractors/wchar_t/1.cc)
PR middle-end/33335
	* optabs.h (optab_table): Change type to struct optab from optab.
	(convert_optab_table): Similarly.
	Adjust all _optab macros to expand to addresses of optab_table
	resp. convert_optab_table elements rather than the values of the
	elements.
	* optabs.c (optab_table): Change typype to struct optab from optab.
	If compiled by recent GCC, initialize all the insn_code fields in
	the array using designated range initializers.
	(convert_optab_table): Similarly.
	(convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
	set_conv_libfunc): Into libfunc_entry's optab field store index within
	optab_table resp. convert_optab_table array instead of difference
	between two separately malloced addresses.
	(new_optab): Add op argument, don't return anything.  Initialize
	just the insn_code field in handlers array and only when needed.
	(init_optab, init_optabv): Add op argument, don't return anything.
	Adjust new_optab caller.
	(new_convert_optab): Removed.
	(init_convert_optab): Add op argument, don't return anything, don't
	call new_convert_optab.  If needed, initialize insn_code field in
	handlers array.
	(init_optabs): Adjust init_optab, init_optabv and init_convert_optab
	callers.
	(debug_optab_libfuncs): Adjust uses of optab_table and
	convert_optab_table arrays.

From-SVN: r130274
2007-11-18 20:18:39 +01:00
Paolo Carlini
3c27955364 type_traits (_DEFINE_SPEC_BODY): Remove.
2007-11-18  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits (_DEFINE_SPEC_BODY): Remove.
	(_DEFINE_SPEC_0_HELPER): Rename to _DEFINE_SPEC_HELPER.
	(_DEFINE_SPEC): Simplify; adjust uses.

From-SVN: r130273
2007-11-18 18:55:27 +00:00
Paolo Carlini
90b81c3306 type_traits (is_reference, [...]): Declare.
2007-11-18  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1_impl/type_traits (is_reference, is_function,
	remove_cv, is_member_pointer, remove_reference): Declare.
	* include/tr1_impl/type_traitsfwd.h: Remove.
	* include/Makefile.am: Adjust.
	* include/Makefile.in: Regenerate.

From-SVN: r130272
2007-11-18 18:05:42 +00:00
Paul Thomas
129c14bd4c re PR fortran/31608 (wrong types in character array/scalar binop)
2007-11-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/31608
	* trans-array.c (gfc_conv_expr_descriptor): Remove exception
	for indirect references in the call to gfc_trans_scalar_assign.
	* trans-expr.c (gfc_conv_string_parameter): Instead of asserting
	that the expression is not an indirect reference, cast it to a
	pointer type of the length given by se->string_length.

2007-11-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/31608
	* gfortran.dg/char_cast_2.f90: New test based on achar_4.f90.

From-SVN: r130271
2007-11-18 17:14:40 +00:00
Tobias Burnus
b5bf3e4d2e re PR fortran/34137 (Module function with ENTRY rejected)
2007-11-18  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34137
        * primary.c (match_variable): Reject non-result entry symbols.
        * resolve.c (resolve_contained_fntype): Do not check entry
        * master functions.

2007-11-18  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34137
        * gfortran.dg/entry_14.f90: New.
        * gfortran.dg/entry_15.f90: New.

From-SVN: r130270
2007-11-18 17:35:12 +01:00
Richard Guenther
4ba480060a re PR tree-optimization/34127 (ICE: tree-ssa-operands.c:1688)
2007-11-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34127
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
	Make code match up the comments, require compatibility of the
	pointed-to types.

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

From-SVN: r130269
2007-11-18 15:49:57 +00:00
Ben Elliston
6c4322d7a2 altivec-23.c: Do not use a typedef name as a type specifier...
* gcc.target/powerpc/altivec-23.c: Do not use a typedef name as a
	type specifier, as they are not permitted according to the AltiVec
	Programming Interface Manual.

From-SVN: r130268
2007-11-18 20:56:39 +11:00
David Daney
af246415aa constants.c (build_constants_constructor): Use POINTER_SIZE insead of BITS_PER_WORD in big-endian work around.
2007-11-16  David Daney  <ddaney@avtrex.com>
	    Andrew Haley  <aph@redhat.com>

	* constants.c (build_constants_constructor):  Use POINTER_SIZE
	insead of BITS_PER_WORD in big-endian work around.

From-SVN: r130267
2007-11-18 05:23:59 +00:00
GCC Administrator
19c2da4594 Daily bump.
From-SVN: r130265
2007-11-18 00:17:07 +00:00
Francois-Xavier Coudert
e5008df7b9 * trans-types.c (gfc_init_types): Use wider buffer.
From-SVN: r130262
2007-11-17 22:23:32 +00:00
Francois-Xavier Coudert
40373aa6b0 trans-types.c (gfc_init_types): Use Fortran-90-style type names, with kinds.
* trans-types.c (gfc_init_types): Use Fortran-90-style type
	names, with kinds.

From-SVN: r130261
2007-11-17 20:07:21 +00:00
Tobias Burnus
01f4fff18b re PR fortran/34133 (Bind(c,name="") should be rejected for dummies; F2008: allow bind(c) for internal procs)
2007-11-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34133
        * decl.c (gfc_match_suffix,gfc_match_subroutine): Disallow
        bind(c) attribute for internal procedures.

2007-11-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34133
        * gfortran.dg/bind_c_usage_9.f03: New.
        * gfortran.dg/interface_abstract_1.f90: Fix testcase.

From-SVN: r130260
2007-11-17 19:19:16 +01:00
Francois-Xavier Coudert
2b77e90812 re PR fortran/25252 (ICE on invalid code)
PR fortran/25252

	* interface.c (gfc_current_interface_head,
	gfc_set_current_interface_head): New functions.
	* decl.c (gfc_match_modproc): Move check for syntax error earlier.
	On syntax error, restore previous state of the interface.
	* gfortran.h (gfc_current_interface_head,
	gfc_set_current_interface_head): New prototypes.

	* gfortran.dg/interface_22.f90: New test.

From-SVN: r130259
2007-11-17 17:49:45 +00:00
Richard Guenther
a0857153dd re PR middle-end/34130 (the builtin abs() gives wrong result when used in some expression)
2007-11-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34130
	* fold-const.c (extract_muldiv_1): Do not move negative
	constants inside ABS_EXPR.

	* gcc.c-torture/execute/pr34130.c: New testcase.

From-SVN: r130258
2007-11-17 14:22:42 +00:00