Commit Graph

59417 Commits

Author SHA1 Message Date
Tobias Schlüter
e5ddaa24be re PR fortran/16161 ([gfortran] IMPLICIT CHARACTER not implemented)
fortran/
PR fortran/16161
* decl.c (gfc_match_type_spec): Rename second argument to
'implicit_flag', reverse meaning. Don't match_char_spec if
'implicit_flag' is set. Rename to ...
(match_type_spec): ... this.
(gfc_match_implicit_none, match_implicit_range): Move here
from match.c.
(gfc_match_implicit): Move here from match.c, try to
match_char_len if match_implicit_range doesn't succeed for
CHARACTER implicits. Call renamed fucntion match_type_spec.
(gfc_match_data_decl, match_prefix): Call renamed function
match_type_spec.
* match.c (gfc_match_implicit_none, match_implicit_range,
gfc_match_implicit): Move to decl.c.
* match.h (gfc_match_implicit_none, gfc_match_implicit):
Move protoypes to section 'decl.c'.
(gfc_match_type_spec): Remove prototype.

testsuite/
PR fortran/16161
* gfortran.fortran-torture/compile/implicit.f90: Add test
for implicit character.

From-SVN: r83907
2004-06-30 14:48:51 +02:00
Roger Sayle
521903292c rs6000.c (rs6000_rtx_costs): Handle subtractions identically to additions, always COSTS_N_INSNS (1).
* config/rs6000/rs6000.c (rs6000_rtx_costs) <MINUS_EXPR>: Handle
	subtractions identically to additions, always COSTS_N_INSNS (1).

From-SVN: r83906
2004-06-30 12:46:52 +00:00
J"orn Rennecke
4c6fd544cc * expmed.c (expand_smod_pow2): Fix sign of mask.
From-SVN: r83905
2004-06-30 13:30:00 +01:00
David Billinghurst
807a7d143d re PR fortran/16289 (Test intrinsic_nearest.f90 not portable?)
2004-06-30  David Billinghurst (David.Billinghurst@riotinto.com)

	PR fortran/16289
	* gfortran.fortran-torture/execute/intrinsic_nearest.f90
	Use tiny() intrinsic to find smallest non-negative real

From-SVN: r83904
2004-06-30 11:50:45 +00:00
Jakub Jelinek
0984ba100b struct-by-value-22_main.c: New test.
* gcc.dg/compat/struct-by-value-22_main.c: New test.
	* gcc.dg/compat/struct-by-value-22_x.c: New.
	* gcc.dg/compat/struct-by-value-22_y.c: New.

From-SVN: r83903
2004-06-30 13:44:50 +02:00
Diego Novillo
bddeccfe5d tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariant to check for constants.
* tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariant
	to check for constants.
	(set_remove): Likewise.
	(value_replace_in_set): Likewise.
	(find_leader): Likewise.
	* tree-vn.c (set_value_handle): Likewise.
	(vn_lookup): Likewise.
	(vn_lookup_or_add): Likewise.

