Commit Graph

69704 Commits

Author SHA1 Message Date
Ben Elliston
12548280a2 xregex2.h (regexec): Qualify this prototype with __extension__ when compiling with GNU C.
* xregex2.h (regexec): Qualify this prototype with __extension__
	when compiling with GNU C.

From-SVN: r101910
2005-07-12 14:39:07 +10:00
Richard Henderson
d6e9821fde alpha.c (alpha_gimplify_va_arg_1): Use build_va_arg_indirect_ref.
* config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use
        build_va_arg_indirect_ref.
        (alpha_gimplify_va_arg): Likewise.
        * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
        * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
        * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise.
        * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
        * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
        * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg):
        Likewise.
        * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.

From-SVN: r101909
2005-07-11 20:48:20 -07:00
David Edelsohn
4e402b2ce3 re PR libfortran/22412 ([4.0 only] Fortran B edit descriptor error)
PR libgfortran/22412
        * io/write.c (otoa): Bias p by SCRATCH_SIZE, not
        sizeof (SCRATCH_SIZE).
        (btoa): Same.

From-SVN: r101908
2005-07-11 23:27:40 -04:00
GCC Administrator
020b834ab2 Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r101903.2
2005-07-12 00:16:16 +00:00
Zdenek Dvorak
b7eae7b8d1 tree-flow.h (remove_empty_loops, [...]): Declare.
* tree-flow.h (remove_empty_loops, single_dom_exit): Declare.
	* passes.c (init_optimization_passes): Add pass_empty_loop.
	* tree-pass.h (pass_empty_loop): Declare.
	* tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop,
	try_remove_empty_loop, remove_empty_loops): New functions.
	* tree-ssa-loop-ivopts.c (single_dom_exit): Export.
	* tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New.

	* gcc.dg/tree-ssa/loop-10.c: New test.

From-SVN: r101901
2005-07-11 23:59:17 +00:00
Peter Barada
70028b6145 re PR target/16719 ([ColdFire] Illegal move of byte itno address register causes compiler to ICE)
PR middle-end/16719
	PR middle-end/18421
	* config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
	in address registers.
	* config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
	* config/m68k/m68k.md: Replace 's' with 'i' in 4th
	alternative of addsi3_5200.

