s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER): Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
2008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
* config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
(S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
(S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
(S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
(S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
(S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
(S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
(S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
* config/s390/s390.md (FP_ALL): New mode iterator.
(_d): New mode attribute.
("*signbit<mode>2>"): Changed mode of first operand.
("isinf<mode>2"): Changed mode of first operand.
("*TDC_insn"): Adaptation for DFP modes.
Jason Merrill [Tue, 22 Jan 2008 04:53:33 +0000 (23:53 -0500)]
re PR c++/34196 (uninitialized variable warning in dead exception region)
PR c++/34196
* tree.h (TRY_CATCH_IS_CLEANUP): New macro.
* cp/decl.c (wrap_cleanups_r): Set TRY_CATCH_IS_CLEANUP.
* tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
if it is set.
Richard Guenther [Mon, 21 Jan 2008 16:21:45 +0000 (16:21 +0000)]
re PR target/34856 (ICE with some constant vectors)
2008-01-21 Richard Guenther <rguenther@suse.de>
PR middle-end/34856
* tree-cfg.c (verify_expr): Allow all invariant expressions
instead of just constant class ones as reference argument.
* tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
like any other constant.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
Paolo Carlini [Mon, 21 Jan 2008 01:49:29 +0000 (01:49 +0000)]
re PR c++/34776 (ICE with invalid member declaration in template class)
/cp
2008-01-20 Paolo Carlini <pcarlini@suse.de>
PR c++/34776
PR c++/34486
* name-lookup.c (do_class_using_decl): Do not call constructor_name_p
on non-IS_AGGR_TYPE type scope.
(constructor_name_p): Assert IS_AGGR_TYPE.
/testsuite
2008-01-20 Paolo Carlini <pcarlini@suse.de>
Paul Thomas [Sun, 20 Jan 2008 08:22:56 +0000 (08:22 +0000)]
re PR fortran/34784 (implicit character(s) hides type of selected_int_kind intrinsic)
2008-01-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34784
* array.c (gfc_check_constructor_type): Clear the expression ts
so that the checking starts from the deepest level of array
constructor.
* primary.c (match_varspec): If an unknown type is changed to
default character and the attempt to match a substring fails,
change it back to unknown.
PR fortran/34785
* trans-array.c (gfc_add_loop_ss_code) : If ss->string_length is
NULL for an array constructor, use the cl.length expression to
build it.
(gfc_conv_array_parameter): Change call to gfc_evaluate_now to
a tree assignment.
2008-01-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34784
* gfortran.dg/array_constructor_20.f90: New test.
* gfortran.dg/mapping_2.f90: Correct ubound expression for h4.
PR fortran/34785
* gfortran.dg/array_constructor_21.f90: New test.
Jerry DeLisle [Sun, 20 Jan 2008 06:33:49 +0000 (06:33 +0000)]
inquire.c (inquire_via_unit): If a unit is opened...
2008-01-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
* io/inquire.c (inquire_via_unit): If a unit is opened, return values
according to the open action for DIRECT, FORMATTED, and UNFORMATTED.
(inquire_via_filename): Return "UNKNOWN" for SEQUENTIAL, DIRECT,
FORAMATTED, and UNFORMATTED inquiries.
* io/unix.c (inquire_sequential): Return "UNKNOWN" when appropriate
for files that are not opened. (inquire_direct): Same.
(inquire_formatted): Same.
PR rtl-optimization/26854
PR rtl-optimization/34400
* ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
DF_RD->gen.
* df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
(df_rd_bb_info.expanded_lr_out): New.
* loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
* loop_iv.c (iv_analysis_loop_init): Ditto.
* df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
Added code to allocate, initialize or free expanded_lr_out.
(df_rd_bb_local_compute_process_def): Restructured to make
more understandable.
(df_rd_confluence_n): Add code to do nothing with fake edges and
code to no apply invalidate_by_call sets if the sets are being trimmed.
(df_lr_local_finalize): Renamed to df_lr_finalize.
(df_live_local_finalize): Renamed to df_live_finalize.
Jakub Jelinek [Sat, 19 Jan 2008 17:49:46 +0000 (18:49 +0100)]
re PR gcov-profile/34610 (ICE with "-fprofile-arcs -fopenmp")
PR gcov-profile/34610
* tree-cfg.c (make_edges): Mark both outgoing edges from
OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
* omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
from OMP_FOR and OMP_CONTINUE outgoing edges.
* tree-profile.c (tree_profiling): Return early if
cfun->after_tree_profile != 0. Set cfun->after_tree_profile
at the end.
* omp-low.c (expand_omp_parallel): Copy after_tree_profile
from cfun to child_cfun.
* function.h (struct function): Add after_tree_profile bit.
Kenneth Zadeck [Sat, 19 Jan 2008 00:38:34 +0000 (00:38 +0000)]
re PR tree-optimization/26854 (Inordinate compile times on large routines)
2008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
Steven Bosscher <stevenb.gcc@gmail.com>
PR rtl-optimization/26854
PR rtl-optimization/34400
* df-problems.c (df_live_scratch): New scratch bitmap.
(df_live_alloc): Allocate df_live_scratch when doing df_live.
(df_live_reset): Clear the proper bitmaps.
(df_live_bb_local_compute): Only process the artificial defs once
since the order is not important.
(df_live_init): Init the df_live sets only with the variables
found live by df_lr.
(df_live_transfer_function): Use the df_lr sets to prune the
df_live sets as they are being computed.
(df_live_free): Free df_live_scratch.
Co-Authored-By: Steven Bosscher <stevenb.gcc@gmail.com>
From-SVN: r131649
Tobias Burnus [Fri, 18 Jan 2008 23:46:04 +0000 (00:46 +0100)]
re PR fortran/32616 ("Too short actual argument" for array element storage sequence)
2008-01-18 Tobias Burnus <burnus@net-b.de>
PR fortran/32616
* interface.c (get_expr_storage_size): Return storage size
for array element designators.
(compare_actual_formal): Reject unequal string sizes for
assumed-shape dummy arguments. And fix error message for
array-sections with vector subscripts.
2008-01-18 Tobias Burnus <burnus@net-b.de>
PR fortran/32616
* gfortran.dg/argument_checking_15.f90: New.
* gfortran.dg/argument_checking_5.f90: Change TODO into
dg-warning.
Ian Lance Taylor [Fri, 18 Jan 2008 15:25:02 +0000 (15:25 +0000)]
re PR c++/33407 (C++ operator new and new expression do not change dynamic type)
PR c++/33407
./: * tree.h (DECL_IS_OPERATOR_NEW): Define.
(struct tree_function_decl): Add new field operator_new_flag.
* tree-inline.c (expand_call_inline): When inlining a call to
operator new, force the return value to go into a variable, and
set DECL_NO_TBAA_P on that variable.
* c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
cp/:
* decl.c (duplicate_decls): Copy DECL_IS_OPERATOR_NEW flag.
(grok_op_properties): For NEW_EXPR and VEC_NEW_EXPR set
DECL_IS_OPERATOR_NEW flag.
testsuite/:
* g++.dg/init/new26.C: New test.
Uros Bizjak [Fri, 18 Jan 2008 09:55:15 +0000 (10:55 +0100)]
re PR target/34484 (libgcc should check if feclearexcept (and others) available for BID support on uclibc)
PR debug/34484
* dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
DWARF2_DEBUGGING_INFO.
(dwarf2out_note_section_used): Ditto. Add prototype.
(have_multiple_function_sections, text_section_used,
cold_text_section_used, *cold_text_sections): Move declarations
before their uses.
Jerry DeLisle [Fri, 18 Jan 2008 02:08:22 +0000 (02:08 +0000)]
re PR fortran/34556 (Rejects valid with bogus error message: parameter initalization)
2008-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/34556
* simplify.c (is_constant_array_expr): New static function that returns
true if the given expression is an array and is constant.
(gfc_simplify_reshape): Use new function.
Bob Wilson [Fri, 18 Jan 2008 01:37:53 +0000 (01:37 +0000)]
unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc field and add signal_ra.
* config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
field and add signal_ra.
* config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
assignments to frame state pc. Move end of stack check after
MD_FALLBACK_FRAME_STATE_FOR.
(uw_update_context_1): Use frame state signal_regs if set, instead
of checking signal_frame flag.
(uw_update_context): Use frame state signal_ra if set.
* config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
* config/xtensa/linux-unwind.h: New file.
* match.c (gfc_match_common): Call gfc_free_common_tree () with
gfc_current_ns->common_root and set gfc_current_ns->common_root
to NULL on syntax error.
Seongbae Park [Thu, 17 Jan 2008 20:02:56 +0000 (20:02 +0000)]
re PR middle-end/34400 (bad interaction between DF and SJLJ exceptions)
2008-01-17 Seongbae Park <seongbae.park@gmail.com>
PR rtl-optimization/34400
* df-core.c (df_worklist_dataflow_overeager,
df_worklist_dataflow_doublequeue): New functions.
(df_worklist_dataflow): Two different worklist solvers.
* params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
New param.
Andreas Krebbel [Thu, 17 Jan 2008 16:18:59 +0000 (16:18 +0000)]
global.c (find_reg): Mark the eh regs as used if necessary.
2008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
* global.c (find_reg): Mark the eh regs as used if necessary.
* ra-conflict.c (global_conflicts): Set no_eh_reg flag.
* ra.h (struct allocno): no_eh_reg field added. Changed
no_stack_reg type to bitfield.
Paul Thomas [Thu, 17 Jan 2008 07:19:04 +0000 (07:19 +0000)]
re PR fortran/34429 (Fails: character(len=use_associated_const) function foo())
2008-01-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34429
PR fortran/34431
PR fortran/34471
* decl.c : Remove gfc_function_kind_locus and
gfc_function_type_locus. Add gfc_matching_function.
(match_char_length): If matching a function and the length
does not match, return MATCH_YES and try again later.
(gfc_match_kind_spec): The same.
(match_char_kind): The same.
(gfc_match_type_spec): The same for numeric and derived types.
(match_prefix): Rename as gfc_match_prefix.
(gfc_match_function_decl): Except for function valued character
lengths, defer applying kind, type and charlen info until the
end of specification block.
gfortran.h (gfc_statement): Add ST_GET_FCN_CHARACTERISTICS.
parse.c (decode_specification_statement): New function.
(decode_statement): Call it when a function has kind = -1. Set
and reset gfc_matching function, as function statement is being
matched.
(match_deferred_characteristics): Simplify with a single call
to gfc_match_prefix. Do appropriate error handling. In any
case, make sure that kind = -1 is reset or corrected.
(parse_spec): Call above on seeing ST_GET_FCN_CHARACTERISTICS.
Throw an error if kind = -1 after last specification statement.
parse.h : Prototype for gfc_match_prefix.
2008-01-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34429
* gfortran.dg/function_charlen_1.f90: New test.
PR fortran/34431
* gfortran.dg/function_types_1.f90: New test.
* gfortran.dg/function_types_2.f90: New test.
PR fortran/34471
* gfortran.dg/function_kinds_4.f90: New test.
* gfortran.dg/function_kinds_5.f90: New test.
* gfortran.dg/defined_operators_1.f90: Errors now at function
declarations.
* gfortran.dg/private_type_4.f90: The same.
* gfortran.dg/interface_15.f90: The same.
* gfortran.dg/elemental_args_check_2.f90: The same.
* gfortran.dg/auto_internal_assumed.f90: The same.
Richard Guenther [Wed, 16 Jan 2008 21:51:57 +0000 (21:51 +0000)]
re PR middle-end/32628 (bogus integer overflow warning)
2008-01-16 Richard Guenther <rguenther@suse.de>
PR middle-end/32628
* fold-const.c (fold_convert_const_int_from_int): Do not
set overflow if that occured only because of a sign extension
change when converting from/to a sizetype with the same
precision and signedness.
Sebastian Pop [Wed, 16 Jan 2008 16:23:20 +0000 (16:23 +0000)]
gcc.c (LINK_COMMAND_SPEC): Add includes and link options for libgomp when...
* gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
libgomp when compiling with ftree-parallelize-loops.
(GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.