PR target/41680
* config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow
paradoxical subregs to prevent partial register stalls if the inner
mode is integer mode.
* g++.dg/torture/pr41680.C: New test.
From-SVN: r152667
PR rtl-optimization/41646
* calls.c (expand_call): For BLKmode types returned in registers
avoid likely spilled hard regs in copy_blkmode_from_reg generated
insns.
* gcc.c-torture/compile/pr41646.c: New test.
From-SVN: r152666
PR c++/39863
* pt.c (tsubst_pack_expansion): Don't do anything now if we
have incomplete packs of different lengths.
PR c++/41038
* tree.c (build_qualified_name): Call convert_from_reference.
* pt.c (register_specialization): Push DECL_SOURCE_LOCATION to the
clones.
* decl.c (grok_special_member_properties): Only adjust
TYPE_HAS_COMPLEX_* if the function is defaulted in the class body.
(cp_finish_decl): Push DECL_DELETED_FN/DECL_DEFAULTED_FN to the
clones.
From-SVN: r152538
PR target/22093
* config/alpha/alpha.md (unaligned_storehi_be): Force operand
of plus RTX into register.
testsuite/ChangeLog:
PR target/22093
* gcc.target/alpha/pr22093.c: New test.
From-SVN: r152343
Fix PR debug/41065
gcc/ChangeLog:
PR debug/41065
* function.h (types_used_by_vars_hash): Declare new hash table.
(types_used_by_vars_eq, types_used_by_var_decl_insert): Declare
equality and hash function for the hash table.
(types_used_by_cur_var_decl): Declare a new global chained list.
(types_used_by_var_decl_insert): Declare new function.
* function.c (types_used_by_vars_hash): Define the hashtable ...
(types_used_by_vars_eq, types_used_by_vars_do_hash): ... as well as
its equality and hash functions.
(hash_types_used_by_vars_entry): New hash helper.
(types_used_by_cur_var_decl): Define the global chained list.
(used_types_insert): Update the list of types used by the global
variable being parsed.
(types_used_by_var_decl_insert): Define new function.
* c-common.h (record_types_used_by_current_var_decl): Declare ...
* c-common.c (record_types_used_by_current_var_decl): ... new
function.
* c-decl.c (finish_decl): Record the types used by the global
variable declaration we've just parsed.
* dwarf2out.c (premark_used_types): Insert a new line between
comment and function.
(premark_used_types_helper): Fix comment.
(premark_types_used_by_global_vars_helper,
premark_types_used_by_global_vars): New functions.
(prune_unused_types): Do not prune types used by global variables.
gcc/cp/ChangeLog:
PR debug/41065
* decl.c (cp_finish_decl): Record the types used by the global
variable declaration we've just parsed.
gcc/testsuite/ChangeLog:
PR debug/41065
* gcc.dg/debug/dwarf2/global-used-types.c: New test.
From-SVN: r152077
PR c/39779
* c-typeck.c (build_binary_op) <short_shift>: Check that integer
constant is more than zero.
testsuite/ChangeLog:
PR c/39779
* gcc.c-torture/compile/pr39779.c: New test.
From-SVN: r152064
2009-09-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Backport from mainline:
PR libgfortran/41328
* io/transfer.c (read_sf): Adjust fbuf position and do proper fbuf reads
to traverse CR, CR-LF, and LF style line ends.Set at_eof flag on short
read if any characters were successfully read so that EOF condition with
no EOR marker succeeds.
From-SVN: r151883
PR c/41049
* real.c decimal_from_integer, decimal_integer_string): New.
(real_from_integer): Use them as special case for decimal float.
* config/dfp-bit.c (_si_to_sd, _usi_to_sd): Use default rounding.
(_di_to_sd, _di_to_dd, _di_to_td, _udi_to_sd, _udi_to_dd, _udi_to_td):
Do not append zero after the decimal point in string to convert.
* dfp/pr41049.c: New test.
From-SVN: r151857
* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Strip
conversions between original and packable version of types from
the expression.
From-SVN: r151758
2009-09-16 Richard Guenther <rguenther@suse.de>
Backport from mainline
2009-09-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/41101
* tree-ssa-pre.c (maximal_set): Remove.
(compute_antic_aux): Treat the maximal set as implicitly all ones.
Defer all blocks we didn't visit at least one successor.
(add_to_exp_gen): Do not add to the maximal set.
(make_values_for_phi): Likewise.
(compute_avail): Likewise.
(init_pre): Do not allocate the maximal set.
(execute_pre): Do not dump it.
* gcc.c-torture/compile/pr41101.c: New testcase.
From-SVN: r151744
2009-09-13 Kai Tietz <kai.tietz@onevision.com>
* config.gcc (i?86-*-mingw* andx86_64-*-mingw*): Set
need_64bit_hwint for x64 case to yes.
* config.host: Set for x86/x64 mingw the
option use_long_long_for_widest_fast_int to yes.
From-SVN: r151671
2009-09-11 Steven G. Kargl <kargl@gcc.gnu.org>
Backport from mainline, r147279:
2009-05-08 Janus Weil <janus@gcc.gnu.org>
PR fortran/39876
* intrinsic.c (gfc_is_intrinsic): Do not add the EXTERNAL attribute if
the symbol is a module procedure.
2009-05-08 Janus Weil <janus@gcc.gnu.org>
PR fortran/39876
* gfortran.dg/intrinsic_3.f90: New.
From-SVN: r151645
2009-09-09 Kai Tietz <kai.tietz@onevision.com>
PR/41315
* config/i386.c (ix86_can_use_return_insn_p): Check for
padding0, too.
(ix86_expand_prologue): Take frame.padding0 into logic of
to_allocate checks.
(ix86_expand_epilogue): Likewise.
From-SVN: r151569
Backport from mainline:
2009-08-27 Uros Bizjak <ubizjak@gmail.com>
PR rtl-optimization/40861
* simplify-rtx.c (simplify_subreg): Do not call simplify_gen_subreg to
extract word from a multi-word subreg for negative byte positions.
testsuite/ChangeLog:
Backport from mainline:
2009-08-27 Uros Bizjak <ubizjak@gmail.com>
PR rtl-optimization/40861
* gcc.dg/pr40861.c: New test.
From-SVN: r151489
2009-09-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/41258
* primary.c (gfc_match_varspec): Do not look for typebound
procedures unless the derived type has a f2k_derived namespace.
2009-09-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/41258
* gfortran.dg/typebound_proc_12.f90 : New test.
From-SVN: r151452
2008-08-25 Paul Thomas <pault@gcc.gnu.org>
PR fortran/41062
* trans-decl.c (gfc_trans_use_stmts): Keep going through use
list if symbol is not use associated.
2008-08-25 Paul Thomas <pault@gcc.gnu.org>
PR fortran/41062
* gfortran.dg/use_only_4.f90: New test.
From-SVN: r151092
2009-08-24 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/41157
* dtime.c (dtime_sub): Fix computing time increment.
* time_1.h: Add <sys/types.h> header. Use RUSAGE_SELF macro instead
of a hardcoded 0.
From-SVN: r151073
2009-08-24 Richard Guenther <rguenther@suse.de>
PR middle-end/41094
* builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
pow(x,y*z) only if x is nonnegative.
* gcc.dg/torture/pr41094.c: New testcase.
* gcc.dg/torture/builtin-power-1.c: Adjust.
* gcc.dg/builtins-10.c: Likewise.
From-SVN: r151051
2009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro.
(s390_z10_fix_long_loop_prediction): New function.
(s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg.
(s390_reorg): Walk over the INSNs and invoke
s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp.
From-SVN: r150956
PR middle-end/41123
* expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds
of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT.
* gcc.dg/pr41123.c: New test.
From-SVN: r150947
2009-08-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40847
* iresolve.c (gfc_resolve_transfer): Correct error in 'mold'
character length for case where length expresson is NULL.
2009-08-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40847
* gfortran.dg/transfer_resolve_1.f90 : New test.
From-SVN: r150810
Backport from mainline:
2009-08-14 Uros Bizjak <ubizjak@gmail.com>
PR target/41019
* config/i386/sse.md (SSEMODE124C8): New mode iterator.
(vcond<SSEMODEF2P:mode>): Assert that operation is supported by
ix86_expand_fp_vcond.
(vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
Assert that operation is supported by ix86_expand_int_vcond.
(vcondu<SSEMODE124C8:mode>): Ditto.
testsuite/ChangeLog:
Backport from mainline:
2009-08-14 Uros Bizjak <ubizjak@gmail.com>
PR target/41019
* gcc.target/i386/pr41019.c: New test.
From-SVN: r150809
Fix for PR debug/37801
gcc/ChangeLog:
* gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on
generating inlined subroutine die only. We shouldn't be
called for anything else.
(gen_block_die): Don't generate inline subroutine debug info for
abstract blocks.
gcc/testsuite/ChangeLog:
* gcc/testsuite/gcc.dg/debug/20020224-1.c: Adjust the comment.
Make sure to trigger inlining optimizations.
* gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c: New test.
From-SVN: r150797
2009-07-28 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-07-30 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/40570
* gcc.c-torture/compile/pr40570.c: New test.
2009-07-29 Richard Guenther <rguenther@suse.de>
PR c++/40834
* g++.dg/torture/pr40834.C: New testcase.
From-SVN: r150487
2009-08-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/40853
* io/list_read.c (nml_get_obj_data): Do not set nl
pointer to first_nl if nl->next is NULL.
From-SVN: r150476
2009-08-04 Dodji Seketeli <dodji@redhat.com>
gcc/cp/ChangeLog:
PR c++/39987
* pt.c (tsubst_default_argument): Let access checks of the
default argument happen in the context of the current function.
gcc/testsuite/ChangeLog:
PR c++/39987
* g++.dg/overload/defarg4.C: New test.
From-SVN: r150468
PR c++/40948
* init.c (build_vec_init): Look through a TARGET_EXPR around a
CONSTRUCTOR.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r150395
2009-07-30 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
(U, W): Constraints are now deprecated and will be removed if we
run out of letters.
* config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
the file.
("prefetch"): Add the stcmh instruction for prefetching.
* config/s390/s390.c (s390_symref_operand_p): Function moved. No
changes.
(s390_short_displacement): Return always true if compiling for
machines not providing the long displacement facility.
(s390_mem_constraint): Support the new constraint letter Z.
(s390_check_qrst_address): New function.
From-SVN: r150258
2009-07-29 Tobias Burnus <burnus@net-b.de>
PR fortran/40851
* resolve.c (resolve_symbol): Do not initialize pointer
* derived-types.
* trans-decl.c (init_intent_out_dt): Ditto.
(generate_local_decl): No need to set attr.referenced for DT pointers.
2009-07-29 Tobias Burnus <burnus@net-b.de>
PR fortran/40851
* gfortran.dg/derived_init_3.f90: New test.
From-SVN: r150203
PR fortran/40878
* openmp.c (gfc_match_omp_clauses): Use gfc_error_now instead of
gfc_error to diagnose invalid COLLAPSE arguments.
* gfortran.dg/gomp/pr40878-1.f90: New test.
* gfortran.dg/gomp/pr40878-2.f90: New test.
From-SVN: r150167
* pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
Cast "1" to unsigned HOST_WIDE_INT.
(compute_zdepdi_operands): Limit maximum length to 64 bits. Limit
deposit length to the maximum length - lsb. Extend length if
HOST_BITS_PER_WIDE_INT is 32.
From-SVN: r150124
gcc/cp/
2009-07-26 Simon Martin <simartin@users.sourceforge.net>
PR c++/40749
* decl.c (grokdeclarator): Do not set TREE_NO_WARNING for functions
with a qualified return type.
gcc/testsuite/
2007-07-26 Simon Martin <simartin@users.sourceforge.net>
PR c++/40749
* g++.dg/warn/Wreturn-type-6.C: New test.
From-SVN: r150099
2009-07-23 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/40727
* fortran/check.c (gfc_check_cmplx, gfc_check_dcmplx): Add check that
the optional second argument isn't of COMPLEX type.
2009-07-23 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/40727
* gfortran.dg/intrinsic_cmplx.f90: New test.
From-SVN: r150036
PR target/40832
* config/i386/i386.c (output_387_ffreep): Rewrite to return
ASM_SHORT instead of .word.
* config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
instead of .word in asm template.
From-SVN: r149995
Backport from mainline:
2009-07-15 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/40710
* resource.c (mark_target_live_regs): Reset DF problem to LR.
From-SVN: r149965
2009-07-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/40321
* tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
PHI nodes to the maximal set.
(make_values_for_phi): Add PHI arguments to the maximal set.
(execute_pre): Dump PHI_GEN and the maximal set.
* gcc.c-torture/compile/pr40321.c: New testcase.
* g++.dg/torture/pr40321.C: Likewise.
From-SVN: r149935
PR tree-optimization/40813
* tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
it.
* g++.dg/opt/inline15.C: New test.
From-SVN: r149858
2009-07-19 Janne Blomqvist <jb@gcc.gnu.org>
Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/40714
* io/transfer.c (finalize_transfer): Set current_record to 0
before returning in case of error.
* io/open.c: Fix spelling in comment.
Co-Authored-By: Jerry DeLisle <jvdelisle@gcc.gnu.org>
From-SVN: r149795
PR middle-end/40747
* fold-const.c (fold_cond_expr_with_comparison): When folding
< and <= to MIN, make sure the MIN uses the same type as the
comparison's operands.
* gcc.c-torture/execute/pr40747.c: New test.
From-SVN: r149681
* gcc.target/i386/sse-recip-vec.c: Move arrays out of test
function to enable vectorization.
* gcc.target/i386/sse2-lrint-vec.c: Ditto.
* gcc.target/i386/sse2-lrintf-vec.c: Ditto.
From-SVN: r149658
2009-07-14 Jack Howarth <howarth@bromo.med.uc.edu>
* testsuite/gcc.c-torture/compile/20000804-1.c: skip for ilp32 on
both i?86-*-darwin* and x86_64-*-darwin*.
From-SVN: r149633
PR rtl-optimization/40667
* defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
* doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
* config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
* config/i386/i386.c (ix86_minimum_alignment): New function.
* config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
* cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
* emit-rtl.c (gen_reg_rtx): Likewise.
* function.c (assign_parms): Likewise. If nominal_type needs
bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
rather than passed_type's alignment.
From-SVN: r149517
PR target/40668
* function.c (assign_parm_setup_stack): Adjust
MEM_OFFSET (data->stack_parm) if promoted_mode is different
from nominal_mode on big endian.
* gcc.c-torture/execute/pr40668.c: New test.
From-SVN: r149512
2009-07-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40440
* trans-expr.c (gfc_conv_procedure_call): Do not deallocate
allocatable components if the argument is a pointer.
2009-07-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40440
* gfortran.dg/alloc_comp_result_2.f90: New test.
From-SVN: r149431
PR middle-end/40669
* tree-tailcall.c (adjust_return_value_with_ops,
create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
if it has complex or vector type.
Backport from mainline:
2009-06-03 Richard Guenther <rguenther@suse.de>
PR middle-end/40328
* fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
* gcc.dg/pr40669.c: New test.
From-SVN: r149329
2009-07-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40551
* dependency.h : Add second bool* argument to prototype of
gfc_full_array_ref_p.
* dependency.c (gfc_full_array_ref_p): If second argument is
present, return true if last dimension of reference is an
element or has unity stride.
* trans-array.c : Add NULL second argument to references to
gfc_full_array_ref_p.
* trans-expr.c : The same, except for;
(gfc_trans_arrayfunc_assign): Return fail if lhs reference
is not a full array or a contiguous section.
2009-07-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40551
* gfortran.dg/func_assign_2.f90 : New test.
From-SVN: r149261
* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): For integer
maxloc initialize limit to -huge-1 rather than just -huge.
* gfortran.dg/maxloc_1.f90: New test.
From-SVN: r149237
2009-07-04 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-07-03 Richard Guenther <rguenther@suse.de>
PR tree-optimization/40640
* gcc.c-torture/compile/pr40640.c: New testcase.
From-SVN: r149231
2009-07-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/40638
* trans-io.c (set_parameter_value): Don't build un-necessary run-time
checks for units of KIND less than 4.
From-SVN: r149218
2009-07-03 Vladimir Makarov <vmakarov@redhat.com>
PR target/40587
* ira.c (build_insn_chain): Use DF_LR_OUT instead of
df_get_live_out.
* testsuite/gfortran.dg/pr40587.f: New test.
From-SVN: r149213
PR c++/40566
* convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
to type arguments that have void type.
* g++.dg/parse/cond5.C: New test.
From-SVN: r149123
* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Do not use
the type of the left operand if it pads a self-referential type when
the right operand is a constructor.
From-SVN: r149116
2009-06-29 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40443
* interface.c (gfc_search_interface): Hold back a match to an
elementary procedure until all other possibilities are
exhausted.
2009-06-29 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40443
* gfortran.dg/generic_18.f90: New test.
From-SVN: r149056
2009-06-29 Richard Guenther <rguenther@suse.de>
PR tree-optimization/40579
* tree-vrp.c (vrp_evaluate_conditional): Bail out early if
the IL to simplify has constants that overflowed.
* gcc.c-torture/execute/pr40579.c: New testcase.
From-SVN: r149051
PR tree-optimization/40550
* tree-vect-generic.c (expand_vector_operations_1): Compute in
vector_compute_type only when the size of vector_compute_type is
less than the size of type.
testsuite/ChangeLog:
PR tree-optimization/40550
* gcc.dg/pr40550.c: New test.
From-SVN: r149027
2009-06-27 Kai Tietz <kai.tietz@onevision.com>
Merged from trunk rev/148061
2009-06-01 Jakub Jelinek <jakub@redhat.com>
PR other/40024
* emutls.c (__emutls_get_address): Change arr->size to mean number
of allocated arr->data entries instead of # of slots + 1.
From-SVN: r149016
2009-06-22 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-06-22 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/40492
* g++.dg/torture/pr40492.C: New test.
From-SVN: r148797
2009-06-20 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/40497
* include/bits/stl_iterator_base_funcs.h (next, prev): Fix the
signature per the current C++1x draft (N2857).
* testsuite/24_iterators/operations/40497.cc: Add.
From-SVN: r148752
2009-06-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39800
* resolve.c (is_sym_host_assoc): New function.
(resolve_fl_derived): Call it when checking PRIVATE components
of PUBLIC derived types. Change gfc_error to a gfc_notify_std
with std=f2003.
(resolve_fl_namelist): Call it twice to check for host
association.
2009-06-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39800
* gfortran.dg/private_type_13.f90: New test.
* gfortran.dg/private_type_2.f90: Add option -std=f95.
From-SVN: r148741
2009-06-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40402
* resolve.c (next_data_value): It is an error if the value is
not constant.
2009-06-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40402
* gfortran.dg/data_value_1.f90: New test.
From-SVN: r148732
* system-aix64.ads: New file.
* gcc-interface/Makefile.in (aix LIBGNAT_TARGET_PAIRS): Use the
64bit system.ads for ppc64 multilib variants.
From-SVN: r148660
2009-06-17 Richard Guenther <rguenther@suse.de>
PR middle-end/40460
* tree-chrec.h (build_polynomial_chrec): If we cannot determine
if there is no evolution of left in the loop bail out.
* tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
chrec_fold_multiply.
* g++.dg/torture/pr40460.C: New testcase.
From-SVN: r148602
2009-06-17 Richard Guenther <rguenther@suse.de>
PR middle-end/40389
* tree-ssa-operands.c (parse_ssa_operands): Add NRV results
to the addresses taken bitmap.
* g++.dg/torture/pr40389.C: New testcase.
From-SVN: r148601
2009-06-16 Jonathan Wakely <jwakely.gcc@gmail.com>
* libsupc++/exception_ptr.h (exception_ptr::swap(exception_ptr&&)):
Remove.
(exception_ptr::operator=(exception_ptr&&)): Cast source to
rvalue-reference so that move constructor is called.
* testsuite/18_support/exception_ptr/move.cc: New.
From-SVN: r148556
2009-06-14 Richard Guenther <rguenther@suse.de>
Backport from mainline
2009-05-18 Richard Guenther <rguenther@suse.de>
PR fortran/40168
* trans-expr.c (gfc_trans_zero_assign): For local array
destinations use an assignment from an empty constructor.
* gfortran.dg/array_memset_2.f90: Adjust.
From-SVN: r148469
2009-06-11 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-06-10 H.J. Lu <hongjiu.lu@intel.com>
* doc/extend.texi: Add description for __builtin_ia32_crc32di.
From-SVN: r148398
2009-06-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/40334
* io/list_read.c (list_formatted_read_scalar): Set the end file
conditions after a return from EOF error.
From-SVN: r148303
PR c++/40373
* call.c (check_dtor_name): Return false even if
get_type_value (name) is error_mark_node.
* g++.dg/template/dtor7.C: New test.
From-SVN: r148283
PR c++/40370
PR c++/40372
* parser.c (cp_parser_direct_declarator): Don't set TREE_SIDE_EFFECTS
on error_mark_node. Check for VLAs outside of function context
before check whether to wrap bounds into a NOP_EXPR with
TREE_SIDE_EFFECTS.
* g++.dg/template/error41.C: New test.
* g++.dg/template/error42.C: New test.
From-SVN: r148281
2009-06-07 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-06-03 Richard Guenther <rguenther@suse.de>
PR middle-end/40328
* gcc.dg/torture/pr40328.c: New testcase.
From-SVN: r148248
PR middle-end/40340
* tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
inlined_function_outer_scope_p blocks for artificial inlines
even at -g0/-g1.
* tree.c (tree_nonartificial_location): Rewrite using
block_nonartificial_location.
* gcc.dg/pr40340-1.c: New test.
* gcc.dg/pr40340-2.c: New test.
* gcc.dg/pr40340-3.c: New test.
* gcc.dg/pr40340-4.c: New test.
* gcc.dg/pr40340-5.c: New test.
* gcc.dg/pr40340.h: New file.
From-SVN: r148214
Merged r146816 from trunk into 4.4 branch. Specifically,
2009-04-26 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/39893
* gfortran.dg/assumed_charlen_dummy.f90: New Test.
2009-04-26 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/39893
fortran/data.c (gfc_assign_data_value): If the lvalue is an
assumed character length entity in a data statement, then
return FAILURE to prevent segmentation fault.
From-SVN: r148176
2009-06-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR fortran/40019
* trans-types.c (gfc_build_uint_type): Make nonstatic.
* trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): New
* prototypes.
* trans-types.h (gfc_build_uint_type): Add prototype.
* trans-decl.c (gfc_build_intrinsic_function_decls): Build
gfor_fndecl_clz128 and gfor_fndecl_ctz128.
* trans-intrinsic.c (gfc_conv_intrinsic_leadz,
gfc_conv_intrinsic_trailz): Call the right builtins or library
functions, and cast arguments to unsigned types first.
* simplify.c (gfc_simplify_leadz): Deal with negative arguments.
2009-06-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR fortran/40019
* intrinsics/bit_intrinsics.c: New file.
* gfortran.map (GFORTRAN_1.2): New list.
* Makefile.am: Add intrinsics/bit_intrinsics.c.
* Makefile.in: Regenerate.
2009-06-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR fortran/40019
* gfortran.dg/leadz_trailz_1.f90: New test.
* gfortran.dg/leadz_trailz_2.f90: New test.
-- Diese und die folgenden Zeilen werden ignoriert --
M libgfortran/Makefile.in
A libgfortran/intrinsics/bit_intrinsics.c
M libgfortran/ChangeLog
M libgfortran/gfortran.map
M libgfortran/Makefile.am
M gcc/testsuite/ChangeLog
A gcc/testsuite/gfortran.dg/leadz_trailz_2.f90
A gcc/testsuite/gfortran.dg/leadz_trailz_1.f90
M gcc/fortran/ChangeLog
M gcc/fortran/trans-types.c
M gcc/fortran/trans.h
M gcc/fortran/trans-types.h
M gcc/fortran/trans-decl.c
M gcc/fortran/trans-intrinsic.c
M gcc/fortran/simplify.c
From-SVN: r148143
PR c++/40308
PR c++/40311
* typeck.c (cp_build_modify_expr): Always pass init-lists to the
conversion code.
* call.c (implicit_conversion): Allow init-list conversion to scalar
during direct-initialization, too. Mark the conversion bad if it
has too many levels of braces.
(convert_like_real): And give a helpful error.
PR c++/40306
PR c++/40307
* decl.c (cp_finish_decl): Handle auto deduction from ().
* typeck.c (build_x_indirect_ref): Handle dereferencing an operand
with dependent type that is known to be a pointer.
* call.c (implicit_conversion): Handle conversion from
initializer-list to scalar.
(convert_like_real): Likewise. Avoid crashing on list
initialization with bad conversions.
From-SVN: r148141
Backport from mainline:
2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.md (ashldi3_std): New define_expand.
(ashldi3): Use it.
From-SVN: r148106
* dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
force output of the label even for dwarf2out_do_cfi_asm.
(add_fde_cfi): If -g2 and above and cfi might change CFA,
force creation of CFI label and chain DW_CFA_set_loc jumping to it
for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
caller.
(dwarf2out_stack_adjust, dwarf2out_frame_debug,
dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
dwarf2out_cfi_label callers.
* tree.h (dwarf2out_cfi_label): Adjust prototype.
* config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
Adjust dwarf2out_cfi_label callers.
* config/vax/vax.c (vax_output_function_prologue): Likewise.
From-SVN: r148070
PR middle-end/40291
* builtins.c (expand_builtin_memcmp): Convert len to sizetype
before expansion.
* gcc.c-torture/compile/pr40291.c: New test.
From-SVN: r147979
2009-05-27 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-05-27 H.J. Lu <hongjiu.lu@intel.com>
PR target/40266
* config/i386/driver-i386.c (host_detect_local_cpu): Support
AVX, SSE4, AES, PCLMUL and POPCNT.
From-SVN: r147914
2009-05-27 Kai TIetz <kai.tietz@onevision.com>
* g++.old-deja/g++.brendan/array1.C (array): Use __SIZE_TYPE__
cast instead of assuming 0ul.
* g++.old-deja/g++.brendan/crash64.C (size_t): Define it via
__SIZE_TYPE__.
(_type_desc): Make first argument const.
* g++.old-deja/g++.jason/new3.C (dg-options): Add -Wno-long-long.
From-SVN: r147897
2009-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Backport from mainline:
PR libfortran/37754
* io/write_float.def: Simplify format calculation.
2009-05-23 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Backport from mainline:
PR fortran/22423
* io/transfer.c (read_block_direct): Avoid warning.
2009-05-23 Janne Blomqvist <jb@gcc.gnu.org>
Backport from mainline:
PR libfortran/39667
* io/file_pos.c (st_rewind): Don't truncate or flush.
* io/intrinsics.c (fgetc): Flush if switching mode.
(fputc): Likewise.
2009-05-23 Janne Blomqvist <jb@gcc.gnu.org>
Backport from mainline:
PR libfortran/39782
* io/transfer.c (data_transfer_init): Don't flush before seek.
2009-05-23 Janne Blomqvist <jb@gcc.gnu.org>
Backport from mainline:
* io/io.h (is_preconnected): Remove prototype.
* io/unix.c (is_preconnected): Remove function.
2009-05-23 Janne Blomqvist <jb@gcc.gnu.org>
Backport from mainline:
PR libfortran/38668
* io/transfer.c (finalize_transfer): Don't flush for advance='no'.
2009-05-23 Danny Smith <dannysmith@clear.net.nz>
Backport from mainline:
* io/write.c (itoa) : Rename back to gfc_itoa.
(write_i): Adjust call to write_decimal.
(write_integer): Use gfc_itoa.
2009-05-23 Janne Blomqvist <jb@gcc.gnu.org>
Backport from mainline:
* io/io.h (move_pos_offset): Remove prototype.
* io/transfer.c (formatted_transfer_scalar_read): Use sseek
instead of move_pos_offset.
* io/unix.c (move_pos_offset): Remove.
2009-05-23 Janne Blomqvist <jb@gcc.gnu.org>
Backport from mainline:
PR libfortran/39665 libfortran/39702 libfortran/39709
* io/io.h (st_parameter_dt): Revert aligned attribute from u.p.value.
* io/list_read.c (read_complex): Read directly into user pointer.
(read_real): Likewise.
(list_formatted_read_scalar): Update read_complex and read_real calls.
(nml_read_obj): Read directly into user pointer.
2009-05-23 Janne Blomqvist <jb@gcc.gnu.org>
Backport from mainline:
PR libfortran/39665
* io/io.h (st_parameter_dt): Add aligned attribute to u.p.value.
* io/read.c (convert_real): Add note about alignment requirements.
2009-05-23 Janne Blomqvist <jb@gcc.gnu.org>
Backport from mainline:
* io/open.c (already_open): Test for POSIX close return value.
* io/unit.c (close_unit_1): Likewise.
* io/unix.c (raw_close): Return 0 for success for preconnected units.
2009-05-23 Janne Blomqvist <jb@gcc.gnu.org>
Backport from mainline:
* runtime/error.c (gfc_itoa): Move to io/write.c
(xtoa): Rename to gfc_xtoa.
* runtime/backtrace.c (show_backtrace): Call gfc_xtoa.
* libgfortran.h (gfc_itoa): Remove prototype.
(xtoa): Rename prototype to gfc_xtoa.
* io/list_read.c (nml_read_obj): Use size_t for string length.
* io/transfer.c (read_block_direct): Change nbytes arg from
pointer to value.
(unformatted_read): Minor cleanup, call read_block_directly properly.
(skip_record): Use ssize_t.
(next_record_w_unf): Avoid stell() call by calling sseek with SEEK_CUR.
(iolength_transfer): Make sure to multiply before cast.
* io/intrinsics.c (fgetc): Remove unnecessary variable.
* io/format.c (format_hash): Use gfc_charlen_type.
* io/write.c (itoa): Move from runtime/error.c:gfc_itoa, rename,
make static.
(write_i): Call with pointer to itoa.
(write_z): Call with pointer to gfc_xtoa.
(write_integer): Pointer to itoa.
(nml_write_obj): Type cleanup, don't call strlen in loop.
2009-05-23 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
PR libgfortran/39664
* io/unix.c (raw_close): Don't close STDOUT_FILENO,
STDERR_FILENO nor STDIN_FILENO.
2009-05-23 David Edelsohn <edelsohn@gnu.org>
Backport from mainline:
* io/io.h (struct stream): Rename truncate to trunc.
(struncate): Same.
* io/unix.c (raw_init): Rename truncate to trunc.
(buf_init): Same.
(open_internal): Same.
2009-05-23 Daniel Kraft <d@domob.eu>
Backport from mainline:
PR fortran/38654
* io/read.c (read_f): Reworked to speed up floating point parsing.
(convert_real): Use pointer-casting instead of memcpy and temporaries.
2009-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Backport from mainline:
PR libfortran/37754
* io/io.h (format_hash_entry): New structure for hash table.
(format_hash_table): The hash table itself.
(free_format_data): Revise function prototype.
(free_format_hash_table, init_format_hash,
free_format_hash): New function prototypes.
* io/unit.c (close_unit_1): Use free_format_hash_table.
* io/transfer.c (st_read_done, st_write_done): Free format data if
internal unit.
* io/format.c (free_format_hash_table): New function that frees any
memory allocated previously for cached format data.
(reset_node): New static helper function to reset the format counters
for a format node.
(reset_fnode_counters): New static function recursively calls reset_node
to traverse the fnode tree.
(format_hash): New simple hash function based on XOR, probabalistic,
tosses collisions.
(save_parsed_format): New static function to save the parsed format
data to use again.
(find_parsed_format): New static function searches the hash table
looking for a match.
(free_format_data): Revised to accept pointer to format data rather than
the dtp pointer so that the function can be used in more places.
(format_lex): Editorial.
(parse_format_list): Set flag used to determine of format data hashing
is to be used. Internal units are not persistent enough for this.
(revert): Move to ne location in file.
(parse_format): Use new functions to look for previously parsed
format strings and use them rather than re-parse. If not found, saves
the parsed format data for later use.
2009-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Backport from mainline:
PR libfortran/37754
* io/transfer.c (formatted_transfer_scalar): Remove this function by
factoring it into two new functions, one for read and one for write,
eliminating all the conditionals for read or write mode.
(formatted transfer_scalar_read): New function.
(formatted transfer_scalar_write): New function.
(formatted_transfer): Use new functions.
2009-05-23 Janne Blomqvist <jb@gcc.gnu.org>
Backport from mainline:
PR libfortran/25561 libfortran/37754
* io/io.h (struct stream): Define new stream interface function
pointers, and inline functions for accessing it.
(struct fbuf): Use int instead of size_t, remove flushed element.
(mem_alloc_w): New prototype.
(mem_alloc_r): New prototype.
(stream_at_bof): Remove prototype.
(stream_at_eof): Remove prototype.
(file_position): Remove prototype.
(flush): Remove prototype.
(stream_offset): Remove prototype.
(unit_truncate): New prototype.
(read_block_form): Change to return pointer, int* argument.
(hit_eof): New prototype.
(fbuf_init): Change prototype.
(fbuf_reset): Change prototype.
(fbuf_alloc): Change prototype.
(fbuf_flush): Change prototype.
(fbuf_seek): Change prototype.
(fbuf_read): New prototype.
(fbuf_getc_refill): New prototype.
(fbuf_getc): New inline function.
* io/fbuf.c (fbuf_init): Use int, get rid of flushed.
(fbuf_debug): New function.
(fbuf_reset): Flush, and return position offset.
(fbuf_alloc): Simplify, don't flush, just realloc.
(fbuf_flush): Make usable for read mode, salvage remaining bytes.
(fbuf_seek): New whence argument.
(fbuf_read): New function.
(fbuf_getc_refill): New function.
* io/file_pos.c (formatted_backspace): Use new stream interface.
(unformatted_backspace): Likewise.
(st_backspace): Make sure format buffer is reset, use new stream
interface, use unit_truncate.
(st_endfile): Likewise.
(st_rewind): Likewise.
* io/intrinsics.c: Use new stream interface.
* io/list_read.c (push_char): Don't use u.p.scratch, use realloc
to resize.
(free_saved): Don't check u.p.scratch.
(next_char): Use new stream interface, use fbuf_getc() for external files.
(finish_list_read): flush format buffer.
(nml_query): Update to use modified interface:s
* io/open.c (test_endfile): Use new stream interface.
(edit_modes): Likewise.
(new_unit): Likewise, set bytes_left to 1 for stream files.
* io/read.c (read_l): Use new read_block_form interface.
(read_utf8): Likewise.
(read_utf8_char1): Likewise.
(read_default_char1): Likewise.
(read_utf8_char4): Likewise.
(read_default_char4): Likewise.
(read_a): Likewise.
(read_a_char4): Likewise.
(read_decimal): Likewise.
(read_radix): Likewise.
(read_f): Likewise.
* io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove
usage of u.p.line_buffer.
(read_block_form): Update interface to return pointer, use
fbuf_read for direct access.
(read_block_direct): Update to new stream interface.
(write_block): Use mem_alloc_w for internal I/O.
(write_buf): Update to new stream interface.
(formatted_transfer_scalar): Don't use u.p.line_buffer, use
fbuf_seek for external files.
(us_read): Update to new stream interface.
(us_write): Likewise.
(data_transfer_init): Always check if we switch modes and flush.
(skip_record): Use new stream interface, fix comparison.
(next_record_r): Check for and reset u.p.at_eof, use new stream
interface, use fbuf_getc for spacing.
(write_us_marker): Update to new stream interface, don't inline.
(next_record_w_unf): Likewise.
(sset): New function.
(next_record_w): Use new stream interface, use fbuf for printing
newline.
(next_record): Use new stream interface.
(finalize_transfer): Remove sfree call, use new stream interface.
(st_iolength_done): Don't use u.p.scratch.
(st_read): Don't check for end of file.
(st_read_done): Don't use u.p.scratch, use unit_truncate.
(hit_eof): New function.
* io/unit.c (init_units): Always init fbuf for formatted units.
(update_position): Use new stream interface.
(unit_truncate): New function.
(finish_last_advance_record): Use fbuf to print newline.
* io/unix.c: Remove unused SSIZE_MAX macro.
(BUFFER_SIZE): Make static const variable rather than macro.
(struct unix_stream): Remove dirty_offset, len, method,
small_buffer. Order elements by decreasing size.
(struct int_stream): Remove.
(move_pos_offset): Remove usage of dirty_offset.
(reset_stream): Remove.
(do_read): Rename to raw_read, update to match new stream
interface.
(do_write): Rename to raw_write, update to new stream interface.
(raw_seek): New function.
(raw_tell): New function.
(raw_truncate): New function.
(raw_close): New function.
(raw_flush): New function.
(raw_init): New function.
(fd_alloc): Remove.
(fd_alloc_r_at): Remove.
(fd_alloc_w_at): Remove.
(fd_sfree): Remove.
(fd_seek): Remove.
(fd_truncate): Remove.
(fd_sset): Remove.
(fd_read): Remove.
(fd_write): Remove.
(fd_close): Remove.
(fd_open): Remove.
(fd_flush): Rename to buf_flush, update to new stream interface
and unix_stream.
(buf_read): New function.
(buf_write): New function.
(buf_seek): New function.
(buf_tell): New function.
(buf_truncate): New function.
(buf_close): New function.
(buf_init): New function.
(mem_alloc_r_at): Rename to mem_alloc_r, change prototype.
(mem_alloc_w_at): Rename to mem_alloc_w, change prototype.
(mem_read): Change to match new stream interface.
(mem_write): Likewise.
(mem_seek): Likewise.
(mem_tell): Likewise.
(mem_truncate): Likewise.
(mem_close): Likewise.
(mem_flush): New function.
(mem_sfree): Remove.
(empty_internal_buffer): Cast to correct type.
(open_internal): Use correct type, init function pointers.
(fd_to_stream): Test whether to open file as buffered or raw.
(output_stream): Remove mode set.
(error_stream): Likewise.
(flush_all_units_1): Use new stream interface.
(flush_all_units): Likewise.
(stream_at_bof): Remove.
(stream_at_eof): Remove.
(file_position): Remove.
(file_length): Update logic to use stream interface.
(flush): Remove.
(stream_offset): Remove.
* io/write.c (write_utf8_char4): Use int instead of size_t.
(write_x): Extra safety check.
(namelist_write_newline): Use new stream interface.
From-SVN: r147887
* doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
Remove outdated reference to flow.c and fix nits.
* doc/gccint.texi: Tweak RTL description.
* doc/rtl.texi: Likewise.
From-SVN: r147822
PR tree-optimization/40087
* tree-ssa-loop-niter.c (number_of_iterations_ne_max,
number_of_iterations_ne): Rename never_infinite argument.
(number_of_iterations_lt_to_ne, number_of_iterations_lt,
number_of_iterations_le): Handle pointer-type ivs when
exit_must_be_taken is false.
(number_of_iterations_cond): Do not always assume that
exit_must_be_taken if the control variable is a pointer.
* gcc.dg/tree-ssa/pr40087.c: New test.
From-SVN: r147806
PR rtl-optimization/40105
Backport from mainline:
2009-04-29 Eric Botcazou <ebotcazou@adacore.com>
Steven Bosscher <steven@gcc.gnu.org>
* Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
* cfgrtl.c: Include insn-attr.h.
(rest_of_pass_free_cfg): New function.
(pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
2009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
Eric Botcazou <ebotcazou@adacore.com>
* resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
a label's basic block.
(mark_target_live_regs): Tidy and rework obsolete comments.
Change back DF problem to LIVE. If a label starts a basic block,
assume that all registers that used to be live then still are.
(init_resource_info): If a label starts a basic block, set its
BLOCK_FOR_INSN accordingly.
(free_resource_info): Undo the setting of BLOCK_FOR_INSN.
From-SVN: r147780
2009-05-21 David Billinghurst <billingd@gcc.gnu.org>
Backport from mainline:
PR libstdc++/36211
* testsuite/lib/libstdc++.exp(v3_target_compile): Add
cxxldflags to additional_flags rather than cxx_final.
From-SVN: r147762
PR middle-end/40204
* fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
recursion if build_int_cst_type returns the same INTEGER_CST as
arg1.
* gcc.c-torture/compile/pr40204.c: New test.
From-SVN: r147750
2009-05-19 Richard Guenther <rguenther@suse.de>
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
not falsely claim to have propagated into all uses.
* gcc.c-torture/compile/20090519-1.c: New testcase.
From-SVN: r147703
gcc/ChangeLog:
PR debug/40109
* dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
child of the containing namespace's DIE.
gcc/testsuite/ChangeLog:
PR debug/40109
* g++.dg/debug/dwarf2/nested-1.C: New test.
From-SVN: r147675
2009-05-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39999
* gimple.h (gimple_expr_type): Use the expression type looking
through useless conversions.
* tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
(vn_nary_op_insert_stmt): Likewise.
(simplify_binary_expression): Likewise.
* gcc.c-torture/compile/pr39999.c: New testcase.
From-SVN: r147657
PR target/37179
* config/i386/driver-i386.c (processor_signatures): New enum.
(SIG_GEODE): Move from vendor_signatures to processor_signatures.
(host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
processor signature to detect geode processor.
From-SVN: r147469
PR middle-end/39666
* gimplify.c (gimplify_switch_expr): If case labels cover the whole
range of the type, but default label is missing, add it with one
of the existing labels instead of adding a new label for it.
* gcc.dg/pr39666-1.c: New test.
* gcc.dg/pr39666-2.c: Likewise.
* g++.dg/warn/Wuninitialized-4.C: Likewise.
* g++.dg/warn/Wuninitialized-5.C: Likewise.
* gfortran.dg/pr39666-1.f90: Likewise.
* gfortran.dg/pr39666-2.f90: Likewise.
From-SVN: r147440
2009-05-12 Johannes Singler <singler@ira.uka.de>
PR libstdc++/39546
* include/parallel/algo.h (find_switch):
Parametrize binder2nd with const T& instead of T.
* testsuite/25_algorithms/find/39546.cc: new test case
From-SVN: r147439
2009-05-11 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-05-11 H.J. Lu <hongjiu.lu@intel.com>
* tree-vect-analyze.c (vect_analyze_group_access): Use
HOST_WIDE_INT for gap.
From-SVN: r147376
PR tree-optimization/40074
* tree-vect-analyze.c (vect_analyze_group_access): Take gaps into
account in group size and step comparison.
From-SVN: r147370
2009-05-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40018
* trans-array.c (gfc_trans_array_constructor_value): Fold
convert numeric constants.
(gfc_build_constant_array_constructor): The same.
2009-05-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40018
* gfortran.dg/array_constructor_31.f90: New test.
From-SVN: r147347
2009-05-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38863
* trans-expr.c (gfc_conv_operator_assign): Remove function.
* trans.h : Remove prototype for gfc_conv_operator_assign.
* trans-stmt.c (gfc_conv_elemental_dependencies): Initialize
derivde types with intent(out).
(gfc_trans_call): Add mask, count1 and invert arguments. Add
code to use mask for WHERE assignments.
(gfc_trans_forall_1): Use new arguments for gfc_trans_call.
(gfc_trans_where_assign): The gfc_symbol argument is replaced
by the corresponding code. If this has a resolved_sym, then
gfc_trans_call is called. The call to gfc_conv_operator_assign
is removed.
(gfc_trans_where_2): Change the last argument in the call to
gfc_trans_where_assign.
* trans-stmt.h : Modify prototype for gfc_trans_call.
* trans.c (gfc_trans_code): Use new args for gfc_trans_call.
2009-05-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38863
* gfortran.dg/dependency_24.f90: New test.
From-SVN: r147345
2009-05-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39879
* trans_expr.c (gfc_conv_procedure_call): Deep copy a derived
type parentheses argument if it is a variable with allocatable
components.
2009-05-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39879
* gfortran.dg/alloc_comp_assign_10.f90: New test.
From-SVN: r147336
PR middle-end/40057
* dojump.c (prefer_and_bit_test): Use immed_double_const instead of
GEN_INT for 1 << bitnum.
(do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
build_int_cst_type.
* gcc.c-torture/execute/pr40057.c: New test.
From-SVN: r147242
2009-05-06 Dodji Seketeli <dodji@redhat.com>
gcc/cp/ChangeLog:
PR c++/17395
* pt.c (tsubst_copy) <case PARM_DECL>: We don't want to tsubst the
whole list of PARM_DECLs, just the current one.
gcc/testsuite/ChangeLog:
PR c++/17395
* g++.dg/template/call7.C: New test.
From-SVN: r147202
2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.md (*avx_<code><mode>3_finite): Replace
ssemodesuffixf2c with avxmodesuffixf2c.
From-SVN: r147176
2009-05-06 Paolo Carlini <paolo.carlini@oracle.com>
Revert:
2009-05-03 Paolo Carlini <paolo.carlini@oracle.com>
* acinclude.m4 ([GLIBCXX_ENABLE_ATOMIC_BUILTINS]): Do link tests when
possible.
* configure: Regenerate.
From-SVN: r147155
2009-05-05 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/39909
* include/std/mutex (__get_once_functor_lock, __get_once_mutex,
__set_once_functor_lock_ptr): Replace global lock object with local
locks on global mutex.
* src/mutex.cc (__get_once_functor_lock, __get_once_mutex,
__set_once_functor_lock_ptr): Likewise, keeping old function to
preserve ABI.
(__once_proxy): Use pointer to local lock if set, global lock
otherwise.
* config/abi/pre/gnu.ver: Add new symbols to new ABI version.
* testsuite/util/testsuite_abi.cc: Add GLIBCX_3.4.12 version.
* testsuite/30_threads/call_once/39909.cc: New.
From-SVN: r147138
2009-05-05 Paolo Carlini <paolo.carlini@oracle.com>
* acinclude.m4 ([GLIBCXX_ENABLE_ATOMIC_BUILTINS]): Do link tests when
possible.
* configure: Regenerate.
From-SVN: r147123
PR c++/40013
* pt.c (tsubst): If magic NOP_EXPR with side-effects has no type,
set it from its operand's type after tsubst_expr.
* g++.dg/ext/vla7.C: New test.
From-SVN: r147120
Backport from mainline:
2009-04-28 Uros Bizjak <ubizjak@gmail.com>
PR rtl-optimization/39914
* ira-conflicts.c (ira_build_conflicts): Prohibit call used
registers for allocnos created from user-defined variables only
when not optimizing.
From-SVN: r147081
2009-04-29 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-04-29 Richard Guenther <rguenther@suse.de>
PR middle-end/39937
* gcc.c-torture/compile/pr39937.c: New testcase.
From-SVN: r146981
2009-04-29 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-04-29 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39941
* gcc.c-torture/compile/pr39941.c: New testcase.
2009-04-29 Anmol P. Paralkar <anmol@freescale.com>
PR target/39565
* gcc.dg/pr39565.c: New testcase.
2009-04-28 Richard Guenther <rguenther@suse.de>
PR middle-end/39937
* gfortran.fortran-torture/compile/pr39937.f: New testcase.
From-SVN: r146972
PR testsuite/39807
* dg-extract-results.sh: Close open files and use >> instead of >
to decrease number of concurrently open files from awk. Avoid
= at the beginning of a regexp and redirect to a file determined
by curfile variable rather than concatenated strings to workaround
Solaris nawk bug.
From-SVN: r146851
PR inline-asm/39543
* fwprop.c (forward_propagate_asm): New function.
(forward_propagate_and_simplify): Propagate also into __asm, if it
doesn't increase the number of referenced registers.
* gcc.target/i386/pr39543-1.c: New test.
* gcc.target/i386/pr39543-2.c: New test.
* gcc.target/i386/pr39543-3.c: New test.
From-SVN: r146814
2009-04-25 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/std/mutex (__get_once_functor_lock, __get_once_mutex):
Replace global lock object with local locks on global mutex.
* src/mutex.cc: Likewise.
* config/abi/pre/gnu.ver: Adjust.
* testsuite/30_threads/call_once/call_once2.cc: New.
From-SVN: r146786
2009-04-24 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/39867
* fold-const.c (fold_cond_expr_with_comparison): When folding
> and >= to MAX, make sure the MAX uses the same type as the
comparison's operands.
testsuite:
2009-04-24 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/39867
* gcc.dg/pr39867.c: New.
From-SVN: r146702
* config/spu/spu-builtins.h: Delete file.
* config/spu/spu.h (enum spu_builtin_type): Move here from
spu-builtins.h.
(struct spu_builtin_description): Likewise. Add GTY marker.
Do not use enum spu_function_code or enum insn_code.
(spu_builtins): Add extern declaration.
* config/spu/spu.c: Do not include "spu-builtins.h".
(enum spu_function_code, enum spu_builtin_type_index,
V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
unsigned_V8HI_type_node, unsigned_V4SI_type_node,
unsigned_V2DI_type_node): Move here from spu-builtins.h.
(spu_builtin_types): Make static. Add GTY marker.
(spu_builtins): Add extern declaration with GTY marker.
Include "gt-spu.h".
* config/spu/spu-c.c: Do not include "spu-builtins.h".
(spu_resolve_overloaded_builtin): Do not use spu_function_code.
Check programmatically whether all parameters are scalar.
* config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
From-SVN: r146661
2009-04-23 Dodji Seketeli <dodji@redhat.com>
gcc/cp/ChangeLog:
PR c++/38228
* pt.c (unify): Do not allow the result of a template argument
deduction to be a METHOD_TYPE.
* cvt.c (cp_convert): Report a meaningful error for non-valid use
of pointer to member functions during conversions.
* call.c (build_new_op): Report a meaningful error for non-valid
use of pointer to member functions in binary expressions.
* typeck.c (invalid_nonstatic_memfn_p): Do not crash when EXPR is
NULL;
gcc/testsuite/ChangeLog:
PR c++/38228
* g++.dg/expr/bound-mem-fun.C: New test.
From-SVN: r146645
* gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR>: If operation's
type is an enumeral or a boolean type, change it to an integer type
with the same mode and signedness.
From-SVN: r146626
PR c/39855
* fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
into 0, use omit_one_operand.
* gcc.dg/torture/pr39855.c: New test.
From-SVN: r146622
2009-04-22 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/39762
* ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
ira_may_move_out_cost): Add comments about way of their usage.
(ira_get_register_move_cost, ira_get_may_move_cost): New functions.
* ira-conflicts.c (process_regs_for_copy): Use function
ira_get_register_move_cost instead of global
ira_register_move_cost.
* ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
color_pass, move_spill_restore, update_curr_costs): Ditto.
* ira-lives.c (process_single_reg_class_operands): Ditto.
* ira-emit.c (emit_move_list): Ditto.
* ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
(record_reg_classes): Ditto. Use functions
ira_get_register_move_cost and ira_get_may_move_cost instead of
global vars ira_register_move_cost, ira_may_move_out_cost and
ira_may_move_in_cost.
(record_address_regs): Don't call ira_init_register_move_cost.
Use function ira_get_may_move_cost instead of global
ira_may_move_in_cost.
(process_bb_node_for_hard_reg_moves): Use function
ira_get_register_move_cost instead of global ira_register_move_cost.
(ira_costs): Don't call ira_init_register_move_cost.
From-SVN: r146612
2009-04-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39824
* tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
make sure the types are compatible.
* gcc.c-torture/compile/pr39824.c: New testcase.
From-SVN: r146611
2009-04-22 Dodji Seketeli <dodji@redhat.com>
gcc/cp/ChangeLog:
PR c++/39639
* parser.c (cp_parser_template_argument_list): Display an error
when an ellipsis is not preceded by a parameter pack. Also, warn
about variadic templates usage without -std=c++0x.
gcc/testsuite/ChangeLog:
PR c++/39639
* g++.dg/cpp0x/pr39639.C: New test.
From-SVN: r146609
2009-04-22 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-04-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39845
* gcc.c-torture/compile/pr39845.c: New testcase.
2009-04-21 Richard Guenther <rguenther@suse.de>
PR middle-end/39829
* gcc.dg/torture/pr39829.c: New testcase.
From-SVN: r146579
Backport from mainline:
2009-03-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL
family of intrinsics instead of BUILT_IN_INF family.
* trans-intrinsics.c (gfc_conv_intrinsic_nearest): Use
BUILT_IN_HUGE_VAL instead of BUILT_IN_INF.
From-SVN: r146572
PR tree-optimization/39675
* tree-vect-transform.c (vect_transform_loop): Remove currently
redundant check of the return code of vect_schedule_slp. Check that
stmt_vec_info still exists for the statement, before checking its
vectorization type.
From-SVN: r146365
2009-04-18 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-04-18 Richard Guenther <rguenther@suse.de>
PR middle-end/39804
* gcc.target/i386/pr39804.c: New testcase.
From-SVN: r146315
gcc/
* config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
libgcc/
* config.host: Add i386/${host_address}/t-fprules-softfp to
tmake_file for i[34567]86-*-kfreebsd*-gnu, x86_64-*-kfreebsd*-gnu*.
From-SVN: r146249
2009-04-15 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39764
* tree-ssa-ccp.c (get_value): Canonicalize value with
canonicalize_float_value.
* g++.dg/torture/pr39764.C: New testcase.
From-SVN: r146157
* configure.ac: Change copyright header to refer to version
3 of the GNU General Public License and to point readers at the
COPYING3 file and the FSF's license web page.
* Makefile.def: Likewise.
* Makefile.tpl: Likewise.
* Makefile.in: Regenerate.
From-SVN: r146024
2009-04-11 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39713
* tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
reference trees have SSA_NAME operands.
* g++.dg/torture/pr39713.C: New testcase.
From-SVN: r145952
gcc/cp/
2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-04-10 Jason Merrill <jason@redhat.com>
PR c++/28301
* parser.c (cp_parser_skip_to_end_of_block_or_statement): Return
if we see a close brace without an open brace.
gcc/testsuite/
2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
PR c++/28301
* g++.dg/cpp0x/enum2.C: Updated.
* g++.dg/debug/pr22514.C: Likewise.
* g++.dg/parse/enum2.C: Likewise.
* g++.dg/parse/enum3.C: Likewise.
* g++.dg/template/crash79.C: Likewise.
* g++.old-deja/g++.jason/cond.C: Likewise.
* g++.dg/template/pr28301.C: New.
From-SVN: r145938
2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
* config/rs6000/darwin-vecsave.asm: Remove extra "*/".
From-SVN: r145904
2009-04-09 Jack Howarth <howarth@bromo.med.uc.edu>
* configure.host: Restore match for darwin9 or later.
* configure.ac: Likewise.
* configure: Regenerate.
From-SVN: r145863
2009-04-09 Jack Howarth <howarth@bromo.med.uc.edu>
* configure.ac: Restore match for darwin9 or later. Use double
brackets since regeneration eats one pair.
* configure: Regenerate.
From-SVN: r145862
gcc/
2009-04-08 David Ayers <ayers@fsfe.org>
PR objc/27377
* c-typeck.c (build_conditional_expr): Emit ObjC warnings
by calling objc_compare_types and surpress warnings about
incompatible C pointers that are compatible ObjC pointers.
gcc/testsuite/
2009-04-02 David Ayers <ayers@fsfe.org>
PR objc/27377
* objc.dg/conditional-1.m: New tests.
From-SVN: r145718
PR c++/35146
* pt.c (fn_type_unification): For DEDUCE_EXACT check that
the deduced template arguments give us the parameter types
we're looking for.
From-SVN: r145634
C++ DR 613
* semantics.c (finish_non_static_data_member): Allow such references
without an associated object in sizeof/decltype/alignof.
From-SVN: r145620
2009-04-05 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-04-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39648
* gcc.c-torture/compile/pr39648.c: New testcase.
From-SVN: r145574
2009-04-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39519
* parse.c (parse_derived): Do not break on finding pointer,
allocatable or private components.
2009-04-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39519
* gfortran.dg/alloc_comp_assign_9.f90: New test.
From-SVN: r145538
PR target/39501
* arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
* testsuite/gcc.c-torture/execute/pr39501.c: New file.
* testsuite/gcc.c-torture/execute/pr39501.x: New file.
From-SVN: r145537
* unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
* unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
instead of REG_UNSAVED for DW_CFA_undefined.
(uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
(uw_update_context): If RA column is REG_UNDEFINED, mark it as
outermost frame.
From-SVN: r145536
2009-04-03 Tobias Burnus <burnus@net-b.de>
PR fortran/39594
* resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol
if it is not a procedure pointer.
* primary.c (match_actual_arg): Ditto.
2009-04-03 Tobias Burnus <burnus@net-b.de>
PR fortran/39594
* gfortran.dg/common_12.f90: New.
From-SVN: r145519
PR c++/39608
* semantics.c (finish_id_expression): Don't assume a dependent
member of the current instantiation isn't a valid integral
constant expression. Check dependent_scope_p.
* pt.c (dependent_scope_p): Check TYPE_P.
(tsubst_copy): If args is null, just return.
From-SVN: r145509
* mangle.c (write_expression): Mangle dependent name as
source-name.
PR c++/38030, 38850, 39070
* pt.c (type_dependent_expression_p_push): New fn.
(tsubst_copy_and_build) [CALL_EXPR]: Only do arg-dep lookup when the
substitution makes the call non-dependent. Preserve koenig_p.
* parser.c (cp_parser_postfix_expression): Only do arg-dep lookup
for non-dependent calls.
* semantics.c (finish_call_expr): Revert earlier changes.
* cp-tree.h: Revert change to finish_call_expr prototype.
From-SVN: r145468
PR tree-optimization/39595
* tree-vect-analyze.c (vect_build_slp_tree): Check that the size of
interleaved loads group is not greater than the SLP group size.
From-SVN: r145465
PR rtl-optimization/39588
* combine.c (merge_outer_ops): Do not set the constant when this
is not necessary.
(simplify_shift_const_1): Do not modify it either in this case.
From-SVN: r145431
* config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
tuning is deprecated if -mtune value is set to an Itanium1 variant.
From-SVN: r145426
PR c/37772
* c-parser.c (c_parser_asm_statement): Skip until close paren and
return if c_parser_asm_string_literal returned NULL.
* gcc.dg/pr37772.c: New test.
* g++.dg/ext/asm11.C: New test.
From-SVN: r145402
PR other/39591
* omp-low.c (remove_exit_barrier): Don't optimize if there are any
addressable variables in the parallel that could go out of scope while
running queued tasks.
* testsuite/libgomp.c/pr39591-1.c: New test.
* testsuite/libgomp.c/pr39591-2.c: New test.
* testsuite/libgomp.c/pr39591-3.c: New test.
From-SVN: r145391
2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline:
2009-03-31 Joseph Myers <joseph@codesourcery.com>
PR target/39592
* gcc.target/i386/pr39592-1.c: New test.
From-SVN: r145346
Backport from mainline:
2009-03-30 Paolo Bonzini <bonzini@gnu.org>
* gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead
of TREE_CONSTANT_OVERFLOW.
From-SVN: r145334
2009-03-30 Sebastian Pop <sebastian.pop@amd.com>
* doc/invoke.texi (-floop-interchange, -floop-strip-mine,
-floop-block): Document dependences on PPL, CLooG and Graphite.
From-SVN: r145315
PR target/39558
* macro.c (cpp_get_token): If macro_to_expand returns NULL
and used some tokens, add CPP_PADDING before next token.
* gcc.target/powerpc/altivec-29.c: New test.
From-SVN: r145298
* config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
following vector keyword has expansion starting with pixel or bool
keyword, expand vector to __vector and pixel or bool to __pixel or
__bool.
* gcc.target/powerpc/altivec-28.c: New test.
From-SVN: r145201
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.