From-SVN: r101900
2005-07-12 01:32:01 +02:00
Ian Lance Taylor
8564e10e6e * config/mips/mips.md (ffs<mode>2): Remove.
From-SVN: r101896
2005-07-11 18:48:37 +00:00
Ian Lance Taylor
2f6bd5398e tree-ssa.texi (Cleanups): Improve description of TRY_FINALLY_EXPR.
* doc/tree-ssa.texi (Cleanups): Improve description of
	TRY_FINALLY_EXPR.
	(GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases.

From-SVN: r101895
2005-07-11 18:46:50 +00:00
Daniel Berlin
046a69e067 re PR tree-optimization/22404 (ICE in first_vi_for_offset)
2005-07-11  Daniel Berlin  <dberlin@dberlin.org>

	* print-tree.c (print_node): Use DECL_ARGUMENT_FLD.
	* tree.h (DECL_ARGUMENT_FLD): New macro.

2005-07-11  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22404

	* tree-ssa-structalias.c (create_variable_info_for): Use
	correct offset.

From-SVN: r101894
2005-07-11 18:28:36 +00:00
Kazu Hirata
ebde3ea873 * gcc.c-torture/execute/20020720-1.x: Remove.
From-SVN: r101893
2005-07-11 18:26:43 +00:00
Bernd Schmidt
7ddcf3d26f bfin.md (cmpsi, [...]): Use reg_or_const_int_operand for second comparison operand.
* config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt,
	compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand
	for second comparison operand.
	* config/bfin/predicates.md (reg_or_const_int_operand): New.

From-SVN: r101881
2005-07-11 16:15:45 +00:00
Bernd Schmidt
3fb192d2c7 bfin.md (define_attr "type"): Add "sync".
* config/bfin/bfin.md (define_attr "type"): Add "sync".
	(define_insn_reservation "alu"): Likewise.
	(csync, ssync): Now of type sync.
	* config/bfin/bfin.h (TARGET_DEFAULT): Defaults to
	-mcsync-anomaly -mspecld-anomaly.
	* config/bfin/bfin.opt (mcsync): Remove.
	(mcsync-anomaly, mspecld-anomaly): Add.
	* config/bfin/bfin.c: Include "insn-codes.h".
	(bfin_reorg): Extend to handle the CSYNC anomaly as well.
	(TARGET_DEFAULT_TARGET_FLAGS): New.
	* doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.

From-SVN: r101880
2005-07-11 16:11:28 +00:00
Steven Bosscher
2dd2d53e2c basic-block.h: Give the BB flags enum a name, bb_flags.
* basic-block.h: Give the BB flags enum a name, bb_flags.
	Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK.
	* cfgcleanup.c (enum bb_flags): Remove here.
	(BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove.
	(notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS.
	(update_forwarder_flag): Likewise.
	(thread_jump): Likewise.
	(try_forward_edges): Likewise.
	(try_optimize_cfg): Likewise.  Clear bb->flags before updating the
	forwarder flags.  Don't clear bb->aux for all basic blocks.  Only
	reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags.

From-SVN: r101876
2005-07-11 13:31:44 +00:00
Paolo Carlini
8637038aa8 ostream.tcc (basic_ostream<>::operator<<(long), [...]): Don't deal with oct and hex and casts to unsigned here...
2005-07-11  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/ostream.tcc (basic_ostream<>::operator<<(long),
	basic_ostream<>::operator<<(long long)): Don't deal with oct
	and hex and casts to unsigned here...
	* include/bits/locale_facets.tcc (__int_to_char(_CharT*, long,
	const _CharT*, ios_base::fmtflags), __int_to_char(_CharT*, long
	long, const _CharT*, ios_base::fmtflags)): ... do that here,
	instead, as per Table 57.
	(num_put<>::_M_insert_int): Tidy treatment of numeric base and
	sign.
	* include/std/std_ostream.h (operator<<(short), operator<<(int)):
	Adjust logic, as per the letter of the resolution of DR117 [WP].
	* testsuite/22_locale/num_put/put/char/10.cc: New.
	* testsuite/22_locale/num_put/put/wchar_t/10.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_arithmetic/char/7.cc:
	Likewise.
	* testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/7.cc:
	Likewise.

From-SVN: r101872
2005-07-11 09:48:31 +00:00
Richard Guenther
1f97667f30 i386.opt: New target option -msseregparm.
2005-07-11  Richard Guenther  <rguenther@suse.de>

	* config/i386/i386.opt: New target option -msseregparm.
	* config/i386/i386.c (override_options): Error out for
	-msseregparm but no SSE support.
	(ix86_function_sseregparm): Check for global sseregparm.
	* doc/invoke.texi: Document -msseregparm.

From-SVN: r101871
2005-07-11 09:35:16 +00:00
Kazuhiro Inaoka
4dda0c663b (m32r-*-linux*): Use the default extra_parts.
(m32rle-*-linux*): Ditto.

From-SVN: r101869
2005-07-11 08:23:27 +00:00
Paolo Bonzini
5bea4a03c1 re PR ada/22340 (Ada build fails with --enable-bootstrap)
2005-07-11  Paolo Bonzini  <bonzini@gnu.org>

	PR ada/22340

	* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Fix pasto.
	* Makefile.in: Regenerate.

From-SVN: r101868
2005-07-11 08:03:08 +00:00
Jakub Jelinek
fcf3be37e2 trans-stmt.c (gfc_trans_forall_loop): Clear maskindex before the outermost loop.
* trans-stmt.c (gfc_trans_forall_loop): Clear maskindex before
	the outermost loop.
	(gfc_trans_assign_need_temp, gfc_trans_pointer_assign_need_temp,
	gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_2):
	Don't clear maskindexes here.

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

From-SVN: r101865
2005-07-11 09:34:33 +02:00
Jakub Jelinek
15362b89f0 cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type) instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get...
* cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type)
	instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in
	bytes.

From-SVN: r101864
2005-07-11 09:31:08 +02:00
John David Anglin
b1b0d9acec re PR rtl-optimization/22239 (i-cobol.adb:482: error: unrecognizable insn)
PR middle-end/22239
	PR target/20126
	* loop.c (loop_givs_rescan): Use expand_simple_binop instead of
	gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).

