2007-05-12 Richard Guenther <rguenther@suse.de>
PR tree-optimization/31797
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
propagate into a stmt that has volatile ops.
* gcc.c-torture/compile/pr31797.c: New testcase.
From-SVN: r124637
gcc/
* configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
(gcc_tooldir): Likewise.
* configure: Regenerate.
* Makefile.in (libsubdir_to_prefix): New variable, based on the
old configure.ac gcc_tooldir setting.
(prefix_to_exec_prefix): New variable.
(DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
From-SVN: r124634
2007-05-12 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30746
* resolve.c (check_host_association): New function that detects
incorrect host association and corrects it.
(gfc_resolve_expr): Call the new function for variables and
functions.
* match.h : Remove prototype for gfc_match_rvalue.
* gfortran.h : Add prototype for gfc_match_rvalue.
2007-05-12 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30746
* gfortran.dg/host_assoc_function_1.f90: New test.
From-SVN: r124633
* semantics.c (expand_or_defer_fn): Do not call c_record_cdtor_fn.
* decl2.c (start_objects): ctors and dtors are no longer public.
(cp_write_global_declarations): Do not call c_build_cdtor_fns.
* cgraphunit.c: Include gt-cgraphunit.h
(static_ctors, static_dtors): New static vars.
(record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
based on implementation in c-common.c
(cgraph_finalize_function): Call record_cdtor_fn.
(cgraph_optimize): Call cgraph_build_cdtor_fns.
* decl.c (finish_function): Do not call c_record_cdtor_fn.
(c_write_global_declarations): Do not call c_build_cdtor_fns.
* c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
build_cdtor, c_build_cdtor_fns): Remove.
* c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
c_build_cdtor_fns): Remove prototype.
From-SVN: r124618
2007-05-11 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30876
* trans-expr.c (gfc_conv_function_call): Reduce indirection for
direct assignments of recursive array valued functions.
* primary.c (gfc_match_rvalue): Correct error for recursive
function calls such that directly recursive calls of scalar
function without an explicit result are disallowed.
2007-05-11 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30876
* gfortran.dg/recursive_reference_1.f90: Put error at correct
line.
* gfortran.dg/recursive_reference_2.f90: New test.
From-SVN: r124616
2007-05-11 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30878
* resolve.c (resolve_fl_namelist): It is not an error if the
namelist element is the result variable of the enclosing
function. Search for the symbol in current and all parent
namespaces for a potential conflict.
* symbol.c (check_conflict): Remove the conflict between
'in_namelist' and 'FL_PROCEDURE' because the symbol info
is not available to exclude function result variables.
* trans-io.c (nml_get_addr_expr): Use the fake result decl
if the symbol is an implicit result variable.
2007-05-11 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30878
* gfortran.dg/namelist_29.f90: New test.
From-SVN: r124615
2007-05-11 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31474
* decl.c (get_proc_name): If an entry has already been declared
as a module procedure, pick up the symbol and the symtree and
use them for the entry.
2007-05-11 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31474
* gfortran.dg/entry_10.f90: New test.
From-SVN: r124613
PR tree-optimization/31885
* tree-chrec.c (chrec_contains_undetermined): Do not consider NULL_TREE
to be undetermined.
(automatically_generated_chrec_p): Return false for NULL.
* gcc.dg/tree-ssa/loop-29.c: New test.
From-SVN: r124602
gcc/
* config.gcc (sparc-wrs-vxworks): New target.
* config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
* config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
* config/sparc/sparc.h: Include vxworks-dummy.h.
(PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
include LABEL_REFs too.
* config/sparc/sparc.c (sparc_expand_move): Don't assume that
_GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
VxWorks.
(legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
on VxWorks.
(load_pic_register): Use gen_vxworks_load_got for VxWorks.
(sparc_emit_call_insn): New function.
(sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
functions when generating VxWorks PIC.
* config/sparc/sparc.md (vxworks_load_got): New pattern.
(call, call_value): Use sparc_emit_call_insn instead of
emit_call_insn.
libgcc/
* config.host (sparc-wrs-vxworks): New target.
From-SVN: r124595
* config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
for floating-point values if HOST_BITS_PER_LONG > 32. Use split_double
instead of operand_subword.
From-SVN: r124578
* libstdc++-v3/libsupc++/cxxabi.h (_GLIBCXX_NOTHROW): New macro.
(__cxa_atexit): Use it.
* testsuite/lib/libstdc++.exp (v3_target_compile_as_c): For
installed-tree testing, search more include directories.
From-SVN: r124565
2007-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
* typeck.c (build_unary_op): Remove code that used to
handle non lvalue increments/decrements.
From-SVN: r124564
* doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
* optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
(smsub_widen_optab, umsub_widen_optab): Define.
* optabs.c (init_optabs): Initialize smsub_widen_optab and
umsub_widen_optab.
* genopinit.c (optabs): Fill in smsub_widen_optab and
umsub_widen_optab.
* expr.c (expand_expr_real_1): Try to use smsub_widen_optab
and umsub_widen_optab to implement multiply-subtract sequences.
* config/mips/mips.md (*msac<u>_di): Rename to...
(<u>msubsidi4): ...this. Extend condition to include
GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
of operand 0 to "ka" and use the three-operand form of msub<u>
for TARGET_DSPR2.
* config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
to define_expands.
From-SVN: r124558
PR rtl-optimization/28011
* reload.c (push_reload): Set dont_share if IN appears in OUT
also when IN is a PLUS rtx.
(reg_overlap_mentioned_for_reload_p): Return true if X and IN
are same PLUS rtx.
From-SVN: r124557
2007-05-08 Simon Martin <simartin@users.sourceforge.net>
PR 31847
* tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
dumps.
From-SVN: r124551
2007-05-08 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31630
* resolve.c (resolve_symbol): Remove the flagging mechanism from the
formal namespace resolution and instead check that the formal
namespace is not the current namespace.
From-SVN: r124550
2007-05-08 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31692
* trans-array.c (gfc_conv_array_parameter): Convert full array
references to the result of the procedure enclusing the call.
2007-05-08 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31692
* gfortran.dg/actual_array_result_1.f90: New test.
From-SVN: r124546