Commit Graph

70413 Commits

Author SHA1 Message Date
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
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
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
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
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
Francois-Xavier Coudert
d61ae8dd99 re PR fortran/30285 (gfortran excessive memory usage with COMMON blocks in modules)
PR fortran/30285
	* module.c (struct written_common, written_commons): New structure.
	(compare_written_commons, free_written_common, write_common_0):
	New functions.
	(write_common): Call recursive function write_common_0.

From-SVN: r130257
2007-11-17 13:46:53 +00:00
GCC Administrator
ca0395de2a Daily bump.
From-SVN: r130252
2007-11-17 00:17:23 +00:00
Francois-Xavier Coudert
a48ebf39c9 re PR fortran/34108 (ICE: Segmentation fault occurs by "write(*,0)" statement)
PR fortran/34108

        * io.c (check_format_string): Only check character expressions.
        (match_dt_format): Return MATCH_ERROR if that is what
        gfc_match_st_label said.

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

From-SVN: r130249
2007-11-17 00:10:00 +00:00
Francois-Xavier Coudert
f5fd0cf12d re PR fortran/33957 (gfortran rejects valid initialization expression)
PR fortran/33957

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

	* expr.c (check_inquiry): Don't call gfc_error now.

From-SVN: r130246
2007-11-16 22:38:21 +00:00
Francois-Xavier Coudert
4a58b9ad36 re PR debug/33739 (Failure of gfortran.dg/literal_character_constant_1_*.F with -m64 -g on Darwin)
PR fortran/33739
	PR fortran/34084
	* scanner.c (start_source_file, end_source_file,
	exit_remaining_files, gfc_advance_line): Revert rev. 130016.

From-SVN: r130244
2007-11-16 22:20:44 +00:00
Ian Lance Taylor
fda4ba9996 collect2.c (dump_file): If a demangled symbol is followed by a space...
* collect2.c (dump_file): If a demangled symbol is followed by a
	space, make sure we output at least one space.

From-SVN: r130243
2007-11-16 22:11:29 +00:00
Richard Guenther
5abe968588 re PR middle-end/34030 (ICE in in compare_values_warnv, at tree-vrp.c:701)
2007-11-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34030
	* fold-const.c (fold_binary): Use correct types for folding
	1 << X & Y to Y >> X & 1.

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

From-SVN: r130238
2007-11-16 21:34:39 +00:00
Paul Thomas
06bcd7510e re PR fortran/34008 (ICE in gfc_trans_call, at fortran/trans-stmt.c:389 on elemental assignment)
2007-11-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34008
	* trans-stmt.c (gfc_conv_elemental_dependencies): Add check for
	INTENT_INOUT as well as INTENT_OUT.
	(gfc_trans_call): Remove redundant gcc_asserts in dependency
	check.

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

	PR fortran/34008
	* gfortran.dg/interface_assignment_3.f90.