From-SVN: r101863
2005-07-11 03:56:12 +00:00
Daniel Berlin
b5efa47076 tree-ssa-structalias.c (struct variable_info): Heapify complex.
2005-07-07  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (struct variable_info): Heapify complex.
	(varmap): Heapify varmap.
	(constraints): Heapify constraints.
	(struct constraint_graph): Heapify succs and preds.
	(constraint_vec_find): Update for heapification.
	(constraint_set_union): Ditto.
	(insert_into_complex): Ditto.
	(constraint_edge_vec_find): Ditto.
	(erase_graph_self_edge): Ditto.
	(add_graph_edge): Ditto.
	(get_graph_weights): Ditto.
	(merge_graph_nodes): Ditto.
	(build_constraint_graph): Ditto.
	(topo_visit): Ditto.
	(solve_graph): Ditto.
	(create_variable_info_for): Ditto.
	(init_base_vars): Ditto.
	(delete_points_to_sets): Free graph, varmap, and complex constraints.
	(condese_varmap_nodes): Free complex vector.
	(clear_edges_for_node): Clear succs and preds vector.

From-SVN: r101862
2005-07-11 02:38:30 +00:00
Daniel Berlin
0bfac35f9d tree-ssa-structalias.c (update_alias_info): Change counting of references to not include vdefs.
2005-07-10  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (update_alias_info): Change counting of
	references to not include vdefs.

From-SVN: r101861
2005-07-11 02:16:20 +00:00
GCC Administrator
14e57fac8d Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r101859.2
2005-07-11 00:16:17 +00:00
Andreas Tobler
93c76f816d cls_5_1_byte.c: New test file.
2005-07-10  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.call/cls_5_1_byte.c: New test file.
	* testsuite/libffi.call/cls_6_1_byte.c: Likewise.
	* testsuite/libffi.call/cls_7_1_byte.c: Likewise.

From-SVN: r101855
2005-07-10 22:14:37 +02:00
Daniel Berlin
46c73d9a4f tree-ssa-alias.c (free_used_part_map): Add missing free.
2005-07-10  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-alias.c (free_used_part_map): Add missing free.
	(up_insert): Ditto.

From-SVN: r101854
2005-07-10 19:34:45 +00:00
John David Anglin
bd7d504356 pa.c (pa_commutative_p): Make PLUS commutative when TARGET_NO_SPACE_REGS is true.
* pa.c (pa_commutative_p): Make PLUS commutative when
	TARGET_NO_SPACE_REGS is true.

From-SVN: r101853
2005-07-10 16:47:28 +00:00
Joseph Myers
9d598243bd * sv.po, zh_CN.po: Update.
From-SVN: r101849
2005-07-10 13:31:36 +01:00
Richard Sandiford
4cc93d9984 mips.exp (is_gp32_flag): New procedure.
* gcc.target/mips/mips.exp (is_gp32_flag): New procedure.
	(dg-mips-options): Use it.

