* builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments.
testsuite:
* gcc.dg/torture/builtin-minmax-1.c: Test NaN in fmin/fmax.
Don't ever inline the testcase.
From-SVN: r119224
PR fortran/29892
* trans-intrinsic.c (gfc_conv_intrinsic_bound): Use a locus in
the call to gfc_trans_runtime_check.
* trans-array.c (gfc_trans_array_bound_check): Try harder to find
the variable or function name for the runtime error message.
(gfc_trans_dummy_array_bias): Use a locus in the call to
gfc_trans_runtime_check
From-SVN: r119223
2006-11-26 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/29385 (2nd part, based on an idea by Ion Gaztanaga)
* include/bits/stl_tree.h (_Rb_tree<>::_M_equal_range): Add.
(equal_range(const key_type&)): Use it.
2006-11-26 Paolo Carlini <pcarlini@suse.de>
* testsuite/23_containers/multiset/operations/1.cc: New.
* testsuite/23_containers/set/operations/1.cc: Likewise.
* testsuite/23_containers/multimap/operations/1.cc: Likewise.
* testsuite/23_containers/map/operations/1.cc: Likewise.
From-SVN: r119221
2006-11-26 Razya Ladklesky <razya@il.ibm.com>
PR tree-optimization/29122
* tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME
for the new version. Assign NULL to DECL_RTL of the new version.
From-SVN: r119220
2006-11-26 Andrew Pinski <pinskia@gmail.com>
* trans-decl.c (gfc_build_intrinsic_function_decls): Mark the
pow functions as constant functions.
From-SVN: r119219
2006-11-25 Andrew Pinski <pinskia@gmail.com>
PR fortran/29951
* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Change to
call memcpy instead of creating a VIEW_CONVERT_EXRP.
2006-11-25 Andrew Pinski <pinskia@gmail.com>
PR fortran/29951
* gfortran.fortran-torture/execute/transfer2.f90: New test
From-SVN: r119211
* cse.c (cse_altered): Remove.
(record_jump_equiv): Make true/false argument a bool instead
of an int.
(cse_insn): Don't set cse_altered. Use delete_insn_and_edges
where appropriate. Emit a new jump before the existing one
instead of after so that delete_insn_and_edges removes the
dead edges properly. Check any_condjump_p before calling
record_jump_equiv.
(cse_basic_block): Check any_condjump_p before calling
record_jump_equiv.
(cse_main): Don't set/check cse_altered. Remove USE_C_ALLOCA.
From-SVN: r119209
(fprem1xf4): Rename to fprem1xf4_i387.
(fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro.
Rename patterns to fmod<mode>3. Use general_operand operand
constraint for operands 1 and 2. Use SSE_FLOAT_MODE_P to disable
patterns for SSE math.
(remaindersf3, remainderdf3): Ditto.
From-SVN: r119199
* jump.c (mark_all_labels): Work in cfglayout mode.
* cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables
when in cfglayout mode, because there are no dead jumptables
visible.
* cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when
in cfglayout mode.
(commit_edge_insertions): Do not allow insertion of instructions
with control flow insns when in cfglayout mode.
From-SVN: r119191
(X87MODEF): New mode macro.
(ssemodefsuffix): New mode attribute.
(truncxf<mode>2_i387_noop_unspec): New insn pattern.
(sqrt_extend<mode>xf2_i387): New insn pattern.
(sqrt<mode>2): For non-SSE sqrt, emit sqrt_extend<mode>xf2_i387
insn and truncate result back to original mode using
UNSPEC_TRUNC_NOOP truncation.
(*sqrt<mode>2_sse): Implement using SSEMODEF mode macro and
ssemodefsuffix mode attribute.
(*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387)
(*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387)
(*sqrtextenddfxf2_i387): Remove insn patterns.
(fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop
truncation patterns.
reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP.
From-SVN: r119188
2006-11-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/20880
* parse.c (parse_interface): Error if procedure name is that of
encompassing scope.
* resolve.c (resolve_fl_procedure): Error if procedure is
ambiguous.
PR fortran/29387
* interface.c (compare_actual_formal): Add missing condition
that 'where' be present for error that asserts that actual
arguments be definable.
2006-11-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/20880
* gfortran.dg/interface_3.f90: New test.
PR fortran/29387
* gfortran.dg/generic_8.f90: New test.
From-SVN: r119173
* resolve.c (resolve_actual_arglist): Remove the special case for
CHAR.
* intrinsic.c (add_functions): Remove the special case for CHAR.
* gfortran.dg/specifics_1.f90: Remove check for CHAR.
* gfortran.dg/specifics_2.f90: Remove check for CHAR.
* gfortran.dg/specifics_3.f90: Remove.
From-SVN: r119170
2006-11-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/29964
* ipa-pure-const.c (check_tree): If the original tree
is volatile return early and say the function is not pure
nor const. Remove the volatile check for writes.
(analyze_function): Print out the result of the local
analysis pass.
2006-11-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/29964
* gcc.dg/pure-1.c: New test.
From-SVN: r119162
* config/rs6000/eabispe.h (TARGET_DEFAULT): Include
MASK_STRICT_ALIGN.
* config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
* config/rs6000/rs6000.c (rs6000_override_options): Use
MASK_STRICT_ALIGN for 8540 and 8548. Add MASK_STRICT_ALIGN to
POWERPC_MASKS.
From-SVN: r119156
2006-11-23 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-alias.c (tree_pointer_compare): New function.
(compact_name_tags): New function.
(group_aliases): Call compact_name_tags.
From-SVN: r119142
2006-11-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c/9072
* c.opt (Wtraditional-conversion): New.
(Wconversion): Update description.
* c-typeck.c (convert_arguments): Warnings for prototypes causing
type conversions different from what would happen in the absence
of prototype are now handled by Wtraditional-conversion.
* doc/invoke.texi (Wtraditional-conversion): New.
(Wconversion): Update description.
* doc/trouble.texi (Wconversion): Replace Wconversion by
Wtraditional-conversion.
testsuite/
PR c/9072
* gcc.dg/builtin-protos-1.c: Replace Wconversion by
Wtraditional-conversion.
* gcc.dg/overflow-warn-2.c: Likewise.
* gcc.dg/Wconversion.c: Likewise. Renamed as
Wtraditional-conversion.c .
* gcc.dg/Wconversion-2.c: Likewise. Renamed as
Wtraditional-conversion-2.c .
* gcc.dg/dfp/Wconversion-2.c: Likewise. Renamed as
Wtraditional-conversion-2.c
* gcc.dg/Wconversion-negative-constants.c: New.
From-SVN: r119129
2006-11-23 Andrew Pinski <pinskia@gmail.com>
* predict.c (tree_estimate_probability): Check to make
sure current_loops is non null before calling flow_loops_dump.
2006-11-23 Andrew Pinski <pinskia@gmail.com>
* gcc.dg/tree-ssa/dump-1.c: New test.
From-SVN: r119128
gcc:
* config/mips/mips.h (ISA_HAS_FP4): Add MIPS32R2 + 64bit fpu
combination.
(ISA_HAS_MXHC1): True if ISA supports mfhc1 and mthc1 opcodes.
(ASM_SPEC): Pass along -mfp32 and -mfp64.
* config/mips/mips.c (mips_split_64bit_move): Use gen_mthc1 to set
high part of FP register when in 64-bit FP register mode. Similarly
use gen_mfhc1 to load high part of FP register.
(override_options): Allow -mgp32 and -mfp64 combination if
ISA_HAS_MXHC1 (currently for O32 only).
(mips_cannot_change_mode_class): If floating-point registers are
bigger than word size. disallow conversion of float register from a
large integer mode to a float mode smaller than the float register
size.
(mips_class_max_nregs): Handle float registers case seperately.
* config/mips/mips.md (define_constants): Add UNSPEC_MFHC1,
UNSPEC_MTHC1.
(movdi_32bit): Use !TARGET_FLOAT64 in condition pattern.
(movdf_hardfloat_32bit): Similarly.
(movdi_gp32_fp64): New DImode pattern for MIPS32R2 which optionally
support a full 64-bit fpu.
(mthc1): New pattern to generate MTHC1 instruction.
(mfhc1): New pattern to generate MFHC1 instruction.
* doc/invoke.texi (MIPS Options): Document the -mgp32 -mfp64
option for the MIPS32R2 and mention its use under O32 ABI.
gcc/testsuite:
* gcc.target/mips/mips.exp (dg-mips-options): Handle parsing of
-mfp64, allowable when ISA >= 33 and float is enabled.
* gcc.target/mips/mips32r2-mxhc1.c: New test for checking the use
of mthc1 and mfhc1 patterns.
From-SVN: r119124