Olivier Hainque [Tue, 24 Jun 2008 13:01:11 +0000 (13:01 +0000)]
gengtype.c (srcdir_len): size_t instead of int.
2008-06-24 Olivier Hainque <hainque@adacore.com>
Nicolas Roche <roche@adacore.com>
* gengtype.c (srcdir_len): size_t instead of int.
(get_file_realbasename): New function. For F a filename, the real
basename of F, with all the path components stripped.
(get_file_srcdir_relative_path): New function. For F a filename, the
relative path to F from $(srcdir).
(get_file_basename): Rewrite using get_file_srcdir_relative_path and
get_file_realbasename. Adjust the head comment.
(get_prefix_langdir_index): New function. For F a filename, return the
lang_dir_names[] relative index of the language directory that is
a prefix in F.
(get_file_langdir): For F a filename, return the name of the language
directory where F is located.
(get_file_gtfilename): New function. The gt- output file name for an
input filename F.
(get_output_file_with_visibility): Replace in-line computations with
uses of get_file_gtfilename and get_prefix_langdir_index.
* Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
Co-Authored-By: Nicolas Roche <roche@adacore.com>
From-SVN: r137070
Uros Bizjak [Mon, 23 Jun 2008 07:06:35 +0000 (09:06 +0200)]
i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P together with SSE_TARGET_MATH to disable insn pattern.
* config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
together with SSE_TARGET_MATH to disable insn pattern.
(*fop_<MODEF:mode>_2_i387): Ditto.
(*fop_<MODEF:mode>_3_i387): Ditto.
PR middle-end/34906
* gimplify.c (gimplify_asm_expr): Check the return code of
parse_output_constraint call, set function return and is_inout
value if it failed.
Paolo Carlini [Sun, 22 Jun 2008 13:57:06 +0000 (13:57 +0000)]
move.h (swap(_Tp (&)[_Nm], _Tp (&)[_Nm])): Add, per DR 809.
2008-06-22 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/move.h (swap(_Tp (&)[_Nm], _Tp (&)[_Nm])): Add,
per DR 809.
* include/bits/algorithmfwd.h: Add.
* doc/xml/manual/intro.xml: Add an entry for DR 809.
* testsuite/25_algorithms/swap/dr809.cc: New.
Bernhard Fischer [Fri, 20 Jun 2008 08:30:26 +0000 (10:30 +0200)]
tree-ssa-pre.c: Fix typo in comment.
2008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
* tree-ssa-pre.c: Fix typo in comment.
(init_antic, fini_antic): Add explicit funtions for
initializing and deinitializing ANTIC and AVAIL sets.
(create_expression_by_pieces): Fix typo in comment.
Remove redundant set of new_stuff and use NULL_TREE instead of
NULL.
(execute_pre): Eventually dump details about ANTIC_IN.
cgraphunit.c (cgraph_finalize_function): Remove redundant setting of node->decl.
2008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
* cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
node->decl.
(cgraph_expand_function): Use local copy of decl.
(cgraph_expand_all_functions): Remove redundant initialization of
order_pos.
(cgraph_optimize): Reword internal_error message.
Andy Hutchinson [Wed, 18 Jun 2008 22:11:05 +0000 (22:11 +0000)]
forwprop-6.c: Use long or int to match size of float.
* gcc.dg/tree-ssa/forwprop-6.c: Use long or int to match size of float. Otherwise error.
* gcc.dg/tree-ssa/ssa-fre-7.c: Ditto.
* gcc.dg/tree-ssa/ssa-fre-8.c: Ditto.
Andy Hutchinson [Wed, 18 Jun 2008 21:41:13 +0000 (21:41 +0000)]
limits-fndefn.c: Skip for AVR.
* gcc.c-torture/compile/limits-fndefn.c: Skip for AVR.
* gcc.dg/builtins-config.h: Use standard independent __AVR__ symbol.
* gcc.dg/cdce1.c: Skip for AVR.
* gcc.dg/cdce2.c: Ditto.
* gcc.dg/fold-bitand-1.c: Ignore warnings such as alignment.
* gcc.dg/fold-eqandshift-3.c: Use long on AVR.
* gcc.dg/fold-overflow-1.c: Skip for AVR.
* gcc.dg/multiple-overflow-warn-3.c: Use target independent macro for ms bit position.
* gcc.dg/pch/struct-1.c: Allow for target without 32 bit int.
* gcc.dg/tree-ssa/pr33920.c: Add warning check for AVR.
* gcc.dg/ucnid-5.c: Skip for AVR.
* gcc.dg/Wconversion-5.c: Mark warning xfail for AVR target.
* gcc.dg/Wconversion-real-integer.c: Skip for AVR.
* gcc.dg/Wconversion-real.c: Ditto.
* gcc.dg/wtr-conversion-1.c: Add warning test for AVR.
* gcc.dg/utf-cvt.c: Skip tests and mark excess xfail for AVR.
* gcc.dg/Wtype-limits-Wextra.c: Ditto.
* gcc.dg/Wtype-limits.c: Ditto.
Ulrich Weigand [Wed, 18 Jun 2008 20:49:12 +0000 (20:49 +0000)]
targhooks.h (struct gcc_target): New member unwind_word_mode.
* targhooks.h (struct gcc_target): New member unwind_word_mode.
(default_unwind_word_mode): Add prototype.
* targhooks.c (default_unwind_word_mode): New function.
(default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
instead of word_mode.
* target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
(TARGET_INITIALIZER): Use it.
* c-common.c (handle_mode_attribute): Support "unwind_word"
mode attribute.
* unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
* except.c (init_eh): Use targetm.unwind_word_mode () instead of
word_mode to access SjLj_Function_Context member "data".
(sjlj_emit_dispatch_table): Likewise. Also, perform type
conversion from targetm.eh_return_filter_mode () to
targetm.unwind_word_mode () if they differ.
* builtin-types.def (BT_UNWINDWORD): New primitive type.
(BT_FN_UNWINDWORD_PTR): New function type.
(BT_FN_WORD_PTR): Remove.
* builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
* except.c (expand_builtin_extend_pointer): Convert pointer to
targetm.unwind_word_mode () instead of word_mode.
* config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
* config/spu/spu.c (spu_eh_return_filter_mode): Remove.
(spu_unwind_word_mode): New function.
(TARGET_EH_RETURN_FILTER_MODE): Do not define.
(TARGET_UNWIND_WORD_MODE): Define.
* config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
Jan Hubicka [Wed, 18 Jun 2008 19:07:51 +0000 (21:07 +0200)]
c-opts.c (c_common_post_options): PCH is not compatible with no-unit-at-a-time.
* c-opts.c (c_common_post_options): PCH is not compatible with
no-unit-at-a-time.
* opts.c (handle_options): Enable unit-at-a-time at O0 along with
-fno-toplevel-reorder by default now.
* gcc.dg/weak/weak-2.c: We no longer complain about incompatibilty.
* gcc.dg/weak/weak-3.c: We no longer complain about incompatibilty.
* gcc.dg/weak/weak-4.c: We no longer complain about incompatibilty.
* gcc.dg/weak/weak-5.c: We no longer complain about incompatibilty.
* gcc.dg/weak/weak-6.c: Fix thinko in previous change.
* gcc.dg/weak/weak-7.c: Likewise.
Uros Bizjak [Wed, 18 Jun 2008 17:16:05 +0000 (19:16 +0200)]
re PR rtl-optimization/35604 (Label references are not updated after edge insertion)
PR rtl-optimization/35604
* jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
only want to change jump destinations, not eventual label comparisons.
Jan Hubicka [Wed, 18 Jun 2008 14:07:00 +0000 (16:07 +0200)]
cgraphunit.c (cgraph_expand_pending_functions): Give up at syntax errors.
* cgraphunit.c (cgraph_expand_pending_functions): Give up at
syntax errors.
(cgraph_analyze_function): Likewise.
* gcc.dg/asm-wide-1.c: Do not require extra errors we output
confused by earlier errors.
* gcc.target/i386/sseregparm-2.c: Remove markers for errors not
output at parsing time.
* gcc.target/i386/sseregparm-8.c: Move here compile time errors
from gcc.target/i386/sseregparm-2.c.
* gcc.dg/weak/weak-6.c: Do not require extra errors we output
confused by earlier errors.
* gcc.dg/weak/weak-7.c: Likewise.
Daniel Kraft [Wed, 18 Jun 2008 13:53:32 +0000 (15:53 +0200)]
PR fortran/36517, fortran/36492
2008-06-18 Daniel Kraft <d@domob.eu>
PR fortran/36517, fortran/36492
* gfortran.dg/array_constructor_25.f03: New test.
* gfortran.dg/array_constructor_26.f03: New test.
* gfortran.dg/array_constructor_27.f03: New test.
* gfortran.dg/array_constructor_28.f03: New test.
* gfortran.dg/array_constructor_29.f03: New test.
* gfortran.dg/array_constructor_30.f03: New test.
* gfortran.dg/array_constructor_type_19.f03: New test.
* gfortran.dg/array_constructor_type_20.f03: New test.
* gfortran.dg/array_constructor_type_21.f03: New test.
2008-06-18 Daniel Kraft <d@domob.eu>
PR fortran/36517, fortran/36492
* array.c (gfc_resolve_character_array_constructor): Call
gfc_set_constant_character_len with changed length-chec argument.
* decl.c (gfc_set_constant_character_len): Changed array argument to
be a generic length-checking argument that can be used for correct
checking with typespec and in special cases where the should-be length
is different from the target length.
(build_struct): Call gfc_set_constant_character_len with changed length
checking argument and introduced additional checks for exceptional
conditions on invalid code.
(add_init_expr_to_sym), (do_parm): Call gfc_set_constant_character_len
with changed argument.
* match.h (gfc_set_constant_character_len): Changed third argument to
int for the should-be length rather than bool.
Maxim Kuvyrkov [Wed, 18 Jun 2008 07:39:45 +0000 (07:39 +0000)]
mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE from it.
* config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
from it.
(ISA_HAS_FP_CONDMOVE): New macro.
(ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
(ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
(ISA_HAS_NMADD3_NMSUB3): New macro.
* config/mips/mips.c (mips_rtx_costs): Update.
* config/mips/mips.md (MOVECC): Don't use FP conditional moves when
compiling for ST Loongson 2E/2F.
(madd<mode>): Rename to madd4<mode>. Update.
(madd3<mode>): New pattern.
(msub<mode>): Rename to msub4<mode>. Update.
(msub3<mode>): New pattern.
(nmadd<mode>): Rename to nmadd4<mode>. Update.
(nmadd3<mode>): New pattern.
(nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
(nmadd3<mode>_fastmath): New pattern.
(nmsub<mode>): Rename to nmsub4<mode>. Update.
(nmsub3<mode>): New pattern.
(nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
(nmsub3<mode>_fastmath): New pattern.
(mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
Steven Bosscher [Wed, 18 Jun 2008 05:42:23 +0000 (05:42 +0000)]
df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
* df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
(DF_REF_INSN_INFO): New.
(DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
(DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
with a NULL DF_REF_INSN_INFO.
(DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
DF_INSN_SET.
(DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
DF_INSN_INFO_EQ_USES): New.
(DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
* df-core.c: Update comment for above changes.
(df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
DF_INSN_UID_* macros.
(df_ref_debug): Check for NULL DF_REF_INSN_INFO.
* df-scan.c (df_ref_record): Take a df_insn_info instead of an
insn rtx. Update all callers.
(df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
df_ref_create_structure, df_insn_refs_collect): Likewise.
(df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
* df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
(df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
macros to access the insn refs.
(df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
* fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
(all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
for accessing the refs.
(try_fwprop_subst): Likewise.
* ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
* web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
for accessing the refs.
* loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
(check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
to look at the insn refs.
(record_uses): Likewise.
* dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
function anymore.
(mark_artificial_uses): Don't mark_insn for artificial refs.
(mark_reg_rependencies): Likewise.
* doc/rtl.texi: Remove documentation of ADDRESSOF.
config/
* override.m4: Use m4_version_prereq throughout.
(_AC_ARG_VAR_VALIDATE, AC_MSG_FAILURE): Backport from git
Autoconf: output pwd along with fatal errors, so the right
config.log file is hinted at more prominently.
(PARSE_ARGS): Push setting of ac_pwd in this diversion.
(_GCC_AUTOCONF_VERSION): New, define to 2.59 if not defined.
(_GCC_AUTOCONF_VERSION_CHECK): New macro, require use of Autoconf
version _GCC_AUTOCONF_VERSION throughout the tree.
(m4_wrap): New override, fix for Posix semantics of m4wrap.
Daniel Kraft [Tue, 17 Jun 2008 20:24:20 +0000 (22:24 +0200)]
re PR fortran/36112 (Bounds-checking on character length not working for array-constructors)
2008-06-17 Daniel Kraft <d@domob.eu>
PR fortran/36112
* array.c (gfc_resolve_character_array_constructor): Check that all
elements with constant character length have the same one rather than
fixing it if no typespec is given, emit an error if they don't. Changed
return type to "try" and return FAILURE for the case above.
(gfc_resolve_array_constructor): Removed unneeded call to
gfc_resolve_character_array_constructor in this function.
* gfortran.h (gfc_resolve_character_array_constructor): Returns try.
* trans-array.c (get_array_ctor_strlen): Return length of first element
rather than last element.
* resolve.c (gfc_resolve_expr): Handle FAILURE return from
gfc_resolve_character_array_constructor.
2008-06-17 Daniel Kraft <d@domob.eu>
PR fortran/36112
* gfortran.dg/bounds_check_array_ctor_1.f90: New test.
* gfortran.dg/bounds_check_array_ctor_2.f90: New test.
* gfortran.dg/bounds_check_array_ctor_3.f90: New test.
* gfortran.dg/bounds_check_array_ctor_4.f90: New test.
* gfortran.dg/bounds_check_array_ctor_5.f90: New test.
* gfortran.dg/bounds_check_array_ctor_6.f90: New test.
* gfortran.dg/bounds_check_array_ctor_7.f90: New test.
* gfortran.dg/bounds_check_array_ctor_8.f90: New test.
* gfortran.dg/arrayio_0.f90: Fixed invalid array constructor.
* gfortran.dg/char_cons_len.f90: Ditto.
* gfortran.dg/char_initializer_actual.f90: Ditto.
* gfortran.dg/pr15959.f90: Ditto.
* gfortran.dg/transfer_simplify_2.f90: Ditto.
* gfortran.dg/char_length_1.f90: Changed expected error messages.
Paul Thomas [Tue, 17 Jun 2008 18:08:24 +0000 (18:08 +0000)]
re PR fortran/34396 (Length of substrings defined by expressions not correctly computed in constructors)
2008-06-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34396
* resolve.c (add_dt_to_dt_list): New function.
(resolve_fl_derived): Call new function for pointer components
and when derived type resolved.
2008-06-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/36366
* gfortran.dg/used_types_20.f90: New test.