From-SVN: r101847
2005-07-10 09:40:11 +00:00
Diego Novillo
e8ca415995 Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
* Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
	* tree-cfg.c (CHECK_OP): Only test for is_gimple_val.
	* tree-dfa.c (dump_subvars_for): New.
	(debug_subvars_for): New.
	(dump_variable): Show subvariables if VAR has them.
	* tree-flow-inline.h (get_subvar_at): New.
	(overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT.
	* tree-flow.h (struct ptr_info_def): Remove field pt_malloc.
	Update all users.
	(struct subvar): Change fields offset and size to unsigned
	HOST_WIDE_INT.
	(dump_subvars_for): Declare.
	(debug_subvars_for): Declare.
	(get_subvar_at): Declare.
	(okay_component_ref_for_subvars): Change 2nd and 3rd argument
	to unsigned HOST_WIDE_INT *.
	(overlap_subvar): Likewise.
	* tree-gimple.c (is_gimple_reg): Always return false for
	SFTs and memory tags.
	* tree-pass.h (pass_build_pta, pass_del_pta): Remove.
	Update all callers.
	* tree-ssa-alias.c: Include tree-ssa-structalias.h.
	(compute_may_aliases): Call compute_points_to_sets.
	(collect_points_to_info_for): Remove.
	(compute_points_to_and_addr_escape): Remove.
	(delete_alias_info): Call delete_points_to_sets.
	(compute_flow_sensitive_aliasing): If the call to
	find_what_p_points_to returns false, call set_pt_anything.
	(add_may_alias): Set TREE_ADDRESSABLE when adding a new alias.
	(set_pt_anything): Clear pi->pt_vars.
	(set_pt_malloc): Remove.
	(merge_pointed_to_info): Remove.
	(add_pointed_to_expr): Remove.
	(add_pointed_to_var): Remove.
	(collect_points_to_info_r): Remove.
	(is_escape_site): Make extern.
	(create_sft): New.
	(create_overlap_variables_for): Call it.
	* tree-ssa-copy.c (merge_alias_info): Never merge
	flow-sensitive alias information.
	* tree-ssa-operands.c (get_expr_operands): Adjust variables
	offset and size to be unsigned HOST_WIDE_INT.
	(add_to_addressable_set): Rename from note_addressable.
	Set TREE_ADDRESSABLE as the variables are added to the set.
	Update all users.
	(add_stmt_operand): Do not try to micro-optimize unmodifiable
	operands into VUSEs when adding V_MAY_DEFs for members in an
	alias set.
	* tree-ssa-operands.h (add_to_addressable_set): Declare.
	* tree-ssa-structalias.c: Include tree-ssa-structalias.h last.
	(struct variable_info): Add bitfield is_heap_var.
	(var_anyoffset, anyoffset_tree, anyoffset_id): Declare.
	(new_var_info): Initialize is_heap_var.
	(get_constraint_for): Add HEAP variables to the symbol table.
	Mark them with is_heap_var.
	(update_alias_info): New.  Taken mostly from the old
	compute_points_to_and_addr_escape.
	(handle_ptr_arith): New.
	(find_func_aliases): Call update_alias_info.
	Call handle_ptr_info for tcc_binary expressions.
	Call mark_stmt_modified.
	(create_variable_info_for): If DECL has subvars, do not create
	variables for its subvars.  Always add all the fields.
	(set_uids_in_ptset): If the solution includes ANYOFFSET and
	SFTs, then add all the SFTs of the structure.
	If VI->DECL is an aggregate with subvariables, add the SFT at
	VI->OFFSET.
	(find_what_p_points_to): If VI is an artificial variable,
	translate to bitfields in SSA_NAME_PTR_INFO.
	If the solution is empty, set pi->pt_vars to NULL
	(init_base_vars): Create ANYOFFSET.
	(compute_points_to_sets): Rename from create_alias_vars.
	Make extern.
	(pass_build_pta): Remove.
	(delete_points_to_sets): Rename from delete_alias_vars.
	(pass_del_pta): Remove.
	* tree-ssa-structalias.h (struct alias_info): Move from
	tree-ssa-alias.h.
	(NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC,
	NUM_REFERENCES_SET): Likewise.
	(compute_points_to_sets, delete_points_to_sets): Declare.

testsuite/ChangeLog

	* gcc.dg/tree-ssa/pta-fp.c: Use -fdump-tree-alias1.

From-SVN: r101841
2005-07-09 20:28:01 -04:00
GCC Administrator
87f8dcd06e Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r101839.2
2005-07-10 00:16:30 +00:00
Jerry DeLisle
9fa276de85 PR libfortran/21875 (FM111.f)
2005-07-09  Jerry DeLisle  <jvdelisle@verizon.net>

    PR libfortran/21875  (FM111.f)
    * io/read.c (next_char): Return a ' ' character when BLANK_ZERO or
    BLANK_NULL are active.
    (read_decimal): Interpret ' ' character correctly for BZ or BN.
    (read_radix): Interpret ' ' character correctly for BZ or BN.
    (read_f): Interpret ' ' character correctly for BZ or BN.
    * gfortran.dg/test (fmt_read_bz_bn.f90): New test case.

From-SVN: r101837
2005-07-09 23:40:31 +00:00
Andrew Pinski
f685a2e68d decl.c (components_to_record): Use DECL_FCONTEXT instead of DECL_SECTION_NAME.
2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>

        * decl.c (components_to_record): Use DECL_FCONTEXT instead of         DECL_SECTION_NAME.
        (compare_field_bitpos): Likewise.

From-SVN: r101834
2005-07-09 12:53:55 -07:00
Richard Henderson
38f3168781 alpha.c (emit_insxl, [...]): New functions.
* config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
        alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
        alpha_split_lock_test_and_set_12): New functions.
        * config/alpha/alpha-protos.h: Update.
        * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
        UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
        * config/alpha/sync.md (I12MODE): New.
        (memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
        (sync_<fetchop_name><I48MODE>): Likewise.
        (sync_nand<I48MODE>): Likewise.
        (sync_old_<fetchop_name><I48MODE>): Likewise.
        (sync_new_<fetchop_name><I48MODE>): Likewise.
        (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
        (sync_compare_and_swap<I48MODE>): Likewise.
        (sync_lock_test_and_set<I48MODE>): Likewise.
        (sync_compare_and_swap<I12MODE>): New.
        (sync_compare_and_swap<I12MODE>_1): New.
        (sync_lock_test_and_set<I12MODE>): New.
        (sync_lock_test_and_set<I12MODE>_1): New.

        * lib/target-supports.exp (check_effective_target_sync_char_short):
        Add alpha.

From-SVN: r101833
2005-07-09 11:28:23 -07:00
Diego Novillo
563cb6be0f re PR tree-optimization/21356 (Dominance error after aggressive dead code elimination (cd_dce))
PR 21356
	PR 22332
	* passes.c (execute_todo): Cleanup the CFG before updating
	SSA.

From-SVN: r101832
2005-07-09 13:35:05 -04:00
Andrew Pinski
7c6ef73e9b utils.c (create_var_decl): Only set DECL_COMMON on VAR_DECLs.
2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>

        * utils.c (create_var_decl): Only set DECL_COMMON on
        VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
        VAR_OR_FUNCTION_DECL_P.

From-SVN: r101831
2005-07-09 08:50:56 -07:00
Andrew Pinski
3ed8593d45 cp-lang.c (shadowed_var_for_decl, [...]): Move over to cp-objcp-common.c.
2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>

        * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
        decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
        (cp_init_ts): Call init_shadowed_var_for_decl.
        Remove include of gt-cp-cp-lang.h.
        * cp-objcp-common.c (shadowed_var_for_decl,
        decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
        cp-lang.c.
        (init_shadowed_var_for_decl): New function to initialize
        shadowed_var_for_decl.
        Include gt-cp-cp-objcp-common.h.
        * Make-lang.in (gt-cp-lang.h): Remove.
        (gt-cp-cp-objcp-common.h): Add.
        (cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
        (cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
        * config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
        * cp-tree (init_shadowed_var_for_decl): Add prototype.

2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>

        * config-lang.in (gtfiles): Add cp-objcp-common.c.
        * objcp-lang.c (objcxx_init_ts): New function.
        (LANG_HOOKS_INIT_TS): Define.

From-SVN: r101830
2005-07-09 08:45:09 -07:00
Thomas Koenig
999a06a0da [multiple changes]
2005-07-07  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
	    Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/22217
	* io/write.c (extract_unit):  New function; extract
	ints as unsigned signed int of the correct size.
	* io/write.c (write_int):  Use it.
	* runtime/error.c:  Adjust copyright years.
	Adjust size of buffer to maximum that can occur.

2005-07-07  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/22217
	* gfortran.dg/negative-z-descriptor.f90:  New test.

From-SVN: r101829
2005-07-09 09:33:31 +00:00
Jakub Jelinek
4a8ce6ce04 i386.c (output_set_got): Don't omit OFFSET FLAT...
* config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
	in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).

From-SVN: r101819
2005-07-09 10:47:38 +02:00
Richard Sandiford
4fd84e8c57 re PR target/21656 (Spurious "template with C linkage" error message)
PR target/21656
	* config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.

From-SVN: r101818
2005-07-09 08:46:34 +00:00
David Edelsohn
d54c47e1b5 sync.md (load_locked_<mode>): Use Z for memory_operand constraint.
* config/rs6000/sync.md (load_locked_<mode>): Use Z for
        memory_operand constraint.
        (store_conditional_<mode>): Same.
        (sync_compare_and_swap<mode>): Same.
        (sync_lock_test_and_set<mode>): Same.

From-SVN: r101813
2005-07-08 21:13:03 -04:00
Hans-Peter Nilsson
c00fc5cf8b Rewrite PIC support to more closely model actual instructions.
* config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
	(cris_symbol): Remove prototypes for removed functions.
	(cris_pic_symbol_type_of, cris_valid_pic_const)
	(cris_expand_pic_call_address): Prototypes for new functions.
	* config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
	variable.
	(cris_print_operand) <case 'v', 'P'>: Remove cases for unused
	modifiers.
	<case ':'>: Add case for new punctuation character.
	<case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
	emitting (extra) PIC modifier.
	<case UNSPEC>: Do not assert for PLT.
	(cris_initial_frame_pointer_offset, cris_simple_epilogue)
	(cris_expand_prologue, cris_expand_epilogue): Check
	for pic_offset_table_rtx usage instead of taking
	current_function_uses_pic_offset_table as the final word.
	(cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
	Remove flag_pic difference.
	(cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
	the moral equivalents of...
	(cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
	functions.
	(cris_legitimate_pic_operand): Just call cris_valid_pic_const.
	(cris_handle_option): Mark ARG as unused.
	(cris_expand_pic_call_address): New worker function for "call",
	"call_value".
	(cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
	output PIC constructs here.
	(cris_output_addr_const_extra): Changes for emitting PIC modifiers
	as symbol-specific modifers, not whole or part of operands.
	* config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
	(EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
	constants and flag_pic.
	(CONSTANT_INDEX_P): Adjust for new functions.
	(enum cris_pic_symbol_type): New helper type.
	(PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
	* config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
	(CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
	define_constants.
	("movsi"): Emit actual instructions for GOT and relative access.
	("*movsi_got_load"): New pattern to set up the register holding
	the GOT pointer.
	("*movsi_internal"): Operand 1 is not a plain general_operand.
	Adjust FIXME for 'S'.
	<output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
	Use "movs" for -fpic cases.
	("addsi3"): Add alternative for 'S'; use adds.w when possible.
	("uminsi3","*expanded_call_value"): Remove 'S' alternative.
	("call", "call_value"): Just call cris_expand_pic_call_address for
	PIC addresses.
	("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
	Remove special pattern.
	("*expanded_call_side", "*expanded_call_value_side"): New
	patterns.
	(gotplt-to-plt, gotplt-to-plt-side-call)
	(gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
	peephole2:s.
	* config/cris/cris/predicates.md
	("cris_general_operand_or_gotless_symbol"): Remove unused
	predicate.
	("cris_general_operand_or_symbol"): Adjust for new functions.

From-SVN: r101812
2005-07-09 01:09:48 +00:00
Andrew Pinski
68ece23dbd darwin.h (TARGET_C99_FUNCTIONS): Define to 1.
2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>

        * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.

From-SVN: r101809
2005-07-08 17:42:42 -07:00
GCC Administrator
17ee5bd0c4 Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r101807.2
2005-07-09 00:16:49 +00:00
Daniel Berlin
820cc88fbd Makefile.in (TREE_H): Add treestruct.def.
2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in (TREE_H): Add treestruct.def.
	(c-decl.o): Add pointer-set.h
	* c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
	visibility on regular DECL's.
	(merge_decls): Fix the copying of decl nodes of various types for
	the new structures.  Don't update RTL, section name, weak status,
	etc, on DECL's without RTL.
	(grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
	Don't check volatile on non-variable types.
	(store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
	to check whether we have seen arguments.
	* c-objc-common.c (c_tree_printer): Reverse order of tests so that
	flag is checked before field (flag is common, field is not).
	* dwarf2out.c (decl_ultimate_origin):  Only DECL's with
	TS_DECL_COMMON could have an origin.
	(add_location_or_const_value_attribute): Don't check section name
	on non-var/function decls.
	(dwarf2out_var_location): Reverse order of tests.
	* emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
	with DECL_WRTL_CHECK.
	* expmed.c (make_tree): rtl is now in decl_with_rtl.
	* fold-const.c (fold_binary): Don't check weakness on
	non-var/function decls.
	(tree_expr_nonzero_p): Ditto.
	(fold_checksum_tree): Use tree_decl_extra as sizeof
	buffer.
	* ggc-page.c (extra_order_size_table): Add sizes for
	tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
	tree_field_decl.
	* gimplify.c (gimplify_bind_expr): Only set
	DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
	* integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
	without RTL.
	* langhooks-def.h (LANG_HOOK_INIT_TS): New.
	* langhooks.h (init_ts). New langhook.
	* passes.c (rest_of_decl_compilation): Reverse order of tests.
	* print-tree.c (print_node): Update to only print fields that
	exist in the structures the passed decl has.
	* toplev.c (wrapup_global_declarations): Don't reset
	DECL_DEFER_OUTPUT on DECL's that don't contain it.
	* tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
	* tree-inline.c (remap_decl): Ditto.
	* tree-outof-ssa.c (create_temp): Reverse order of tests.
	* tree-pretty-print.c (print_declaration): Don't print
	DECL_REGISTER on things that don't contain it.
	* tree-vrp.c (expr_computes_nonzero): Don't check weakness on
	non-var/function decls.
	* tree.c (tree_contains_struct): New structure.
	(init_priority_for_decl): New hashtable.
	(tree_int_map): New structure.
	(tree_int_map_eq): New function.
	(tree_int_map_marked_p): Ditto.
	(tree_int_map_hash): Ditto.
	(tree_map): Move to tree.h.
	(tree_map_eq): Externalize.
	(tree_map_hash): Ditto.
	(tree_map_marked_p): Ditto.
	(init_ttree): Set up tree_contains_struct and call langhook.
	(decl_assembler_name): Use DECL_NON_COMMON_CHECK..
	(tree_code_size): Update for new structures.
	(tree_node_structure): Update for new structures.
	(make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
	without the field.
	(copy_node_stat):  Copy init priority.
	(build_decl_stat): Ditto for visibility.
	(ts_enum_names): New.
	(tree_contains_struct_check_failed): New function.
	(decl_init_priority_lookup): Ditto.
	(decl_init_priority_insert): Ditto.
	* treestruct.def: New file.
	* tree.h (CODE_CONTAINS_STRUCT): New macro.
	(CONTAINS_STRUCT_CHECK): Ditto.
	(tree_contains_struct_check_failed): New prototype.
	(DECL_CHECK): Removed.
	(DECL_MINIMAL_CHECK): New.
	(DECL_COMMON_CHECK): Ditto.
	(DECL_WRTL_CHECK): Ditto.
	(DECL_NON_COMMON_CHECK): Ditto.
	(DECL_WITH_VIS_CHECK): Ditto.
	(VAR_OR_FUNCTION_DECL_P): Ditto
	(struct tree_decl_minimal): New structure.
	(struct tree_decl_common): Ditto.
	(struct tree_decl_with_rtl): Ditto.
	(struct tree_decl_with_vis): Ditto.
	(struct tree_decl_non_common): Ditto.
	(struct tree_field_decl): Ditto.
	(struct tree_parm_decl): Ditto.
	(struct tree_var_decl): Ditto.
	(struct tree_function_decl): Ditto.
	(struct tree_const_decl): Ditto.
	(struct tree_result_decl): Ditto.
	(union tree_node): Add new structures.
	* var-tracking.c (track_expr_p): Reverse order of tests.

	* doc/c-tree.texi: Add documentation on DECL node internal structure.


2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

	* utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
	removed.

2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

	* Make-lang.in: Add gt-cp-lang.h.
	(cp-lang.o): Ditto.
	* class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
	the field.
	* config-lang.in: Add cp-lang.c to gtfiles.
	* cp-lang.c: Include hashtab.h.
	(cp_init_ts): New function.
	(LANG_HOOK_INIT_TS): Use macro.
	(decl_shadowed_for_var_lookup): New function.
	(decl_shadowed_for_var_insert): Ditto.
	* cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
	(NON_THUNK_FUNCTION_CHECK): Ditto.
	(DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
	(DECL_INIT_PRIORITY): Ditto.
	(DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
	(DECL_SHADOWED_FOR_VAR): Use hashtable.
	(SET_DECL_SHADOWED_FOR_VAR): Ditto.
	* decl.c (duplicate_decls): Update for new/updated structures.
	(poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
	* decl2.c (start_static_initialization_or_destruction): Deal with
	priority.
	* pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
	SET_DECL_RTL.
	* tree.c (handle_init_priority_attribute): Handle priority.

2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

	* objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
	removed.
	* objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
	(KEYWORD_KEY_NAME): Use decl_minimal.
	(METHOD_SEL_NAME): Ditto..
	(METHOD_SEL_ARGS): Use decl_non_common.
	(METHOD_ADD_ARGS): Ditto.
	(METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
	(METHOD_DEFINITION): Ditto.
	(METHOD_ENCODING): Ditto.
	* objc-lang.c: (objc_init_ts): New function.

2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

	* trans-decl.c (create_function_arglist): DECL_ARG_TYPE_AS_WRITTEN
	is removed.

From-SVN: r101799
2005-07-08 23:37:11 +00:00
Kazu Hirata
c249f60870 cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
* cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
	* system.h: Poison FINALIZE_PIC.
	* doc/tm.texi (FINALIZE_PIC): Remove.

From-SVN: r101794
2005-07-08 20:59:49 +00:00
Andrew Pinski
52b27f98cf re PR tree-optimization/22329 (VRP produces mis-matched (non compatible) types in MODIFY_EXPR)
2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/22329
        * gcc.dg/pr22329.c: New test.
2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/22329
        * tree-ssa-propagate.c (fold_predicate_in): Convert the value
        to the correct type if we have a MODIFY_EXPR.

From-SVN: r101789
2005-07-08 12:26:16 -07:00
Colin Walters
3ffa3729c0 verify.cc (class _Jv_BytecodeVerifier): Don't check for abstract classes or interfaces here...
2005-07-06  Colin Walters  <walters@verbum.org>

	* verify.cc (class _Jv_BytecodeVerifier) <op_new>: Don't
	check for abstract classes or interfaces here; JVM spec
	says it should throw an exception, so we'll do so later.
	* interpret.cc (run): Throw an InstantiationException for
	abstract classes and interfaces.

From-SVN: r101788
2005-07-08 19:13:30 +00:00
Kazu Hirata
1ff54bfbdb re PR regression/20139 (cris-elf testsuite: gcc.c-torture/execute/20020720-1.c)
PR tree-optimization/20139
	* tree-cfg.c (remove_bb): Check in_ssa_p before calling
	release_defs.
	* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
	fold_cond_expr_cond.
	* tree-ssanames.c (release_defs): Assert in_ssa_p.
	* tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.

From-SVN: r101787
2005-07-08 19:11:55 +00:00
Kazu Hirata
ea9a5df4c2 re PR tree-optimization/22360 (upper_bound_in_type and lower_bound_in_type are buggy)
PR tree-optimization/22360
	* tree.c (upper_bound_in_type): Fix calculations for casting
	to a non-wider signed type and casting a signed value to a
	wider unsigned type.
	(lower_bound_in_type): Fix calculations for casting to a
	non-wider signed type.

From-SVN: r101785
2005-07-08 18:49:05 +00:00
Andrew Pinski
d5c7794157 re PR tree-optimization/22356 (mis-match types in cplxlower)
2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/22356
        * testsuite/gcc.dg/pr22356-1.c: New test.

2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/22356
        * tree-complex.c (expand_complex_libcall): Produce
        REALPART_EXPR/IMAGPART_EXPR with the correct type.

From-SVN: r101781
2005-07-08 11:05:04 -07:00