Paul Thomas [Sun, 6 Nov 2005 20:05:12 +0000 (20:05 +0000)]
re PR fortran/24534 (PUBLIC derived types with private components)
2005-11-06 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24534
* resolve.c (resolve_symbol): Exclude case of PRIVATE declared
within derived type from error associated with PRIVATE type
components within derived type.
PR fortran/20838
PR fortran/20840
* gfortran.h: Add prototype for gfc_has_vector_index.
* io.c (gfc_resolve_dt): Error if internal unit has a vector index.
* expr.c (gfc_has_vector_index): New function to check if any of
the array references of an expression have vector inidices.
(gfc_check_pointer_assign): Error if internal unit has a vector index.
PR fortran/17737
* data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE
and replace by a standard dependent warning/error if overwriting an
existing initialization.
* decl.c (gfc_data_variable): Remove old error for already initialized
variable and the unused error check for common block variables. Add
error for hots associated variable and standard dependent error for
common block variables, outside of blockdata.
* symbol.c (check_conflict): Add constraints for DATA statement.
2005-11-06 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24534
gfortran.dg/private_type_2.f90: Modified to check that case with
PRIVATE declaration within derived type is accepted.
PR fortran/20838
gfortran.dg/pointer_assign_1.f90: New test.
PR fortran/20840
* gfortran.dg/arrayio_0.f90: New test.
PR fortran/17737
gfortran.dg/data_initialized.f90: New test.
gfortran.dg/data_constraints_1.f90: New test.
gfortran.dg/data_constraints_2.f90: New test.
Mark Mitchell [Sun, 6 Nov 2005 19:41:18 +0000 (19:41 +0000)]
re PR c++/21308 (Very high compile time)
PR c++/21308
* class.c (sizeof_biggest_empty_class): New variable.
(record_subobject_offsets): Don't record offsets past biggest
empty class for data members. Replace vbases_p parameter with
is_data_member parameter.
(build_base_field): Adjust call.
(layout_class_type): Likewise. Maintain
sizeof_biggest_empty_class.
Joseph Myers [Sun, 6 Nov 2005 18:29:17 +0000 (18:29 +0000)]
gcc_release: Further update for SVN.
* gcc_release: Further update for SVN. Don't set EXPORTTAG or
EXPORTDATE; always determine SVNREV the same way. Correct message
about what sources are being retrived. Include branch information
in LAST_UPDATED.
* crontab: Don't include initial / in branch name.
Daniel Berlin [Sun, 6 Nov 2005 02:37:29 +0000 (02:37 +0000)]
gcc_release: Always determine revision number from date or tag...
2005-11-05 Daniel Berlin <dberlin@dberlin.org>
* gcc_release: Always determine revision number from date or tag,
and use that, instead of fragile date based export.
Put back setting of non-local CVSROOT.
Sebastian Pop [Sat, 5 Nov 2005 16:50:47 +0000 (17:50 +0100)]
lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS for testing whether the data_dependence_relation...
* lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
for testing whether the data_dependence_relation contains distance
vectors. Iterate over all distance vectors of the ddr.
* lambda.h: Define a vec of lambda_vector pointers.
* tree-data-ref.c (dump_data_dependence_relation,
dump_data_dependence_direction): Iterate over all distance and
direction vectors of the ddr.
(initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
DDR_DIST_VECTS.
(build_classic_dist_vector, build_classic_dir_vector): Push a set
of distance/direction vectors instead of a single one.
* tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
lambda_vectors with a vec of lambda_vectors.
(DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
(DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
DDR_NUM_DIST_VECTS): New.
* tree-loop-linear.c (gather_interchange_stats): Test for the
existence of distance vectors only after having checked that there
is a dependence. Iterate over all distance vectors of the ddr.
(linear_transform_loops): Use dump_data_dependence_relation.
* tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
distance vectors using DDR_NUM_DIST_VECTS. Iterate over all the
distance vectors of the ddr.
Bernd Schmidt [Sat, 5 Nov 2005 11:29:33 +0000 (11:29 +0000)]
bfin.c (n_dregs_to_save, [...]): New argument IS_INTHANDLER; all callers changed.
* config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
IS_INTHANDLER; all callers changed.
(n_regs_saved_by_prologue): Take interrupt handler attributes into
account.
(do_link, do_unlink): New argument ALL; all callers changed.
(expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
If function isn't leaf, save and restore all registers.
(bfin_function_ok_for_sibcall): Only true if not an interrupt or
exception handler.
intrinsic.c (add_functions): Add function version of TTYNAM.
* intrinsic.c (add_functions): Add function version of TTYNAM.
* intrinsic.h: Add prototypes for gfc_check_ttynam and
gfc_resolve_ttynam.
* gfortran.h: Add case for GFC_ISYM_TTYNAM.
* iresolve.c (gfc_resolve_ttynam): New function.
* trans-decl.c (gfc_build_intrinsic_function_decls): Add a tree
for function call to library ttynam.
* check.c (gfc_check_ttynam): New function.
* trans-intrinsic.c (gfc_conv_intrinsic_ttynam): New function.
(): Call gfc_conv_intrinsic_ttynam.
* trans.h: Add prototype for gfor_fndecl_ttynam.
Jan Hubicka [Sat, 5 Nov 2005 00:54:05 +0000 (01:54 +0100)]
ipa-inline.c (cgraph_decide_inlining_of_small_function, [...]): Do not hold memory returned by cgraph_node_name across other call.
* ipa-inline.c (cgraph_decide_inlining_of_small_function,
cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
Do not hold memory returned by cgraph_node_name across other call.
* doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
* tree-ssa-dom.c: Include params.h.
(thread_across_edge): If there are too many statements in the
target block, then do not thread through it.
* Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
* params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
Sebastian Pop [Fri, 4 Nov 2005 19:10:04 +0000 (20:10 +0100)]
tree-scalar-evolution.c (instantiate_parameters_1, [...]): Compute the size of an expression to be instantiated and give up the...
PR/18595
* tree-scalar-evolution.c (instantiate_parameters_1,
instantiate_parameters, resolve_mixers): Compute the size of an
expression to be instantiated and give up the instantiation if the
size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
tree-flow.h (ref_contains_indirect_ref): Rename to array_ref_contains_indirect_ref.
2005-11-04 Richard Guenther <rguenther@suse.de>
* tree-flow.h (ref_contains_indirect_ref): Rename to
array_ref_contains_indirect_ref.
* tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
(array_ref_contains_indirect_ref): Make comment match the code
and vice-versa.
(ref_contains_array_ref): Likewise.
* tree-ssa-structalias.c (find_func_aliases): Remove call to
ref_contains_indirect_ref.
* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
Rename calls to ref_contains_indirect_ref.
Paul Brook [Fri, 4 Nov 2005 15:43:51 +0000 (15:43 +0000)]
arm.c (arm_load_pic_register): Pass extra reg to gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
gcc/
* config/arm/arm.c (arm_load_pic_register): Pass extra reg to
gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
(arm_call_tls_get_addr, legitimize_tls_address): Likewise.
* config/arm/arm.md: Use match_operand in peephole input templates
and match_dup in peephole output templates.
gcc/testsuite/
* gcc.dg/tls/opt-10.c: New test.
Tom Tromey [Fri, 4 Nov 2005 15:08:18 +0000 (15:08 +0000)]
PR libgcj/14358, libgcj/24552:
* gnu/gcj/convert/IOConverter.java: Regenerate aliases. Add
aliases for 'euc_jp' and 'eucjp'.
* scripts/encodings.pl: Recognize 'none', not 'NONE'. Include
canonical names in output.
(%map): Added UnicodeLittle and UnicodeBig.
re PR libfortran/22298 (libgfortran init() constructor isn't called if executable is statically linked)
PR libfortran/22298
* runtime/main.c (stupid_function_name_for_static_linking): New
function.
* runtime/error.c (internal_error): Call
stupid_function_name_for_static_linking.
* libgfortran.h: Add prototype for
stupid_function_name_for_static_linking.
* gcc/testsuite/lib/target-supports.exp
(check_effective_target_static_libgfortran): New
static_libgfortran effective target.
* gcc/testsuite/gfortran.dg/static_linking_1.f: New test.
* gcc/testsuite/gfortran.dg/static_linking_1.c: New file.
re PR fortran/18452 (Fortran options induces warning for fortran that needs preprocessing)
PR fortran/18452
* gcc/fortran/lang-specs.h: Pass -lang-fortran to the preprocessor.
* gcc/c.opt: Add a -lang-fortran option.
* gcc/c-opts.c: Add a lang_fortran flag.
(c_common_init_options): Handling the -lang-fortran option.
(c_common_handle_option): Add a case for Fortran options in
preprocessing. Remove cases for -ffixed-form and
-ffixed-line-length. Add a case for -lang-fortran.
Josh Conner [Fri, 4 Nov 2005 01:23:22 +0000 (01:23 +0000)]
re PR c++/19989 (Inconsistency with zero-sized arrays)
PR c++/19989
cp/pt.c (tsubst): Accept zero-length array if tf_error is set
in complain flags. Change error message for negative-
length array.
testsuite/g++.dg/ext/array2.C: New test.
testsuite/g++.dg/template/dependent-name3.C: New test.
testsuite/g++.dg/template/dependent-name4.C: New test.
testsuite/g++.dg/template/sfinae2.C: New test.
Eric Botcazou [Thu, 3 Nov 2005 19:57:55 +0000 (19:57 +0000)]
dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
* dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
reference only if 'public' is true.
(dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
emit the .hidden directive only if the indirect reference is public.
(dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
Pass it to dw2_force_const_mem.
* dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
* dwarf2out.c (output_cfi): Adjust calls to above function.
(output_call_frame_info): Likewise.
* except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
as 'public' argument to dw2_asm_output_encoded_addr_rtx.
Andrew Pinski [Thu, 3 Nov 2005 16:15:53 +0000 (16:15 +0000)]
re PR middle-end/23155 (Gimplification failed for union cast)
2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23155
* g++.dg/ext/c99struct1.C: New test.
* gcc.dg/union-cast-1.c: New test.
* gcc.dg/union-cast-2.c: New test.
* gcc.dg/union-cast-3.c: New test.
2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23155
* gimplifier.c (gimplify_expr): Create a temporary for lvalue
CONSTRUCTOR.
Daniel Berlin [Thu, 3 Nov 2005 15:39:48 +0000 (15:39 +0000)]
re PR tree-optimization/24351 (ICE in do_simple_structure_copy with some C++ code)
2005-11-03 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/24351
* tree-ssa-structalias.c (struct variable_info): Add
collapsed_into.
(get_varinfo_fc): New function to follow collapsing.
(new_var_info): Set collapsed_to to NULL.
(dump_constraint): Follow collapsing.
(build_constraint_graph): Handle collapsing.
(do_simple_structure_copy): Return false if something bad
happened.
(collapse_rest_of_var): New function.
(do_structure_copy): Collapse if do_simple_structure_copy returns
false.
Paolo Carlini [Thu, 3 Nov 2005 13:13:21 +0000 (13:13 +0000)]
sso_string_base.h (__sso_string_base<>::_M_swap): Change the various traits_type::copy call to always copy the entire local buffer...
2005-11-03 Paolo Carlini <pcarlini@suse.de>
* include/ext/sso_string_base.h (__sso_string_base<>::_M_swap):
Change the various traits_type::copy call to always copy the
entire local buffer; return early and don't do a full swap on
the lengths for two common cases; change two _S_copy to plain
traits_type::copy.
Eric Botcazou [Thu, 3 Nov 2005 11:31:46 +0000 (12:31 +0100)]
re PR rtl-optimization/23585 (mem_fun* code fine with -O1, bus error with -O2)
PR rtl-optimization/23585
* rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
that can't trap plus a constant integer, if the mode has zero size.
Mark Mitchell [Wed, 2 Nov 2005 23:36:05 +0000 (23:36 +0000)]
re PR c++/24560 ("insufficient contextual information to determine type" is not a helpful error message)
PR c++/24560
* parser.c (cp_parser_postfix_dot_deref_expression): Improve error
message for use of overloaded functions on LHS of "." operator.
PR c++/24560
* g++.dg/parse/dot1.C: New test.
Ulrich Weigand [Wed, 2 Nov 2005 23:16:31 +0000 (23:16 +0000)]
re PR target/24615 (internal compiler error: in print_shift_count_operand, at config/s390/s390.c:4025)
ChangeLog:
PR target/24615
* config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
* config/s390/s390.c (s390_decompose_shift_count): New function.
(s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
(print_shift_count_operand): Use s390_decompose_shift_count.
* config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
Use s390_decompose_shift_count. Do not accept any non-base hard regs.
PR 22429
* fold-const.c (build_range_check): Use unsigned when signed
overflow is undefined also. If etype is subtype, make sure that
the subtraction is in the supertype.
Mark Mitchell [Wed, 2 Nov 2005 21:34:51 +0000 (21:34 +0000)]
re PR c++/19253 (bad error message / ICE for invalid template parameter)
PR c++/19253
* parser.c (cp_parser_postfix_expression): Use
cp_parser_elaborated_type_specifier to handle typename-types in
functional casts.
(cp_parser_enclosed_argument_list): Skip ahead to the end of the
template argument list if the closing ">" is not found.
PR c++/19253
* g++.dg/parse/typename8.C: Compile with -w -fpermissive.
* g++.dg/parse/typename9.C: New test.
* g++/dg/parse/typename10.C: Likewise.
Andrew Pinski [Wed, 2 Nov 2005 21:01:54 +0000 (21:01 +0000)]
re PR fortran/18157 (ice-on-valid code, pointer to user-defined type, fold-struct.c)
2005-11-02 Andrew Pinski <pinskia@physics.uc.edu>
PR fortran/18157
* gfortran.fortran-torture/compile/defined_type_1.f90: New test.
* gfortran.fortran-torture/compile/defined_type_2.f90: New
test.
* gfortran.fortran-torture/compile/defined_type_3.f90:
New test.
2005-11-02 Andrew Pinski <pinskia@physics.uc.edu>
PR fortran/18157
* trans-array.c (gfc_conv_resolve_dependencies): Use the correct
type for the temporary array.
* trans-expr.c (gfc_trans_assignment): Pass lss
instead of lss_section
to gfc_conv_resolve_dependencies to get the
correct type.
Tobias Schlüter [Wed, 2 Nov 2005 00:04:28 +0000 (01:04 +0100)]
decl.c (gfc_match_entry): Function entries don't need an argument list if there's no RESULT clause.
fortran/
* decl.c (gfc_match_entry): Function entries don't need an argument
list if there's no RESULT clause.
testsuite/
* gfortran.fortran-torture/execute/entry_9.f90: Revert previous
change (r106358).