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.
Richard Guenther [Wed, 16 Jan 2008 16:00:17 +0000 (16:00 +0000)]
re PR tree-optimization/34769 (gcc.dg/vect/no-vfa-pr29145.c)
2008-01-16 Richard Guenther <rguenther@suse.de>
PR tree-optimization/34769
* tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
* tree.c (int_cst_value): Instead make this function more
permissive in what it accepts as valid input. Document this
function always sign-extends the value.
Jakub Jelinek [Wed, 16 Jan 2008 13:41:13 +0000 (14:41 +0100)]
re PR middle-end/34668 (ICE in find_compatible_field with -combine)
2008-01-16 Jakub Jelinek <jakub@redhat.com>
Richard Guenther <rguenther@suse.de>
PR c/34668
* gimplify.c (fold_indirect_ref_rhs): Rename to ...
(gimple_fold_indirect_ref_rhs): ... this.
(gimple_fold_indirect_ref): New function with foldings
that preserve lvalueness.
(gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
* tree-flow.h (gimple_fold_indirect_ref): Declare.
* tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
to fold an INDIRECT_REF, fall back to the old use of
fold_indirect_ref_1.
* gcc.dg/pr34668-1.c: New test.
* gcc.dg/pr34668-2.c: Likewise.
Co-Authored-By: Richard Guenther <rguenther@suse.de>
From-SVN: r131572
Steven Bosscher [Wed, 16 Jan 2008 09:13:39 +0000 (09:13 +0000)]
re PR libfortran/34669 (libgfortran doesn't build with -pipe)
2008-01-16 Steven Bosscher <steven@gcc.gnu.org>
PR libfortran/34669
* mk-kinds-h.sh: Compile with -S to avoid calling the assembler,
to avoid piping the -fdump-parse-tree output to the assembler
when configuring with -pipe.
* mk-sik-inc.sh: Likewise.
* mk-srk-inc.sh: Likewise.
Tobias Burnus [Wed, 16 Jan 2008 07:12:00 +0000 (08:12 +0100)]
re PR fortran/34796 (Too strict error checking for assumed-shaped array)
2008-01-16 Tobias Burnus <burnus@net-b.de>
PR fortran/34796
* interface.c (compare_parameter): Allow AS_DEFERRED array
elements and reject attr.pointer array elemenents.
(get_expr_storage_size): Return storage size of elements of
assumed-shape and pointer arrays.