From-SVN: r130232
2007-11-16 14:47:31 +00:00
Richard Guenther
99739a3e63 re PR tree-optimization/33870 (miscompiles sqlite)
2007-11-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33870
	* tree.h (struct tree_memory_tag): Add base_for_components flag.
	(struct tree_struct_field_tag): Remove nesting_level field.
	(SFT_NESTING_LEVEL): Remove.
	(SFT_BASE_FOR_COMPONENTS_P): Add.
	* tree-flow.h (struct fieldoff): Remove nesting_level field.  Add
	base_for_components flag.
	(push_fields_onto_fieldstack): Remove nesting_level parameter.
	* tree-ssa-alias.c (create_sft): Likewise.  Add base_for_components
	parameter.
	(create_overlap_variables_for): Deal with it.
	* tree-dfa.c (dump_subvars_for): Likewise.
	(dump_variable): Likewise.
	* tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
	Set base_for_components for first elements of sub-structures.
	(create_variable_info_for): Handle base_for_components.
	(set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for
	pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set.
	* tree-ssa-operands.c (ref_nesting_level): Remove.
	(add_vars_for_offset): Remove full_ref parameter, always add
	the offset of the pointed-to SFT.
	(add_virtual_operand): Adjust for changed signature of
	add_vars_for_offset.

	* gcc.dg/torture/pr33870.c: New testcase.

From-SVN: r130231
2007-11-16 14:40:04 +00:00
Joseph Myers
bf3bde19e0 * de.po: Update.
From-SVN: r130230
2007-11-16 14:06:44 +00:00
Paul Thomas
237b2f1b41 re PR fortran/33986 (ICE on allocatable function result)
2007-11-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/33986
	* trans-array.c (gfc_conv_array_parameter ): Allow allocatable
	function results.

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

	PR fortran/33986
	* gfortran.dg/allocatable_function_3.f90.

From-SVN: r130228
2007-11-16 13:46:04 +00:00
Sa Liu
130aca2a4e Inlined floatunssidf2 and floatunsdidf2
From-SVN: r130226
2007-11-16 13:28:03 +00:00
Sa Liu
3538c42dd7 Inlined floatunssidf2 and floatunsdidf2
From-SVN: r130225
2007-11-16 13:23:28 +00:00
Richard Guenther
99552e406c re PR tree-optimization/34113 (ICE in get_addr_dereference_operands, at tree-ssa-operands.c:1746)
2007-11-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34113
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
	Use correct conversion direction for checking type compatibility.

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

From-SVN: r130223
2007-11-16 13:14:03 +00:00
Richard Guenther
7f879c9615 re PR tree-optimization/34099 (optimizer problem)
2007-11-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34099
	* tree-ssa-ccp.c (likely_value): Use a whitelist for operators
	that produce UNDEFINED result if at least one of its operands
	is UNDEFINED.  By default the result is only UNDEFINED if all
	operands are UNDEFINED.

	* g++.dg/torture/pr3499.C: New testcase.
	* gcc.c-torture/execute/pr34099.c: Likewise.

From-SVN: r130222
2007-11-16 10:10:05 +00:00
Olivier Hainque
b2c3bcf47b utils2.c (build_call_alloc_dealloc): Move the code retrieving an allocator return value from a super-aligned address...
2007-11-16  Olivier Hainque  <hainque@adacore.com>

        ada/
        * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
        retrieving an allocator return value from a super-aligned address from
        here to ...
        * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
        expect a super-aligned address for a fat or thin pointer.

        testsuite/
        * gnat.dg/release_unc_maxalign.adb: New test.

From-SVN: r130221
2007-11-16 08:52:51 +00:00
Jakub Jelinek
823e5f7f9f re PR c++/34100 (ICE with vector attribute)
PR c++/34100
	* pt.c (apply_late_template_attributes): Do nothing if decl's type is
	error_mark_node.

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

From-SVN: r130220
2007-11-16 08:06:25 +01:00
Jakub Jelinek
b481444e66 re PR driver/30460 (asm_debug is not initialized in gcc.c when using a "default" specs file)
PR driver/30460
	* gcc.c (init_spec): Don't initialize asm_debug here...
	(main): ... but here.

From-SVN: r130219
2007-11-16 08:02:49 +01:00
GCC Administrator
428a53ab73 Daily bump.
From-SVN: r130216
2007-11-16 00:17:00 +00:00
Tom Tromey
5576d6f2da tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'.
* tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to
	'func'. 
	* tree-parloops.c (create_loop_fn): Use set_cfun.
	* gengtype.c (open_base_files): Emit #undef cfun.
	* ipa-struct-reorg.c (do_reorg_1): Use set_cfun.
	* function.h (cfun): New define.
	* function.c: Undefine cfun.

From-SVN: r130213
2007-11-16 00:11:47 +00:00
Eric B. Weddington
e2a021c9e5 avr.c (avr_mcu_types): Add attiny88.
* config/avr/avr.c (avr_mcu_types): Add attiny88.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

From-SVN: r130208
2007-11-15 22:32:26 +03:00
Jakub Jelinek
cb8e078d3f re PR middle-end/23848 (stack deallocation can be more efficient)
PR middle-end/23848
	* tree-ssa-ccp.c (optimize_stack_restore): New function.
	(execute_fold_all_builtins): Call optimize_stack_restore for
	BUILT_IN_STACK_RESTORE.

	* gcc.dg/tree-ssa/pr23848-1.c: New test.
	* gcc.dg/tree-ssa/pr23848-2.c: New test.
	* gcc.dg/tree-ssa/pr23848-3.c: New test.
	* gcc.dg/tree-ssa/pr23848-4.c: New test.

From-SVN: r130206
2007-11-15 20:02:54 +01:00
Joseph Myers
62e66076c6 * es.po: Update.
From-SVN: r130205
2007-11-15 17:28:21 +00:00
Joseph Myers
3cc0aa0f20 * de.po: Update.
From-SVN: r130203
2007-11-15 16:17:31 +00:00
Tobias Burnus
bb343a6c9b re PR fortran/33917 (Rejects valid PROCEDURE declarations)
2007-11-15  Tobias Burnus  <burnus@net-b.de>

        PR fortran/33917
        * decl.c (match_procedure_decl): Pre-resolve interface.
        * resolve.c (resolve_symbol): Reject interfaces later
        declared in procedure statements.

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

        PR fortran/33917
        * gfortran.dg/proc_decl_11.f90: New.

From-SVN: r130202
2007-11-15 16:12:03 +01:00
Paolo Bonzini
ea6684648c fwprop.c (try_fwprop_subst): Skip profitability check for forward propagation into an address...
2007-11-15  Paolo Bonzini  <bonzini@gnu.org>

	* fwprop.c (try_fwprop_subst): Skip profitability check for forward
	propagation into an address; that's done in should_replace_address.

From-SVN: r130201
2007-11-15 14:45:55 +00:00
Ulrich Weigand
3f61b42f2b spu-protos.h (legitimate_const): Remove prototype.
* config/spu/spu-protos.h (legitimate_const): Remove prototype.
	* config/spu/spu.c (legitimate_const): Remove.
	(classify_immediate): Inline call to legitimate_const.
	(spu_legitimate_address): Likewise.  Allow SMBOL_REF + CONST_INT
	for any constant, not just -512 .. 511.

From-SVN: r130200
2007-11-15 14:30:58 +00:00
Ben Elliston
dd4ba93983 spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL condition from HONOR_NANS test.
* config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL
	condition from HONOR_NANS test.
	* config/spu/spu.md (ceq_df): Always generate comparison code
	inline, including checks for NaNs and infinities.
	(cgt_df): Likewise.
	(cgt_v2df): Likewise.
	(cmpdf): Make this expander unconditional.

testsuite/
	* gcc.target/spu/compare-dp.c: New test.

From-SVN: r130198
2007-11-15 23:22:04 +11:00
Richard Guenther
4a648c5d7d tree-ssa-alias.c (create_overlap_variables_for): Make sure to only create SFTs if we also create variable infos for PTA.
2007-11-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (create_overlap_variables_for): Make sure
	to only create SFTs if we also create variable infos for PTA.
	* tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping
	SFTs.

From-SVN: r130197
2007-11-15 11:15:08 +00:00
Richard Guenther
f83ca2512f tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to type for TBAA pruning.
2007-11-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to
	type for TBAA pruning.
	(find_what_p_points_to): Call set_uids_in_ptset with the original
	pointer, not the decl of the solution we collapsed to.

From-SVN: r130195
2007-11-15 09:06:58 +00:00
David Daney
cc3c24ed02 linux-unwind.h (mips_fallback_frame_state): Use CFA to find sigcontext.
2007-11-14  David Daney  <ddaney@avtrex.com>

	* config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA
	to find sigcontext.

From-SVN: r130194
2007-11-15 05:33:28 +00:00
GCC Administrator
35293ded0c Daily bump.
From-SVN: r130191
2007-11-15 00:17:17 +00:00
Eric Botcazou
c6f4f1d196 re PR target/33923 (ICE in reload_cse_simplify_operands (insn does not satisfy its constraints))
PR target/33923
	* config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes
	for registers in BR_REGS class.

From-SVN: r130188
2007-11-14 23:21:15 +00:00
Jakub Jelinek
f7bc70c5bf re PR middle-end/34088 (ICE with uninitialized variable and -Werror)
PR middle-end/34088
	* tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if
	init_ssa_operands has not been called for cfun.

	* gcc.dg/pr34088.c: New test.

From-SVN: r130187
2007-11-14 20:32:45 +01:00
Eric Botcazou
3bc8ba2577 re PR tree-optimization/34046 (verify_flow_info failed)
PR tree-optimization/34046
	* cfg.c (update_bb_profile_for_threading): Avoid the division for the
	scaling if the old probability is greater than the new base.

From-SVN: r130185
2007-11-14 19:06:10 +00:00
Eric Botcazou
a01e283ff5 trans.c (call_to_gnu): Always set the source location on the call expression.
* trans.c (call_to_gnu): Always set the source location on the call
	expression.  If the function returns-by-target, also set it on the
	address expression.

From-SVN: r130184
2007-11-14 18:31:57 +00:00
Sebastian Pop
6c74788ed7 tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove unused edges after loop duplication.
2007-11-14  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove
	unused edges after loop duplication.

From-SVN: r130182
2007-11-14 17:36:01 +00:00
Samuel Tardieu
1e992e163d i-cstrin.ads (chars_ptr): Make it a C convention type.
gcc/ada/
	* i-cstrin.ads (chars_ptr): Make it a C convention type.

From-SVN: r130180
2007-11-14 15:14:45 +00:00
Uros Bizjak
c2f17e192e i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
* config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
	(enum target_cpu_default): ... this enum.
	(TARGET_CPU_DEFAULT_NAMES): Remove macro.  Move initializer to ...
	* config/i386/i386.c (override_options): ... here.
	* config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use
	TARGET_CPU_DEFAULT_i486.

From-SVN: r130177
2007-11-14 15:14:13 +01:00
Rask Ingemann Lambertsen
359125444f global.c (rest_of_handle_global_alloc): Fix comment typos.
* global.c (rest_of_handle_global_alloc): Fix comment typos.
	* config/sh/sh.c (sh_rtx_costs): Likewise.
	* ChangeLog: Likewise.

From-SVN: r130176
2007-11-14 12:28:41 +00:00
Samuel Tardieu
713c31453c adaint.c [...]: Remove system-specific sections of non-supported Interix target.
gcc/ada/
	* adaint.c init.c initialize.c link.c: Remove system-specific
	sections of non-supported Interix target.

	* s-osinte-interix.ads: Removed.

From-SVN: r130175
2007-11-14 12:26:05 +00:00
Jerry DeLisle
3865fa6a9d re PR fortran/31608 (wrong types in character array/scalar binop)
2007-11-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/31608
	*gfortran.dg/char_cast_1.f90: Modify regex in scan-tree-dump-times
	to match known variations in symbol format. Document in comments.

From-SVN: r130173
2007-11-14 01:35:09 +00:00
Jerry DeLisle
68c2aa7d95 re PR libfortran/33985 (access="stream",form="unformatted" doesn't buffer)
2007-11-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/33985
	*gfortran.dg/streamio_12.f90: New test to avoid future regression.

From-SVN: r130172
2007-11-14 01:22:17 +00:00
Jerry DeLisle
0aeaf89a2a list_read_7.f90: Fix test so that test file is deleted when done.
2007-11-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	*gfortran.dg/list_read_7.f90: Fix test so that test file is deleted when
	done.

From-SVN: r130171
2007-11-14 01:14:39 +00:00
Jerry DeLisle
83012bd421 2007-11-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Fix date of last entry.

From-SVN: r130170
2007-11-14 01:08:19 +00:00
Jerry DeLisle
2daddc8e15 re PR fortran/33162 (INTRINSIC functions as ACTUAL argument)
2007-11-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/33162
	*gfortran.dg/proc_decl_1.f90: Update.
	*gfortran.dg/proc_decl_7.f90: New test.
	*gfortran.dg/proc_decl_8.f90: New test.
	*gfortran.dg/proc_decl_9.f90: New test.
	*gfortran.dg/proc_decl_10.f90: New test.

From-SVN: r130169
2007-11-14 01:06:13 +00:00
Jerry DeLisle
6cc309c923 re PR fortran/33162 (INTRINSIC functions as ACTUAL argument)
2007-11-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/33162
	* decl.c (match_procedure_decl): Remove TODO and allow intrinsics in
	PROCEDURE declarations.  Set attr.untyped to allow the interface to be
	resolved later where the symbol type will be set.
	* interface.c (compare_intr_interfaces): Remove static from pointer
	declarations.  Add type and kind checks for dummy function arguments.
	(compare_actual_formal_intr): New function to compare an actual
	argument with an intrinsic function. (gfc_procedures_use): Add check for
	interface that points to an intrinsic function, use the new function.
	* resolve.c (resolve_specific_f0): Resolve the intrinsic interface.
	(resolve_specific_s0): Ditto.

From-SVN: r130168
2007-11-14 00:59:09 +00:00
Sebastian Pop
7cbb9e2902 tree-chrec.h (build_polynomial_chrec): RHS of a chrec should not be of pointer type.
2007-11-13  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-chrec.h (build_polynomial_chrec): RHS of a chrec
	should not be of pointer type.

From-SVN: r130167
2007-11-14 00:41:05 +00:00
GCC Administrator
9732cac401 Daily bump.
From-SVN: r130165
2007-11-14 00:17:16 +00:00
Michael Meissner
a273c72a5d make ix86_sse5_valid_op_p adhere to GNU coding style
From-SVN: r130163
2007-11-14 00:16:45 +00:00
Sterling Augustine
6eb065e62c unwind-dw2-xtensa.c: New.
* config/xtensa/unwind-dw2-xtensa.c: New.
	* config/xtensa/unwind-dw2-xtensa.h: New.
	* config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
	(DWARF2_UNWIND_INFO): Remove.
	(DWARF_FRAME_REGISTERS): Define.
	(EH_RETURN_DATA_REGNO): Define.
	* config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
	(eh_return): New.
	* config/xtensa/t-xtensa (LIB2ADDEH): Define.

Co-Authored-By: Bob Wilson <bob.wilson@acm.org>

From-SVN: r130160
2007-11-13 22:41:50 +00:00
Jakub Jelinek
b423089ec2 invoke.texi: Fix description of -fsched-stalled-insns=0, -fsched-stalled-insns.
* doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
	-fsched-stalled-insns.

From-SVN: r130159
2007-11-13 21:37:16 +01:00
Paul Thomas
e73d166e6f re PR fortran/34080 (Transfer was working, now broken)
2007-11-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34080
	* iresolve.c (gfc_resolve_transfer): Do not try to convert
	to a constant MOLD expression, if it is an assumed size
	dummy.

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

	PR fortran/34080
	* gfortran.dg/transfer_assumed_size_1.f90: New test.

From-SVN: r130158
2007-11-13 20:33:21 +00:00
Samuel Tardieu
66beb09b04 sem_prag.adb (Process_Convention): Move the test for the entity on which the Convention pragma applies down to...
gcc/ada/
	* sem_prag.adb (Process_Convention): Move the test for the
	entity on which the Convention pragma applies down to also
	forbid pragma Convention on enumeration literals reached
	through renamings.

From-SVN: r130155
2007-11-13 19:12:57 +00:00
Jakub Jelinek
046e407180 re PR c++/34054 (ICE with parameter pack in return type)
PR c++/34054
	PR c++/34056
	PR c++/34057
	PR c++/34058
	PR c++/34060
	* pt.c (find_parameter_packs_r): If ppd->set_packs_to_error,
	set to error_mark_node the outermost POINTER_TYPE to the pack if
	it is seen in a POINTER_TYPE.
	(push_template_decl_real): If check_for_bare_parameter_packs
	fails for function return type, set the return type to
	integer_type_node.  If check_for_bare_parameter_packs failed
	for non-function, return error_mark_node.

	* g++.dg/parse/crash36.C: Add another dg-error.
	* g++.dg/cpp0x/pr34054.C: New test.
	* g++.dg/cpp0x/pr34056.C: New test.
	* g++.dg/cpp0x/pr34057.C: New test.
	* g++.dg/cpp0x/pr34058.C: New test.
	* g++.dg/cpp0x/pr34060.C: New test.

From-SVN: r130152
2007-11-13 19:27:09 +01:00
Jakub Jelinek
f6ee9faefc re PR tree-optimization/34063 (ICE: build2_stat, at tree.c:3115)
PR tree-optimization/34063
	* tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
	as first chrec_fold_plus operand rather than second.

	* g++.dg/tree-ssa/pr34063.C: New test.

From-SVN: r130151
2007-11-13 19:23:03 +01:00
Diego Novillo
d770555138 pr 33870
pr 33870
	* tree.h (strcut tree_memory_tag): add field unpartitionable.
	remove field in_nested_struct.
	(struct tree_struct_field_tag): add field nesting_level.
	(sft_in_nested_struct): remove.
	(sft_nesting_level): define.
	(sft_unpartitionable_p): define.
	* tree-ssa-alias.c (mem_sym_score): if mp->var is not
	partitionable, return long_max.
	(compute_memory_partitions): do not partition sfts marked
	unpartitionable.
	(create_sft): add argument nesting_level.  set
	sft_nesting_level with it.  update all users.
	(create_overlap_variables_for): show nesting level.
	* tree-dfa.c (dump_subvars_for): likewise.
	(dump_variable): likewise.
	show whether the sft is partitionable or not.
	* tree-flow.h (struct fieldoff): remove field
	in_nested_struct.
	add field nesting_level.
	* tree-ssa-structalias.c (struct variable_info): remove
	field in_nested_struct.
	(push_fields_onto_fieldstack): add argument
	nesting_level.  update all users.
	update documentation.
	update pair->nesting_level with nesting_level.
	make recursive calls with nesting_level + 1.
	(set_uids_in_ptset): if an sft is added to the points-to
	set, mark it as unpartitionable.
	* tree-ssa-operands.c (ref_nesting_level): new.
	(add_vars_for_offset): call it.
	add argument full_ref.  update
	callers.
	if var is inside a nested structure and the nesting level
	of full_ref is lower than the nesting level of var,
	adjust offset by the offset of var.

testsuite/ChangeLog
	
	PR 33870
	* gcc.c-torture/execute/pr33870-1.c: New test.
	* gcc.dg/tree-ssa/alias-16.c: New test.

From-SVN: r130141
2007-11-13 10:20:40 -05:00
Samuel Tardieu
0e506c4b4f a-tasatt.adb: Add a comment at the beginning of the package explaining why in general...
gcc/ada/
	* a-tasatt.adb: Add a comment at the beginning of the package
	explaining why in general 'Unchecked_Access must be used instead
	of 'Access.

From-SVN: r130139
2007-11-13 14:11:18 +00:00