From-SVN: r83902
2004-06-30 07:06:28 -04:00
Eric Botcazou
9ac617d495 RTL prologue/epilogue for SPARC
RTL prologue/epilogue for SPARC
	* config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete.
	(sparc_skip_caller_unimp): Likewise.
	(load_pic_register): Likewise.
	(leaf_return_peephole_ok): Likewise.
	(compute_frame_size): Rename into sparc_compute_frame_size.
	(sparc_expand_prologue): New prototype.
	(sparc_expand_epilogue): Likewise.
	(output_return): Likewise.
	(eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
	* config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to
	compute_frame_size.  Move comment up.
	(DELAY_SLOTS_FOR_EPILOGUE): Delete.
	(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
	(EPILOGUE_USES): Return true for %g1 if the function uses EH return.
	* config/sparc/sparc.md (UNSPECV_SAVEW): New constant.
	(type attribute): Add 'return' and 'savew'.
	(eligible_for_return_delay): New attribute.
	(return): New delay_slot.
	(sibcall_epilogue): Call sparc_expand_epilogue.
	(prologue): Likewise.  Move up.
	(save_register_window): New expander.
	(save_register_windowsi): New pattern.
	(save_register_windowdi): Likewise.
	(epilogue): New expander.
	(return_internal): New pattern.
	(Return peepholes): Delete.
	* config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro.
	(sparc_emitting_epilogue): Delete.
	(sparc_skip_caller_unimp): Likewise.
	(sparc_sr_alias_set): New global variable.
	(frame_base_name): Delete.
	(frame_base_reg): New global variable.
	(sparc_override_options): Get new alias set for save/restore.
	(leaf_return_peephole_ok): Delete.
	(eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
	Factor out code into eligible_for_restore_insn_delay.
	(eligible_for_restore_insn_delay): New function extraced from above.
	Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE.
	(eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P.
	Factor out code into eligible_for_restore_insn_delay.
	(load_pic_register): Make static.  Remove check.
	(save_regs): Delete.
	(restore_regs): Likewise.
	(compute_frame_size): Rename into sparc_compute_frame_size.
	Rename leaf_function into leaf_function_p.
	(build_big_number): Delete.
	(save_or_restore_regs): New function.
	(emit_save_regs): Likewise.
	(emit_restore_regs): Likewise.
	(emit_stack_pointer_increment ): Likewise.
	(emit_stack_pointer_decrement): Likewise.
	(sparc_expand_prologue): Likewise.
	(sparc_function_prologue): Rename into sparc_asm_function_prologue.
	Remove all code to emit instructions.
	(sparc_expand_epilogue): New function.
	(sparc_function_epilogue): Rename into sparc_asm_function_epilogue.
	Remove all code to emit instructions.
	(output_restore): New function.
	(output_return): Likewise.
	(output_sibcall): Factor out code into output_restore.
	(print_operand): Adjust for frame_base_reg.
	* target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'.
	* target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define.
	(TARGET_INITIALIZER): Add it.
	* passes.c (rest_of_compilation): Set the conditional predicate
	'current_function_uses_only_leaf_regs' before sched2.  If target
	has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right
	before sched2.
	* reorg.c (return_insn_p): New predicate.
	(find_end_label): Use it.
	(relax_delay_slots): Do not thread an unconditional jump that points
	to the end return label.
	* doc/tm.texi (Registers) <Leaf Functions>: Clarify the validity
	domain of 'current_function_uses_only_leaf_regs'.
	(Stack and Calling) <Function Entry>: Document new target hook
	TARGET_LATE_RTL_PROLOGUE_EPILOGUE.

From-SVN: r83901
2004-06-30 10:31:30 +00:00
Jakub Jelinek
df62f18ae1 re PR tree-optimization/15310 ([tree-ssa] Optimize an addition in a bit field)
* simplify-rtx.c (simplify_binary_operation): Simplify
	((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and
	N has at least all bits in M set as well.

	PR tree-optimization/15310
	* expr.c (expand_assignment): Optimize += or -= on a bit field in
	most significant bits.

	* gcc.c-torture/execute/20040629-1.c: New test.

From-SVN: r83900
2004-06-30 12:09:55 +02:00
Geoffrey Keating
e6a0022b28 ffi_darwin.c (flush_icache): ';' is a comment character on Darwin, use '\n\t' instead.
* src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
	character on Darwin, use '\n\t' instead.

From-SVN: r83899
2004-06-30 09:55:13 +00:00
Steven Bosscher
852a13111d * config/c4x/c4x.md: Fix comment.
From-SVN: r83898
2004-06-30 09:32:41 +00:00
Paolo Carlini
badd64ad92 [multiple changes]
2004-06-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
            Paolo Carlini  <pcarlini@suse.de>

	* include/bits/cpp_type_traits.h: Add __is_pointer and
	__is_trivially_copyable.
	* include/bits/stl_algobase.h (fill, fill_n): Slightly
	tweak to use the latter.
	(__copy_backward_dispatch): Remove.
	(__copy_backward_aux): Rewrite to use __is_pointer and
	__is_trivially_copyable and __copy_backward::copy_b.
	(__copy_backward): Rewrite as a class template and two
	specializations.

2004-06-30  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/25_algorithms/copy.cc: Move to...
	* testsuite/25_algorithms/copy/1.cc: ... here, extend.
	* testsuite/25_algorithms/copy/2.cc: New.
	* testsuite/25_algorithms/copy/3.cc: New.
	* testsuite/25_algorithms/copy/4.cc: New.

From-SVN: r83897
2004-06-30 09:20:18 +00:00
Akos Kiss
3e1b8dc08b arm.md (cond_return_inverted): Add "length" attribute.
2004-0630  Akos Kiss  <akiss@inf.u-szeged.hu>
* arm.md (cond_return_inverted): Add "length" attribute.

From-SVN: r83896
2004-06-30 09:17:43 +00:00
Steve Kargl
fd53dbe051 rand.c (rand): Wrap the irand() call from the previous commit in prefix.
* intrinsics/rand.c (rand): Wrap the irand() call from the previous
	commit in prefix.

Co-Authored-By: Steven Bosscher <stevenb@suse.de>

From-SVN: r83895
2004-06-30 08:21:54 +00:00
Per Bothner
dd0d10e80c tree.c (build_min_nt, [...]): Don't set TREE_COMPLEXITY from input_line.
* tree.c (build_min_nt, build_min, build_min_non_dep):
	Don't set TREE_COMPLEXITY from input_line.

From-SVN: r83894
2004-06-29 23:42:43 -07:00
Per Bothner
ce7f2acdd9 winnt.c (i386_pe_encode_section_info): Smash rtlname's XSTR in place, so we don't lose SYMBOL_REF_DECL info.
* config/i386/winnt.c (i386_pe_encode_section_info):  Smash rtlname's
	XSTR in place, so we don't lose SYMBOL_REF_DECL info.

From-SVN: r83893
2004-06-29 22:04:38 -07:00
Per Bothner
8319dc8709 jni.cc (_Jv_JNI_NewGlobalRef, [...]): Remove needless parenthesis...
* jni.cc (_Jv_JNI_NewGlobalRef, JNICALL _Jv_JNI_DeleteGlobalRef,
	etc etc):  Remove needless parenthesis, which causes __stdcall__
	attribute on MinGW to get ignored.

From-SVN: r83892
2004-06-29 21:52:11 -07:00
Zack Weinberg
4877790048 * config/ia64/hpux.h: Target does too support thread-local storage.
From-SVN: r83891
2004-06-30 03:50:55 +00:00
Zack Weinberg
02bbc6ffc0 Revert accidental commit
From-SVN: r83890
2004-06-30 03:29:59 +00:00
Zack Weinberg
2cd54c2a56 combine.c (distribute_notes): Don't look at global_regs for pseudos.
* combine.c (distribute_notes): Don't look at global_regs for
	pseudos.

From-SVN: r83889
2004-06-30 03:28:31 +00:00
Richard Henderson
26d44ae2fd gimplify.c (gimplify_modify_expr_rhs): Move immediately before gimplify_modify_expr.
* gimplify.c (gimplify_modify_expr_rhs): Move immediately before
        gimplify_modify_expr.
        (gimplify_init_constructor): Likewise.  Gimplify the null
        CONSTRUCTOR assignment.
        (gimplify_modify_expr_to_memcpy): New.
        (gimplify_modify_expr_to_memset): New.
        (gimplify_modify_expr): Use them.

From-SVN: r83888
2004-06-29 17:38:18 -07:00
GCC Administrator
9d75385f5c Daily bump.
From-SVN: r83886
2004-06-30 00:16:13 +00:00
Roman Zippel
909b7f1689 web.c (union_defs): use all defs of an instruction to create a union with a read/write use
* web.c (union_defs): use all defs of an instruction to create a
        union with a read/write use

From-SVN: r83882
2004-06-29 16:19:20 -07:00
Richard Henderson
97bb4af77a re PR middle-end/16216 (ICE in gimplify_va_arg_expr after error)
PR middle-end/16216
        * builtins.c (gimplify_va_arg_expr): Check for valist being
        an error_mark_node.

From-SVN: r83881
2004-06-29 16:10:53 -07:00
Tobias Schlüter
beabab5904 Paul Brook <paul@codesourcery.com>
2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
Paul Brook  <paul@codesourcery.com>

* runtime/normalize.c (normalize_r4_i4, normalize_r8_i8): Fix
comments.
* intrinsics/rand.c (rand): Call irand() in call to normalize_r4_i4.

Co-Authored-By: Paul Brook <paul@codesourcery.com>

From-SVN: r83880
2004-06-30 00:52:58 +02:00
Frank Ch. Eigler
dfdf6a9440 [multiple changes]
2004-06-29  Frank Ch. Eigler  <fche@redhat.com>

	Splay tree implementation fork.
	* splay-tree.c, splay-tree.h: Copied & modified from libiberty.
	Use hard-coded comparison function for uintptr_t.  Remove key/value
	deallocation logic.  Cache last splayed key for consecutive lookups.
	* Makefile.am, Makefile.in: Use them, don't link to them.
	* mf-runtime.c (__mf_object_tree): Adapt to simpler splay_tree_new.
	(__mf_find_objects2): Flip successor/predecessor search sequence.
	* ansidecl.h, libiberty.h: Removed dummy files.


2004-06-29  Nick Clifton  <nickc@redhat.com>

From-SVN: r83879
2004-06-29 22:30:53 +00:00
Tobias Schlüter
ef558756f2 decl.c, [...]: Add 2004 to copyright years.
* decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
copyright years.

Co-Authored-By: Andrew Vaught <andyv@firstinter.net>

From-SVN: r83878
2004-06-30 00:11:38 +02:00
Steven Bosscher
7ab9258466 Make sure types in assignments are compatible.
2004-06-29  Steven Bosscher  <stevenb@suse.de>

	Make sure types in assignments are compatible.  Mostly mechanical.
	* trans-const.h (gfc_index_one_node): New define.
	* trans-array.c (gfc_trans_allocate_array_storage,
	gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
	gfc_trans_array_constructor_value, gfc_trans_array_constructor,
	gfc_conv_array_ubound, gfc_conv_array_ref,
	gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
	gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
	gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
	gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
	types in assignments, conversions and conditionals for expressions.
	* trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
	gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
	gfc_conv_function_call, gfc_trans_pointer_assignment,
	gfc_trans_scalar_assign): Likewise.
	* trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
	gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
	gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
	gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
	gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
	gfc_conv_allocated, gfc_conv_associated,
	gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
	* trans-io.c (set_string): Likewise.
	* trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
	gfc_do_allocate, generate_loop_for_temp_to_lhs,
	generate_loop_for_rhs_to_temp, compute_inner_temp_size,
	compute_overall_iter_number, gfc_trans_assign_need_temp,
	gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
	gfc_evaluate_where_mask, gfc_trans_where_assign,
	gfc_trans_where_2): Likewise.
	* trans-types.c (gfc_get_character_type, gfc_build_array_type,
	gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.

	* trans.c (gfc_add_modify_expr): Add sanity check that types
	for the lhs and rhs are the same for scalar assignments.

From-SVN: r83877
2004-06-29 22:01:35 +00:00
Tobias Schlüter
e23667c608 Fix ChangeLog entry
From-SVN: r83876
2004-06-29 23:33:24 +02:00
Tobias Schlüter
439251f70b Revert previous accidental commit.
From-SVN: r83875
2004-06-29 23:22:18 +02:00
Tobias Schlüter
fbc9b45313 dump-parse-tree.c (show_common): New function.
* dump-parse-tree.c (show_common): New function.
(gfc_show_namespace): Show commons.

From-SVN: r83874
2004-06-29 23:18:10 +02:00
Jakub Jelinek
57512331da vector-defs.h: Use vector_size attribute only for GCC 3.5+...
* gcc.dg/compat/vector-defs.h: Use vector_size attribute
	only for GCC 3.5+, for GCC up to 3.4 mode(V*) attribute instead.

From-SVN: r83873
2004-06-29 21:31:55 +02:00
Jakub Jelinek
b4db40bf1d re PR target/16195 ([3.4 only] Miscompilation of GCC 3.3.x by 3.4.x)
PR target/16195
	* config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
	r30 fixed if TARGET_TOC && TARGET_MINIMAL_TOC.
	(first_reg_to_save): Pretend call_used_regs[30] is 0 if
	TARGET_TOC && TARGET_MINIMAL_TOC.
	(rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.

	* gcc.dg/20040625-1.c: New test.

From-SVN: r83872
2004-06-29 21:27:07 +02:00
Tobias Schlüter
9056bd7025 Andrew Vaught <andyv@firstinter.net>
2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
Andrew Vaught  <andyv@firstinter.net>

PR fortran/13249
PR fortran/15481
* declc (gfc_match_save): Adapt to new common structures,
don't allow saving USE-associated common.
* dump-parse-tree (gfc_show_attr): (saved_)common are not
symbol attributes any longer.
(gfc_show_symbol): Don't show old-style commons any longer.
(gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
interface.
* gfortran.h (symbol_attribute): Remove common and saved_common
attributes.
(gfc_symbol): Remove common_head element.
(gfc_common_head): New struct.
(gfc_get_common_head): New macro.
(gfc_symtree): Add field 'common' to union.
(gfc_namespace): Add field 'common_root'; change type of field
'blank_common' to blank_common.
(gfc_add_data): New prototype.
(gfc_traverse_symtree): Expect a symtree as first argument
instead of namespace.
* match.c (gfc_get_common): New function.
(match_common_name): Change to take char * as argument, adapt,
fix bug with empty name.
(gfc_match_common): Adapt to new data structures. Disallow
redeclaration of USE-associated COMMON-block. Fix bug with
empty common.
(var_element): Adapt to new common structures.
* match.h (gfc_get_common): Declare.
* module.c: Add 2004 to copyright years, add commons to module
file layout description.
(ab_attribute, attr_bits, mio_symbol_attributes): Remove code
for removed attributes.
(mio_symbol): Adapt to new way of storing common relations.
(load_commons): New function.
(read_module): Skip common list on first pass, load_commons at
second.
(write_commons): New function.
(write_module): Call write_commons().
* symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
functions related to removed attributes.
(gfc_add_data): New function.
(gfc_clear_attr): Don't set removed attributes.
(gfc_copy_attr): Don't copy removed attributes.
(traverse_symtree): Remove.
(gfc_traverse_symtree): Don't traverse symbol
tree of the passed namespace, but require a symtree to be passed
instead. Unify with traverse_symtree.
(gfc_traverse_ns): Call gfc_traverse_symtree according to new
interface.
(save_symbol): Remove setting of removed attribute.
* trans-common.c (gfc_sym_mangled_common_id): Change to
take 'char *' argument instead of 'gfc_symbol'.
(build_common_decl, new_segment, translate_common): Adapt to new
data structures, add new
argument name.
(create_common): Adapt to new data structures, add new
argument name. Fix typo in intialization of derived types.
(finish_equivalences): Add second argument in call to
create_common.
(named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
(gfc_trans_common): Adapt to new data structures.
* trans-decl.c (gfc_create_module_variables): Also output
symbols from commons.

Co-Authored-By: Andrew Vaught <andyv@firstinter.net>

From-SVN: r83871
2004-06-29 20:57:25 +02:00
Tobias Schlüter
50d78f96d0 * io.c: Add 2004 to copyright years.
From-SVN: r83870
2004-06-29 20:55:11 +02:00
Bryce McKinlay
b4bbd47e22 re PR tree-optimization/16249 (ICE in calculate_live_on_entry, at tree-ssa-live.c:724)
* testsuite/libjava.compile/PR16249.java: New test case. PR
	gcc/16249.

From-SVN: r83869
2004-06-29 19:09:58 +01:00
Tobias Schlüter
c95430028c Andrew Vaught <andyv@firstinter.net>
2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
Andrew Vaught  <andyv@firstinter.net>

* gfortran.h (gfc_gsymbol): New typedef.
(gfc_gsym_root): New variable.
(gfc_get_gsymbol, gfc_find_gsym): New prototypes.
* parse.c (global_used): New function.
(parse_block_data): Check for double empty BLOCK DATA,
use global symbol table.
(parse_module): Use global symbol table.
(add_global_procedure, add_global_program): New functions.
(gfc_parse_file): Use global symbol table.
* symbol.c (gfc_gsym_root): New variable.
(gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
functions.

Co-Authored-By: Andrew Vaught <andyv@firstinter.net>

From-SVN: r83868
2004-06-29 20:01:04 +02:00
Bryce McKinlay
9c5fdae633 re PR java/1262 (Method with default access can be overridden in another package)
PR java/1262
	* class.c (layout_class_method): Do not override package-private
	method if its in a different package.
	(split_qualified_name): Move here from parse.y. Rename from
	breakdown_qualified. Add comment.
	(in_same_package): Move here from parse.y. Add comment.
	* java-tree.h (break_down_qualified, in_same_package): Declare.
	(in_same_package): Likewise.
	* parse.y (breakdown_qualified, in_same_package): Moved to class.c.
	Callers updated.

From-SVN: r83867
2004-06-29 18:58:44 +01:00
Joern Rennecke
4961683533 Fix gcc.dg/builtin-apply2.c failures:
* sh.h (TARGET_VARARGS_PRETEND_ARGS): Define.
	* sh.c (extra_push): Delete.
	(sh_expand_prologue): Don't do extra stack adjustment for
	current_function_pretend_args_size if it comes from varargs setup.
	Use TARGET_VARARGS_PRETEND_ARGS.  Don't set extra_push.
	(sh_expand_epilogue): Don't use extra_push.
	(sh_setup_incoming_varargs): Set pretend_arg_size when necessary.

From-SVN: r83864
2004-06-29 18:37:13 +01:00
Joern Rennecke
8d2fb08dbf Fix gcc.dg/builtin-apply2.c failures:
* sh.h (TARGET_VARARGS_PRETEND_ARGS): Define.
	* sh.c (extra_push): Delete.
	(sh_expand_prologue): Don't do extra stack adjustment for
	current_function_pretend_args_size if it comes from varargs setup.
	Use TARGET_VARARGS_PRETEND_ARGS.  Don't set extra_push.
	(sh_expand_epilogue): Don't use extra_push.
	(sh_setup_incoming_varargs): Set pretend_arg_size when necessary.

[[Split portion of a mixed commit.]]

From-SVN: r83863.2
2004-06-29 18:37:06 +01:00
Tobias Schlüter
78f2fb0858 module.c (mio_gmp_real): Correct writing of negative numbers.
fortran/
* module.c (mio_gmp_real): Correct writing of negative numbers.

testsuite/
* gfortran.fortran-torture/execute/parameter_2.f90: New test.

Also corrected dates in previous ChangeLog entries

From-SVN: r83862
2004-06-29 19:21:37 +02:00
Roger Sayle
1c234fcb72 expmed.c (expand_smod_pow2): Provide alternate implementations that avoid conditional jumps...
* expmed.c (expand_smod_pow2): Provide alternate implementations
	that avoid conditional jumps, and choose between them based upon
	the target's rtx_costs.

From-SVN: r83861
2004-06-29 17:13:08 +00:00
Andrew Pinski
e1514303f2 tree-sra.c: Include expr.h for definition of MOVE_RATIO.
2004-06-29  Andrew Pinski  <apinski@apple.com>

        * tree-sra.c: Include expr.h for definition of MOVE_RATIO.
        * Makefile.in (tree-sra.c): Update dependencies.

From-SVN: r83860
2004-06-29 10:04:44 -07:00
Tobias Schlüter
e063a0486f re PR fortran/15963 (Error when comparing characters in restricted expression)
fortran/
PR fortran/15963
* expr.c (check_intrinsic_op): Allow comparison of characters.
Make logic easier.

testsuite/
PR fortran/15963
* gfortran.fortran-torture/execute/initialization_1.f90: New test.

From-SVN: r83859
2004-06-29 19:01:35 +02:00
Richard Henderson
97e73bd250 tree-sra.c: Rewrite from scratch.
* tree-sra.c: Rewrite from scratch.  Handle nested aggregates.
        * gcc.dg/tree-ssa/20040430-1.c: Expect zero if's.

From-SVN: r83858
2004-06-29 09:25:28 -07:00
Andrew Haley
ba60e4754a except.c (expand_start_java_handler): Push a new binding level.
2004-06-29  Andrew Haley  <aph@redhat.com>

        * except.c (expand_start_java_handler): Push a new binding level.
        Don't build a TRY_CATCH_EXPR now, we'll do it later.  Call
        register_exception_range() to register where we'll do it.
        (expand_end_java_handler): Remove old bogus code.  Replace with
        new logic that simply builds TRY_CATCH_EXPRs and inserts them at
        the top of the expression we're curently building.
        (maybe_end_try): Delete.
        * decl.c (binding_level.exception_range): New field.
        (clear_binding_level): Add field exception_range.  Reformat.
        (poplevel): Call expand_end_java_handler().
        (poplevel): Call java_add_stmt only if functionbody is false.
        (maybe_poplevels): Don't call maybe_end_try() from here.
        (end_java_method): Clear no longer used trees in function decl.
        (register_exception_range): New function.
        * java-tree.h (register_exception_range, struct eh_range): Declare.

From-SVN: r83857
2004-06-29 16:18:46 +00:00
Nathan Sidwell
9f6eb0f4db vec.h (VEC_T_safe_push, [...]): Tweak for when size_t is bigger than int.
* vec.h (VEC_T_safe_push, VEC_T_safe_insert): Tweak for when
	size_t is bigger than int.

From-SVN: r83855
2004-06-29 15:56:17 +00:00
Paul Brook
46e995e0e4 target-def.h (TARGET_CXX_GET_COOKIE_SIZE, [...]): Define.
gcc/
	* target-def.h (TARGET_CXX_GET_COOKIE_SIZE,
	TARGET_CXX_COOKIE_HAS_SIZE): Define.
	(TARGET_CXX): Use them.
	* target.h (struct gcc_target): Add cxx.get_cookie_size and
	cxx.cookie_has_size.
	* targhooks.c (default_cxx_get_cookie_size): New fucntion.
	* targhooks.h (default_cxx_get_cookie_size): Add prototype.
	* config/arm/arm.c (TARGET_CXX_GET_COOKIE_SIZE,
	TARGET_CXX_COOKIE_HAS_SIZE): Define.
	(arm_get_cookie_size, arm_cookie_has_size): New functions.
	* Make-lang.in (cp/init.o): Add dependency on $(TARGET_H).
	* doc/tm.texi: Document TARGET_CXX_GET_COOKIE_SIZE and
	TARGET_CXX_COOKIE_HAS_SIZE.
gcc/cp/
	* init.c: Include target.h.
	(get_cookie_size): Remove and replace with target hook.
	Update callers.
	(build_new_1): Store the element size in the cookie.
libstdc++-v3/
	* libsupc++/vec.cc (__cxa_vec_new2, __cxa_vec_new3): Store the
	element size in the cookie.
testsuite/
	* g++.old-deja/g++.abi/arraynew.C: Handle ARM EABI cookies.
	* g++.old-deja/g++.abi/cxa_vec.C: Allocate larger cookies for AEABI.

From-SVN: r83854
2004-06-29 14:50:35 +00:00
Danny Smith
50a2de961f * lrealpath.c (lrealpath): Add _WIN32 support.
From-SVN: r83853
2004-06-29 11:37:20 +00:00
Nathan Sidwell
fe88415f1b re PR c++/16260 (ICE in template function)
cp:
        PR c++/16260
        * parser.c (cp_parser_template_declaration_after_export): Disable
        access checks here ...
        (cp_parser_class_specifier): ... not here.
testsuite:
        PR c++/16260
        * g++.dg/parse/crash15.C: New.

From-SVN: r83851
2004-06-29 11:10:11 +00:00
Nick Clifton
962fe3950f configure.ac (AC_CHECK_HEADERS): Add dirent.h configure: Regenerate.
configure.ac (AC_CHECK_HEADERS): Add dirent.h
configure: Regenerate.
mf-hooks2.c: Surround uses of dirent.h with #ifdef HAVE_DIRENT_H.
  Remove spurious inclusion of <strings.h>.

From-SVN: r83850
2004-06-29 10:27:15 +00:00