Keith Seitz [Mon, 30 Jan 2006 21:20:40 +0000 (21:20 +0000)]
java-interp.h (insn_index): New declaration.
* include/java-interp.h (insn_index): New declaration.
(num_insn_slots): New private variable.
(get_line_table): New declaration.
* interpret.cc (insn_index): New function.
(get_line_table): New function.
Steve Ellcey [Mon, 30 Jan 2006 17:06:16 +0000 (17:06 +0000)]
re PR testsuite/25318 (g++.dg/other/pr22003.C (test for excess errors) fails)
PR testsuite/25318
* lib/target-supports.exp (check_effective_target_freorder):
Check to see if target supports -freorder-blocks-and-partition.
* g++.dg/other/pr22003.C: Use "dg-require-effective-target freorder"
instead of "dg-require-named-sections".
J"orn Rennecke [Mon, 30 Jan 2006 15:07:43 +0000 (15:07 +0000)]
re PR target/14798 (In case of SH target with -O2 option #pragma interrupt doesn't get resetted.)
PR target/14798:
gcc:
* sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
(pragma_trap, pragma_nosave_low_regs): Likewise.
(current_function_anonymous_args): Likewise.
(sh_deferred_function_attributes): New variable.
(sh_deferred_function_attributes_tail): Likewise.
(print_operand): For '@', look up trap_exit attribute.
(calc_live_regs): Look up trapa_handler attribute. For trapa
handlers, save/restore fpscr, but don't do any other
interrupt-specific saves.
Don't save r0..r7 if the nosave_low_regs attribute is in effect.
Fix check for partially saved registers to check for SHmedia.
(sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
(sh_output_function_epilogue): Don't clear any of the removed
variables.
(sh_insert_attributes): Don't check pragma_interrupt.
Insert deferred attributes. Check that interrupt attribute is
present for other attributes that require its presence.
(sh_attribute_table): Add new attributes trapa_handler and
nosave_low_regs.
(sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
Don't check for pragma_interrupt. Don't store argument.
* sh.h (pragma_interrupt, sp_switch): Don't declare.
(sh_deferred_function_attributes): Declare.
(sh_deferred_function_attributes_tail): Likewise.
* sh.md (sp_switch_1): Add operand. Change generator caller.
(sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
(*return_i): Don't use when trap_exit attribute is in effect.
(*return_trapa): New insn pattern.
* sh-c.c: New file.
* config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
setting c_target_objs and cxx_target_objs.
* t-sh: Add rule for sh-c.o.
gcc/testsuite:
* gcc.dg/pragma-isr.c: Added target sh[1234ble]*-*-*.
* gcc.dg/pragma-isr2.c, gcc.dg/pragma-isr-trapa.c: New tests.
* gcc.dg/pragma-isr-trapa2.c: Likewise.
* gcc.dg/pragma-isr-nosave_low_regs.c: Likewise.
* gcc.dg/pragma-isr-trap_exit.c: Likewise.
* gcc.dg/attr-isr.c, gcc.dg/attr-isr-trapa.c: Likewise.
* gcc.dg/attr-isr-trap_exit.c: Likewise.
* gcc.dg/attr-isr-nosave_low_regs.c: Likewise.
Eric Botcazou [Sun, 29 Jan 2006 22:23:10 +0000 (22:23 +0000)]
Revert
2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
* tree.c (build_qualified_type): Chain the new type to the original
type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
a POINTER_TYPE or a REFERENCE_TYPE respectively.
(build_pointer_type_for_mode): Only return unqualified types.
(build_reference_type_for_mode): Likewise.
Paul Thomas [Sun, 29 Jan 2006 16:31:24 +0000 (16:31 +0000)]
re PR fortran/18578 (intent(inout) violation is not detected)
2006-01-29 Paul Thomas <pault@gcc.gnu.org>
PR fortran/18578
PR fortran/18579
PR fortran/20857
PR fortran/20885
* interface.c (compare_actual_formal): Error for INTENT(OUT or INOUT)
if actual argument is not a variable.
Paul Thomas [Sun, 29 Jan 2006 06:08:07 +0000 (06:08 +0000)]
[multiple changes]
2006-01-28 Paul Thomas <pault@gcc.gnu.org>
PR fortran/17911
* expr.c (gfc_check_assign, gfc_check_pointer_assign): Emit error if
the lvalue is a use associated procedure.
PR fortran/20895
PR fortran/25030
* expr.c (gfc_check_pointer_assign): Emit error if lvalue and rvalue
character lengths are not the same. Use gfc_dep_compare_expr for the
comparison.
* gfortran.h: Add prototype for gfc_dep_compare_expr.
* dependency.h: Remove prototype for gfc_dep_compare_expr.
2006-01-29 Paul Thomas <pault@gcc.gnu.org>
PR fortran/17911
* gfortran.dg/procedure_lvalue.f90: New test.
PR fortran/20895
PR fortran/25030
* gfortran.dg/char_pointer_assign_2.f90: New test.
* gfortran.dg/char_result_1.f90: Correct unequal charlen pointer
assignment to be consistent with standard.
* gfortran.dg/char_result_2.f90: The same.
* gfortran.dg/char_result_8.f90: The same.
Zack Weinberg [Sun, 29 Jan 2006 03:30:47 +0000 (03:30 +0000)]
c.opt: Add -W(no-)overlength-strings.
gcc:
* c.opt: Add -W(no-)overlength-strings.
* doc/invoke.texi: Document it.
* c-opts.c (c_common_handle_option): -pedantic implies
-Woverlength-strings, if not explicitly disabled already.
(c_common_post_options): -Woverlength-strings defaults to off, and
is always off for C++.
* c-common.c (fix_string_type): Issue warning about strings longer
than is portable only if warn_overlength_strings. Rearrange code
a little for clarity.
* configure.in: Check for -Wno-overlength-strings as well before
enabling -pedantic in stage 1.
* Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
(gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
* genconditions.c (write_header, write_one_condition)
(write_conditions, write_writer): Consolidate very long strings
that were broken up to fit in C89 portable limit. Don't use
printf when fputs will do.
Kazu Hirata [Sat, 28 Jan 2006 22:05:40 +0000 (22:05 +0000)]
integrate.h: Remove the prototype for copy_decl_for_inlining.
* integrate.h: Remove the prototype for
copy_decl_for_inlining.
* rtl.h: Remove the prototype for mark_constant_function.
* tree-vectorizer.h: Remove the prototype for
vect_strip_conversion.
Mark Mitchell [Sat, 28 Jan 2006 19:28:01 +0000 (19:28 +0000)]
re PR c++/25855 (template specialisation not always found (partial ordering))
PR c++/25855
* class.c (resolve_address_of_overloaded_function): Adjust use of
return value from most_specialized_instantiation.
* pt.c (determine_specialization): Avoid multiple calls to
get_bindings.
(most_specialized_instantiation): When a tie occurs, set the
current presumed champion to the next template. Return the
TREE_LIST node containing the template, rather than the template
itself.
(most_specialized): Remove.
* name-lookup.c (push_overloaded_decl): When duplicate_decls
indicates a failed redeclaration, report that to callers.
PR c++/25855
* g++.dg/template/spec29.C: New test.
Daniel Berlin [Fri, 27 Jan 2006 22:23:32 +0000 (22:23 +0000)]
re PR rtl-optimization/24762 ([killloop-branch] code motion of non-invariant expressions with hard registers.)
2006-01-27 Daniel Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
PR rtl-optimization/24762
* doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
* targhooks.c (hook_void_bitmap): New hook prototype.
* targhoohs.h (hook_void_bitmap): Ditto.
* bitmap.h (bitmap_head_def): Moved to coretypes.h.
* coretypes.h (bitmap_head_def): Moved from bitmap.h.
* target.h (live_on_entry): New function pointer.
* df-scan.c (df_all_hard_regs): Removed.
(df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
(df_scan_free_internal): Added df->entry_block_defs.
(df_scan_alloc): Ditto.
(df_scan_dump): Ditto.
(df_uses_record): Plumbed flag field properly thru calls.
Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
This part fixes PR24762.
(df_bb_refs_record): Added code to make the frame and arg
pointers live in EH blocks.
(df_refs_record): Added call to df_record_entry_block_defs.
(df_record_entry_block_defs): New function.
* df-core.c: Added comments to describe new artifical defs.
* df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
(entry_block_defs): New field in struct df.
(df_all_hard_regs): Deleted.
* target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
* df-problems.c (df_ru_bb_local_compute_process_def):
Added code to handle artifical defs in the entry to a function.
(df_ru_bb_local_compute): Ditto.
(df_rd_bb_local_compute_process_def): Ditto.
(df_rd_bb_local_compute): Ditto.
(df_lr_bb_local_compute): Ditto.
(df_ur_bb_local_compute): Ditto.
(df_urec_bb_local_compute): Ditto.
(df_chain_create_bb): Ditto.
(df_ur_local_finalize): Removed entry.
(df_urec_init): Ditto.
(df_urec_local_finalize): Ditto.
(df_ri_bb_compute): Added detection of last use of pseudos.
* Makefile.in (df-scan.o): Updated dependencies.
* config/mips/mips-protos.h (mips_set_live_on_entry): Added.
* config/mips/mips.c (mips_set_live_on_entry): Added.
* config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
for target hook.
* dce.c (marked_insn_p): Added code to handle artifical defs.
Jakub Jelinek [Fri, 27 Jan 2006 20:01:55 +0000 (21:01 +0100)]
re PR fortran/25324 (Wrong DW_TAG_compile_unit generated when compiling preprocessed fortran code)
PR fortran/25324
* Make-lang.in (fortran/scanner.o): Depend on toplev.h.
* lang.opt (fpreprocessed): New option.
* scanner.c: Include toplev.h.
(gfc_src_file, gfc_src_preprocessor_lines): New variables.
(preprocessor_line): Unescape filename if there were any
backslashes.
(load_file): If initial and gfc_src_file is not NULL,
use it rather than opening the file. If gfc_src_preprocessor_lines
has non-NULL elements, pass it to preprocessor_line.
(unescape_filename, gfc_read_orig_filename): New functions.
* gfortran.h (gfc_option_t): Add flag_preprocessed.
(gfc_read_orig_filename): New prototype.
* options.c (gfc_init_options): Clear flag_preprocessed.
(gfc_post_options): If flag_preprocessed, call
gfc_read_orig_filename.
(gfc_handle_option): Handle OPT_fpreprocessed.
* lang-specs.h: Pass -fpreprocessed to f951 if preprocessing
sources.
Jakub Jelinek [Fri, 27 Jan 2006 19:59:49 +0000 (20:59 +0100)]
[multiple changes]
2006-01-27 Jakub Jelinek <jakub@redhat.com>
PR target/25864
* libgcc-std.ver: Add GCC_4.1.0 symbol version.
* config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
-mno-minimal-toc to previous content.
(bispecs): Remove goal.
* config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
* config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
compatibility aliases on powerpc-*-*gnu*.
* config/rs6000/libgcc-ppc-glibc.ver: New file.
* config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
(TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
(ldblspecs): New goal.
* config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
* mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
_df_to_tf.
* config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
L_sf_to_tf or L_df_to_tf is defined.
2006-01-27 David Edelsohn <edelsohn@gnu.org>
Alan Modra <amodra@bigpond.net.au>
PR target/25864
* config/rs6000/linux.h (POWERPC_LINUX): Define.
* config/rs6000/linux64.h (POWERPC_LINUX): Define.
* config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
* config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
* config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
* config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
(rs6000_override_options): Initialize rs6000_ieeequad.
Initialize TFmode format to ibm_extended_format if not
TARGET_IEEEQUAD.
(rs6000_handle_option): Accept -mabi= ibmlongdouble and
ieeelongdouble.
(rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
(rs6000_return_in_memory): Only return IEEEQUAD in memory.
(function_arg_advance): IBM long double passed in two FPRs, not
split.
(function_arg): IBM long double passed in FPRs.
(rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
(rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
Only multireg GPR aligned.
(rs6000_init_libfuncs): Enable IBM long double functions if not
IEEEQUAD.
(rs6000_generate_compare): Use IBM long double compare if not
TARGET_IEEEQUAD.
* config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
(TARGET_IEEEQUAD): Define.
(CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
not TARGET_IEEEQUAD.
* config/rs6000/rs6000.md: Enable TFmode patterns if
!TARGET_IEEEQUAD.
* config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
* config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
and -mlong-double-128 are incompatible.
* doc/invoke.texi (-mabi): Collect options together. Add
ibmlongdouble and ieeelongdouble.
Alexandre Oliva [Thu, 26 Jan 2006 22:00:28 +0000 (22:00 +0000)]
re PR other/24829 (libobjc testsuite failures)
PR other/24829
PR target/24831
* gthr-dce.h: Do not gthrw-ify pthread_once_init,
pthread_key_delete. From John David Anglin. gthrw-ify
pthread_getunique_np only if it it's not a macro. Delete
UNUSED macro.
(__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
__gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
__gthread_objc_condition_signal, __gthread_key_delete): Add
"__attribute__ ((__unused__))" to unused arguments.
(__gthread_recursive_mutex_init_function): Add missing return.
* gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
gthr-posix95.h: Use macro-based approach for name redirection
on targets missing weakref.
Zack Weinberg [Thu, 26 Jan 2006 21:21:42 +0000 (21:21 +0000)]
genconditions.c (write_header): In generated code...
* genconditions.c (write_header): In generated code, #ifdef out
all includes and fake declarations, except includes of bconfig.h
and system.h, unless GCC_VERSION >= 3001. Do not include
gensupport.h in any case.
(write_conditions): Generate a definition of struct c_test. Add
a comment to the generated #endif.
(write_one_condition): Escape backslashes in string too.
(write_writer): Generated code must escape backslashes and quote
marks (but not newlines) in the strings it writes.
* Makefile.in (build/gencondmd.o): Update dependencies.
Paul Thomas [Thu, 26 Jan 2006 20:19:09 +0000 (20:19 +0000)]
re PR fortran/25964 (NIST regression on fm311.f)
2005-01-26 Paul Thomas <pault@gcc.gnu.org>
PR fortran/25964
* resolve.c (resolve_function): Exclude statement functions from
global reference checking.
PR fortran/25084
PR fortran/20852
PR fortran/25085
PR fortran/25086
* resolve.c (resolve_function): Declare a gfc_symbol to replace the
references through the symtree to the symbol associated with the
function expresion. Give error on reference to an assumed character
length function is defined in an interface or an external function
that is not a dummy argument.
(resolve_symbol): Give error if an assumed character length function
is array-valued, pointer-valued, pure or recursive. Emit warning
that character(*) value functions are obsolescent in F95.
PR fortran/25416
* trans-expr.c (gfc_conv_function_call): The above patch to resolve.c
prevents any assumed character length function call from getting here
except intrinsics such as SPREAD. In this case, ensure that no
segfault occurs from referencing non-existent charlen->length->
expr_type and provide a backend_decl for the charlen from the charlen
of the first actual argument.
Cure temp name confusion.
* trans-expr.c (gfc_get_interface_mapping_array): Change name of
temporary from "parm" to "ifm" to avoid clash with temp coming from
trans-array.c.
2005-01-26 Paul Thomas <pault@gcc.gnu.org>
PR fortran/25964
* gfortran.dg/global_references_2.f90: New test.
PR fortran/25084
PR fortran/20852
PR fortran/25085
PR fortran/25086
* gfortran.dg/assumed_charlen_function_1.f90: New test.
* gfortran.dg/assumed_charlen_function_3.f90: New test.
PR fortran/25416
* gfortran.dg/assumed_charlen_function_2.f90: New test.
Paolo Bonzini [Thu, 26 Jan 2006 18:52:49 +0000 (18:52 +0000)]
configure.in: Set with_gnu_as, with_gnu_ld, with_newlib earlier.
2006-01-26 Paolo Bonzini <bonzini@gnu.org>
* configure.in: Set with_gnu_as, with_gnu_ld, with_newlib earlier.
Set md_exec_prefix. Use ACX_CHECK_INSTALLED_TARGET_TOOL to find
the assembler, linker and binutils.
* configure: Regenerate.
2006-01-26 Paolo Bonzini <bonzini@gnu.org>
* config/acx.m4 (NCN_STRICT_CHECK_TARGET_TOOLS): Test
$with_build_time_tools.
(ACX_PATH_SEP): New.
(ACX_TOOL_DIRS): Move here from the gcc directory.
(ACX_CHECK_INSTALLED_TARGET_TOOL): New.
(GCC_TARGET_TOOL): Do not use a host tool if we found a target tool
with a complete path in either $with_build_time_tools or $exec_prefix.
2006-01-26 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Expect target tools paths to be passed from the toplevel
and wrap the detection into AS_SET_VAR_IF. Extract side-effects out of
AS_SET_VAR_IF.
* acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
Jeff Law [Thu, 26 Jan 2006 17:14:22 +0000 (10:14 -0700)]
re PR ada/25900 (ICE on ACATS cxac004 in Tree-VRP)
PR ada/25900
* tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
with a VR_ANTI_RANGE and the VR_ANTI_RANGEis completely contained
within the VR_RANGE, use the VR_RANGE as the result, not the
VR_ANTI_RANGE.
(adjust_range_with_scev): Reject ranges from SCEV which are out
of bounds for the type.
Paolo Carlini [Thu, 26 Jan 2006 16:04:44 +0000 (16:04 +0000)]
install.html ([Tools you will need beforehand]): Clarify that the de_DE locale is used by configure...
2006-01-26 Paolo Carlini <pcarlini@suse.de>
* docs/html/install.html ([Tools you will need beforehand]):
Clarify that the de_DE locale is used by configure; clarify
that missing localedata leads to skipped tests, not fails.
Paul Brook [Thu, 26 Jan 2006 04:08:39 +0000 (04:08 +0000)]
struct-layout-1.exp: Pass -e to generator program on short-enum targets.
2006-01-26 Paul Brook <paul@codesourcery.com>
* gcc.dg/compat/struct-layout-1.exp: Pass -e to generator program
on short-enum targets.
* gcc.dg/compat/struct-layout-1_generate.c (short_enums): New
variable.
(generate_fields): Use short_enums.
(main): Set short_enums. Document -e.
* g++.dg/compat/struct-layout-1.exp: Pass -e to generator program
on short-enum targets.
* g++.dg/compat/struct-layout-1_generate.c (short_enums): New
variable.
(generate_fields): Use short_enums.
(main): Set short_enums. Document -e.
* lib/target-supports.exp (check_effective_target_short_enums): New.
re PR target/25947 (Unrecognizable insn ICE for readline-5.1 in rl_vi_complete)
PR target/25947
* config/cris/cris.c (cris_order_for_addsi3): New function.
* config/cris/cris-protos.h: Prototype it.
* config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
(split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
(split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
(split for "op.S1 [rx=rx+i],ry (swapped)")
(split for "op(s|u).S1 [rx=rx+i],ry")
(split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
Apply cris_order_for_addsi3 when generating addsi3 insns.
Roger Sayle [Thu, 26 Jan 2006 02:48:01 +0000 (02:48 +0000)]
re PR rtl-optimization/25703 (ACATS cxa4024 failure)
PR rtl-optimization/25703
* combine.c (try_combine): Handle zero_extract and strict_low_part
of non-lowpart SUBREGs for constant reg_subword_p set optimization.
* gcc.target/i386/20060125-1.c: New test case.
* gcc.target/i386/20060125-2.c: New test case.
Erik Edelmann [Wed, 25 Jan 2006 20:46:29 +0000 (20:46 +0000)]
re PR fortran/25716 (FAIL: gfortran.dg/char_result_11.f90 -O (test for excess errors))
fortran/
2005-01-25 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/25716
* symbol.c (free_old_symbol): New function.
(gfc_commit_symbols): Use it.
(gfc_commit_symbol): New function.
(gfc_use_derived): Use it.
* gfortran.h: Add prototype for gfc_commit_symbol.
* intrinsic.c (gfc_find_function): Search in 'conversion'
if not found in 'functions'.
(gfc_convert_type_warn): Add a symtree to the new
expression node, and commit the new symtree->n.sym.
* resolve.c (gfc_resolve_index): Make sure typespec is
properly initialized.
testsuite/
2005-01-25 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/25716
* gfortran.dg/char_result_11.f90: Make it sensitive to PR
25716 on 32-bit systems too.