Commit Graph

70102 Commits

Author SHA1 Message Date
DJ Delorie
c303630a7d c-typeck.c (parser_build_binary_op): Add warning control to warning calls.
* c-typeck.c (parser_build_binary_op): Add warning control to warning
calls.
(c_finish_if_stmt): Likewise.

From-SVN: r102265
2005-07-21 22:35:54 -04:00
DJ Delorie
30c54de9f2 toplev.c (warn_deprecated_use): Add warning control to warning call.
* toplev.c (warn_deprecated_use): Add warning control to warning
call.

From-SVN: r102264
2005-07-21 22:10:23 -04:00
Richard Henderson
95a8c15572 re PR tree-optimization/22504 (benchmark - galgel fails at runtime with miscompare output)
PR tree-opt/22504
        * tree-complex.c (complex_ssa_name_components): New.
        (cvc_lookup): Allow entry not found.
        (create_components): Remove.
        (create_one_component_var, get_component_var): New.
        (get_component_ssa_name, set_component_ssa_name): New.
        (extract_component): Use get_component_ssa_name.
        (update_complex_components): Use set_component_ssa_name.
        (update_complex_components_on_edge): Likewise.
        (update_phi_components): Create new PHI nodes directly, instead
        of adding insns to edges.
        (tree_lower_complex): Allocate and free complex_variable_components
        and complex_ssa_name_components here.

From-SVN: r102260
2005-07-21 17:33:46 -07:00
GCC Administrator
f3cd1ce2f2 Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r102258.2
2005-07-22 00:16:52 +00:00
Daniel Berlin
c05a07664e alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT, revert to returning false.
2005-07-20  Daniel Berlin  <dberlin@dberlin.org>

	* alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT,
	revert to returning false.

From-SVN: r102256
2005-07-21 22:34:33 +00:00
Janis Johnson
58669148c9 * gcc.c-torture/compile/20050721-1.c: New test for 3.4 fix.
From-SVN: r102252
2005-07-21 22:00:27 +00:00
Uros Bizjak
de343c8d7f re PR target/21149 (invalid code generation for _mm_movehl_ps SSE intrisinc)
PR target/21149
        * config/i386/i386.md (sse_movhlps): Fix vec_select values.

From-SVN: r102250
2005-07-21 12:59:09 -07:00
Uros Bizjak
5acc26efac re PR target/22576 (ICE with simple factorial program compiled with -ffast-math on gcc 4.0.2)
PR target/22576
        * config/i386/i386.md (cmpxf): Change operand constraints
        to "nonmemory_operand".

From-SVN: r102247
2005-07-21 12:55:03 -07:00
Andrew Pinski
61cb44fe9b i386.md (trap): Use "".word/t0x0b0f" instead of ud2.
2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>

        * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2.

From-SVN: r102246
2005-07-21 12:51:49 -07:00
Andrew Pinski
aa8f5c20ec class.c (build_base_path): Fix typo.
2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>

        * class.c (build_base_path): Fix typo.

From-SVN: r102245
2005-07-21 12:43:47 -07:00
Andrew Pinski
e2fe73f62b re PR middle-end/21180 (checking on fold no longer happens in some cases)
2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>

        PR middle-end/21180
        * fold-const.c (fold_build1): Add checksum for the operands.
        (fold_build2): Likewise.
        (fold_build3): Likewise.

From-SVN: r102244
2005-07-21 12:36:50 -07:00
Andrew Pinski
9d24eb542c re PR tree-optimization/19055 (Minor bit optimization with or and xor)
2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>

        PR middle-end/19055
        * gcc.dg/tree-ssa/pr19055.c: New test.
        * gcc.dg/tree-ssa/pr19055-2.c: New test.

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

        PR middle-end/19055
        * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X".

From-SVN: r102243
2005-07-21 12:33:45 -07:00
Eric Christopher
35f5a23f7b MAINTAINERS: Change affiliation.
2005-07-21  Eric Christopher  <echristo@apple.com>

        * MAINTAINERS: Change affiliation.

From-SVN: r102241
2005-07-21 18:32:27 +00:00
Andrew Pinski
757d1b8848 re PR c++/22358 (C++ front-end produces mis-match types in MODIFY_EXPR)
2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>

        PR C++/22358
        * g++.dg/other/pr22358.C: New test.


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

        PR C++/22358
        * class.c (build_base_path): Convert BINFO_OFFSET to the correct type.

From-SVN: r102240
2005-07-21 11:29:05 -07:00
Paolo Bonzini
b2e0afa038 common.opt (-fforward-propagate): Committed by mistake, removed.
2005-07-21  Paolo Bonzini  <bonzini@gnu.org>

	* common.opt (-fforward-propagate): Committed by mistake,
	removed.

From-SVN: r102239
2005-07-21 17:27:27 +00:00
Paul Woegerer
ff3ddf1585 * Updated ChangeLog
From-SVN: r102238
2005-07-21 16:08:13 +00:00
Paul Woegerer
6a9da7becb * MAINTAINERS: Added myself as crx-port maintainer.
From-SVN: r102237
2005-07-21 15:46:10 +00:00
Douglas Gregor
5b8ce8f102 re PR c++/2922 ([DR 197] two-stage lookup for unqualified function calls with type-dependent arguments)
2005-07-21  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/2922
	* g++.dg/lookup/two-stage5.C: New test from bug comments.

From-SVN: r102236
2005-07-21 15:14:59 +00:00
Volker Reichelt
b8bcbe3ae8 re PR c++/15938 (ICE with anonymous unions)
PR c++/15938
	* g++.dg/init/union2.C: New test.

From-SVN: r102235
2005-07-21 14:50:46 +00:00
Doug Gregor
f339fc8e61 Completed this ChangeLog entry:
2005-07-20  Douglas Gregor <doug.gregor@gmail.com>

        PR c++/2922
        * semantics.c (perform_koenig_lookup): For dependent calls, just
        return the set of functions we've found so far. Later, it will be
        augmented by those found through argument-dependent lookup.
        * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
        the optimization that skips namespaces where the functions were
        originally found.

From-SVN: r102234
2005-07-21 14:18:52 +00:00
Volker Reichelt
2e48874fee reg-stack.c: Fix comment typo(s).
* reg-stack.c: Fix comment typo(s).
	* tree-ssa-operands.c: Likewise.
	* tree-vectorizer: Likewise.

From-SVN: r102232
2005-07-21 11:53:00 +00:00
Volker Reichelt
c72a1a8673 call.c: Fix comment typo(s).
* call.c: Fix comment typo(s).
	* cxx-pretty-print.h: Likewise.
	* name-lookup.c: Likewise.
	* parser.c: Likewise.

From-SVN: r102231
2005-07-21 10:33:31 +00:00
Volker Reichelt
423c1d1c54 re PR other/22393 (ICE in emit_move_insn, at expr.c:3142)
PR c/22393
	* gcc.dg/complex-4.c: New test.

From-SVN: r102229
2005-07-21 09:57:05 +00:00
Nick Clifton
889d84651c Replace C++ style line comments with C style line comments.
(symbian_add_attribute): Do not use a ? operator on the LHS of an assignment.
(sh_symbian_handle_dll_attribute): Change the type of the method vector to
  "VEC(tree,gc)*" and use vector accessor macros to walk over the elements.
(symbian_export_vtable_and_rtti_p): Likewise.
(symbian_class_needs_attribute_p): Likewise.

From-SVN: r102228
2005-07-21 08:08:17 +00:00
Richard Guenther
8eb9df78b1 re PR testsuite/22522 (gcc.dg/tree-ssa/flatten-2.c scan-assembler cycle.: fails)
2005-07-21  Richard Guenther  <rguenther@suse.de>

	PR testsuite/22522
	* gcc.dg/tree-ssa/flatten-1.c: Use correct regexp for
	scanning for asm labels.
	* gcc.dg/tree-ssa/flatten-2.c: Likewise.

From-SVN: r102227
2005-07-21 08:02:21 +00:00
Paolo Bonzini
2fab365eb9 re PR target/22085 (error with -fpreprocessed)
gcc:
2005-07-21  Paolo Bonzini  <bonzini@gnu.org>

	PR target/22085
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
	initialize targetm.resolve_overloaded_builtin here.
	(altivec_expand_overloaded_builtin): Make it non-static.
	* config/rs6000/rs6000-protos.h
	(altivec_expand_overloaded_builtin): New prototype.
	* config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize
	targetm.resolve_overloaded_builtin here.
	* config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise.

testsuite:
2005-07-21  Paolo Bonzini  <bonzini@gnu.org>

	PR target/22085
	* gcc.dg/altivec-pr22085.c: New.

From-SVN: r102226
2005-07-21 07:30:00 +00:00
Paolo Bonzini
f9cc1a70d5 re PR rtl-optimization/19210 (not using do-loop for some loops)
gcc:
2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
            Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/19210
	* common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
	New.
	* Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
	* loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
	rely on unproven assumptions.
	* predict.c (predict_loops): Adjust call to number_of_iterations_exit.
	* tree-flow.h (number_of_iterations_exit): Add final parameter.
	* tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
	to number_of_iterations_exit.
	* tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
	* tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
	* tree-ssa-loop-niter.c (find_loop_niter,
	estimate_numbers_of_iterations_loop): Likewise.
	(number_of_iterations_exit): Honor the new options.
	* doc/invoke.texi (Wunsafe-loop-optimizations,
	funsafe-loop-optimizations): Document them.

gcc/testsuite:
2005-07-21  Paolo Bonzini  <bonzini@gnu.org>

        * gcc.dg/tree-ssa/pr19210-1.c: New.
        * gcc.dg/tree-ssa/pr19210-2.c: New.

Co-Authored-By: Zdenek Dvorak <dvorakz@suse.cz>

From-SVN: r102225
2005-07-21 07:24:34 +00:00
Richard Sandiford
cb83c2ec41 re PR rtl-optimization/22167 (Strange optimization bug when using -Os)
PR rtl-optimization/22167
	* gcse.c (hoist_code): Fix hoist_exprs[] check.

From-SVN: r102219
2005-07-21 06:51:25 +00:00
Adam Nemet
5e5cbbfb8e lynx.h: Mark __do_global_ctors_aux and __do_global_dtors_aux longcall.
* config/rs6000/lynx.h: Mark __do_global_ctors_aux and
	__do_global_dtors_aux longcall.

From-SVN: r102218
2005-07-21 05:44:22 +00:00
Douglas Gregor
3a9d5f2639 re PR c++/2922 ([DR 197] two-stage lookup for unqualified function calls with type-dependent arguments)
2005-07-20  Douglas Gregor <doug.gregor@gmail.com>

	PR c++/2922
	* g++.dg/lookup/two-stage2.C: New.
	* g++.dg/lookup/two-stage3.C: New.
	* g++.dg/lookup/two-stage4.C: New. Illustrates how we have not yet
	fixed two-stage name lookup for operators.
	* g++.dg/template/call3.C: Compiler now produces an appropriate
	error message.
	* g++.dg/template/crash37.C: Compiler now describes bla() on line
	14 as a candidate.
	* g++.dg/template/ptrmem4.C: Compiler produces different error
	message.
	* g++.old-deja/g++.other/pmf3.C: Compiler now describes
	connect_to_method as a candidate.

From-SVN: r102217
2005-07-21 03:56:46 +00:00
Douglas Gregor
20ac1e0392 re PR c++/2922 ([DR 197] two-stage lookup for unqualified function calls with type-dependent arguments)
2005-07-20  Douglas Gregor <doug.gregor@gmail.com>

	PR c++/2922
	* semantics.c (perform_koenig_lookup): For dependent calls, just
	return the set of functions we've found so far. Later, it will be
	augmented by those found through argument-dependent lookup.
	* name-lookup.c (lookup_arg_dependent):

From-SVN: r102216
2005-07-21 03:53:07 +00:00
Kazu Hirata
c2acaf06aa gensupport.c (old_preds): Don't reference PREDICATE_CODES.
* gensupport.c (old_preds): Don't reference PREDICATE_CODES.
	(old_special_pred_table): Don't reference
	SPECIAL_MODE_PREDICATES.
	* system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison.
	* config/arc/arc.h: Don't mention PREDICATE_CODES.
	* config/sh/predicates.h: Don't mention
	SPECIAL_MODE_PREDICATES.
	* doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
	Remove.

From-SVN: r102215
2005-07-21 00:55:20 +00:00
GCC Administrator
40be89481a Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r102213.2
2005-07-21 00:16:12 +00:00
Tom Tromey
9365047aba sources.am, [...]: Rebuilt.
* sources.am, Makefile.in: Rebuilt.
	* Makefile.am (all_xlib_lo_files): Removed.
	(all_libgcj_lo_files): Likewise.
	(lib_gnu_awt_xlib_la_LIBADD): List correct .lo files.
	(xlib_java_source_files): Removed.
	(xlib_nat_headers): Updated.
	* configure: Rebuilt.
	* configure.ac: Create standard.omit.
	* standard.omit.in: New file.
	* standard.omit: Removed.
	* scripts/makemake.tcl (gnu/gcj/xlib, gnu/awt/xlib): Now
	'package'.
	(emit_package_rule): Special case xlib peers.
	(emit_source_var): Likewise.
	Read standard.omit.in.
	* gnu/awt/xlib/XToolkit.java (createEmbeddedWindow): New method.

From-SVN: r102211
2005-07-20 23:39:44 +00:00
Kaz Kojima
5d0317fccc ffi.c (ffi_call): Handle small structures correctly.
* src/sh/ffi.c (ffi_call): Handle small structures correctly.
	Remove empty line.
	* src/sh64/ffi.c (simple_type): Remove.
	(return_type): Handle small structures correctly.
	(ffi_prep_args): Likewise.
	(ffi_call): Likewise.
	(ffi_closure_helper_SYSV): Likewise.
	* src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
	Emit position independent code if PIC and remove wrong datalabel
	prefixes from EH data.

From-SVN: r102210
2005-07-20 23:32:01 +00:00
DJ Delorie
3a664c1c00 * MAINTAINERS: Add self as m32c maintainer.
From-SVN: r102208
2005-07-20 19:27:36 -04:00
DJ Delorie
38b2d07632 config.gcc: Add m32c-elf support.
* config.gcc: Add m32c-elf support.

* doc/contrib.texi: Mention m32c.
* doc/extend.texi: Document m32c extensions.
* doc/install.texi: Mention m32c.
* doc/invoke.texi: Document m32c options.
* doc/md.texi: Document m32c constraints.

* config/m32c/addsub.md: New file.
* config/m32c/bitops.md: New file.
* config/m32c/cond.md: New file.
* config/m32c/jump.md: New file.
* config/m32c/m32c-lib1.S: New file.
* config/m32c/m32c-lib2.c: New file.
* config/m32c/m32c-modes.def: New file.
* config/m32c/m32c-pragma.c: New file.
* config/m32c/m32c-protos.h: New file.
* config/m32c/m32c.abi: New file.
* config/m32c/m32c.c: New file.
* config/m32c/m32c.h: New file.
* config/m32c/m32c.md: New file.
* config/m32c/m32c.opt: New file.
* config/m32c/minmax.md: New file.
* config/m32c/mov.md: New file.
* config/m32c/muldiv.md: New file.
* config/m32c/predicates.md: New file.
* config/m32c/prologue.md: New file.
* config/m32c/shift.md: New file.
* config/m32c/t-m32c: New file.

From-SVN: r102207
2005-07-20 19:27:02 -04:00
Kaz Kojima
50b69666aa sh.md (UNSPEC_SP_SET, [...]): New constants.
* config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
	(stack_protect_set, stack_protect_test): New expanders.
        (stack_protect_set_si, stack_protect_set_si_media,
	stack_protect_set_di_media, stack_protect_test_si,
        stack_protect_test_si_media, stack_protect_test_di_media):
	New insns.

From-SVN: r102206
2005-07-20 22:55:50 +00:00
Paolo Carlini
cdcdee12da streambuf.tcc (xsgetn, xsputn): Use streamsize instead of size_t.
2005-07-20  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/streambuf.tcc (xsgetn, xsputn): Use streamsize
	instead of size_t.
	* src/streambuf.cc (__copy_streambufs): Likewise.

From-SVN: r102204
2005-07-20 22:07:57 +00:00
Andrew Pinski
71b50543a7 c-typeck.c (output_init_element): Don't copy the INTEGER_CST.
2005-07-20  Andrew Pinski  <pinskia@physics.uc.edu>

        * c-typeck.c (output_init_element): Don't copy the INTEGER_CST.

From-SVN: r102203
2005-07-20 14:34:52 -07:00
Tom Tromey
42e13a3f91 * HACKING: Updated.
From-SVN: r102202
2005-07-20 21:24:56 +00:00
James A. Morrison
4db8040cd4 tree.h (tree_expr_nonzero_p): Export.
2005-07-20  James A. Morrison  <phython@gcc.gnu.org>

        * tree.h (tree_expr_nonzero_p): Export.
        * fold-const.c (tree_expr_nonzero_p): Likewise.
        Return true for CALL_EXPRs that are alloca calls.
        (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs
        against zero.
        * tree-flow.h (expr_computes_nonzero): Remove.
        * tree-vrp.c (expr_computes_nonzero): Remove.
        (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p.
        (extract_range_from_unary_expr): Likewise.
        * tree-ssa-dom.c (record_equivalences_from_stmt): Use
        tree_expr_nonzero_p.

From-SVN: r102201
2005-07-20 20:26:11 +00:00
Bernd Schmidt
09350e36ee bfin-protos.h (legitimize_pic_address): Don't declare.
* config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
	* config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
	extra arg "picreg" and use it instead of pic_offset_table_rtx.
	All callers changed.
	(frame_related_constant_load): New arg "related" which controls
	setting of RTX_FRAME_RELATED_P.  All callers changed.
	(bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
	(bfin_expand_prologue): Add stack limit checking.
	* config/bfin/bfin.md (trapifcc): New pattern.

From-SVN: r102195
2005-07-20 11:12:26 +00:00
Bernd Schmidt
0590533746 bfin.c: Include "langhooks.h".
* config/bfin/bfin.c: Include "langhooks.h".
	(def_builtin): Go through lang_hooks to call builtin_function.

From-SVN: r102193
2005-07-20 10:42:51 +00:00
Bernd Schmidt
6d459e2bae bfin-protos.h (bfin_longcall_p): Declare.
* config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
	* config/bfin/predicates.md (symbol_ref_operand): New.
	(call_insn_operand): Delete.  All callers changed to use
	register_no_elim_operand.
	* config/bfin/bfin.c (init_cumulative_args): Initialize the new
	call_cookie field.
	(function_arg): Use it to generate the call's operand 2.
	(bfin_longcall_p): New function.
	(bfin_expand_call): Extra arg "cookie".  All callers and declaration
	changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
	determine if the address needs to be in a REG.
	(bfin_handle_longcall_attribute): New function.
	(bfin_attribute_table): Add "longcall" and "shortcall".
	* config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
	(CUMULATIVE_ARGS): New member call_cookie.
	(PREDICATE_CODES): Add symbol_ref_operand.
	* config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
	extra USE to the pattern.
	(call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
	New patterns, split off call_insn, sibcall_insn, call_value_insn and
	sibcall_value_insn; now the new patterns handle direct calls and the
	old ones indirect calls.
	* doc/extend.texi: Mention Blackfin in longcall/shortcall docs.

From-SVN: r102191
2005-07-20 09:48:03 +00:00
Zdenek Dvorak
67135ef48c * doc/trouble.texi: Update section on handling of empty loops.
From-SVN: r102190
2005-07-20 08:29:44 +00:00
Kazu Hirata
fdda361d74 config.gcc: Remove support for sparc-*-openbsd*...
gcc/
	* config.gcc: Remove support for sparc-*-openbsd*,
	i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*,
	ns32k-*-netbsd*.
	* config.host: Remove support for i860-*-sysv4* as a host.
	* config/i860/*, config/ip2k/*, config/ns32k/*,
	config/sparc/openbsd.h, config/sparc/t-openbsd: Remove.
	* doc/install.texi, doc/invoke.texi, doc/md.texi: Don't
	mention obsolete ports.

testsuite/
	* gcc.dg/20020312-2.c, gcc.dg/sibcall-3.c, gcc.dg/sibcall-4.c,
	gcc.dg/cpp/assert4.c: Don't mention obsolete ports.

From-SVN: r102189
2005-07-20 06:39:38 +00:00
Kaz Kojima
96a2347e1d sh.c (regno_reg_class): Add GENERAL_REGS for soft frame pointer.
* config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for
	soft frame pointer.
	(sh_expand_prologue): Use hard_frame_pointer_rtx instead
	of frame_pointer_rtx.
	(sh_expand_epilogue): Likewise.
	(sh_set_return_address): Likewise.
	(initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM
	instead of FRAME_POINTER_REGNUM if needed.  Add elimination
	offsets from FRAME_POINTER_REGNUM.
	* config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp.
	(sh_register_names): Add initializer for sfp.
	(GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM.
	(VALID_REGISTER_P): Likewise.
	(FIRST_PSEUDO_REGISTER): Update.
	(DWARF_FRAME_REGISTERS): Define.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp.
	(HARD_FRAME_POINTER_REGNUM): Define.
	(FRAME_POINTER_REGNUM): Redefine.
	(ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM,
	but HARD_FRAME_POINTER_REGNUM instead.  Add eliminations
	from FRAME_POINTER_REGNUM.
	(CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of
	FRAME_POINTER_REGNUM.
	(REG_CLASS_CONTENTS): Add sfp.
	(REG_ALLOC_ORDER): Likewise.
	(FRAME_GROWS_DOWNWARD): Set to 1.  Update comment.
	(GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead
	of frame_pointer_rtx.
	(LEGITIMIZE_RELOAD_ADDRESS): Likewise.

From-SVN: r102187
2005-07-20 05:03:25 +00:00
James A. Morrison
1ade5842af fold-const.c (tree_expr_nonnegative_p): Only return true for ABS_EXPR when flag_wrapv is false because of INT_MIN.
2005-07-19  James A. Morrison  <phython@gcc.gnu.org>

        * fold-const.c (tree_expr_nonnegative_p): Only return true for
        ABS_EXPR when flag_wrapv is false because of INT_MIN.
        (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument
        of an ABS_EXPR.
        (fold_unary): Always fold ABS_EXPR<ABS_EXPR<x>> into
        ABS_EXPR<x>.

From-SVN: r102184
2005-07-20 03:30:58 +00:00
Giovanni Bajo
4038c495fc Make CONSTRUCTOR use VEC to store initializers.
* c-common.c (complete_array_type): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
	(pp_c_constructor_elts): New function.
	* c-pretty-print.h (pp_c_constructor_elts): Declare.
	* c-typeck.c (build_function_call, build_c_cast, digest_init,
	struct constructor_stack, struct initializer_stack,
	constructor_elements, push_init_level, pop_init_level,
	add_pending_init, find_init_member, output_init_element): Update to
	cope with VEC in CONSTRUCTOR_ELTS.
	* coverage.c (build_fn_info_value, build_ctr_info_value,
	build_gcov_info): Likewise.
	* expr.c (categorize_ctor_elements_1, store_constructor,
	expand_expr_real_1): Likewise.
	* fold-const.c (fold_ternary): Likewise.
	* gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
	gimplify_init_constructor, gimplify_expr): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
	node.
	* tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* tree-sra.c (generate_element_init_1): Likewise.
	* tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-vect-generic.c (expand_vector_piecewise): Likewise.
	* tree-vect-transform.c (vect_get_vec_def_for_operand):
	(get_initial_def_for_reduction): Likewise.
	* tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
	value handle in annotations.
	* tree.c (tree_node_kind, tree_code_size, make_node_stat,
	tree_node_structure): Add support for constr_kind.
	(build_vector_from_ctor, build_constructor_single,
	build_constructor_from_list): New functions.
	(build_constructor): Update to take a VEC instead of a TREE_LIST.
	(simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
	Update to cope with VEC in CONSTRUCTOR_ELTS.
	* tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
	* tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
	CONSTRUCTOR_APPEND_ELT): New macros.
	(struct constructor_elt, struct	tree_constructor): New data types.
	(union tree_node): Add tree_constructor field.
	* treestruct.def: Define TS_CONSTRUCTOR.
	* varasm.c (const_hash_1, compare_constant, copy_constant,
	compute_reloc_for_constant, output_addressed_constants,
	initializer_constant_valid_p, output_constant,
	array_size_for_constructor, output_constructor): Update to cope with
	VEC in CONSTRUCTOR_ELTS.
	* vec.h (VEC_empty, VEC_copy): New macros.

ada/
	Make CONSTRUCTOR use VEC to store initializers.
	* decl.c (gnat_to_gnu_entity): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* trans.c (extract_values): Likewise.
	* utils.c (convert, remove_conversions): Likewise.
	* utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
	gnat_build_constructor): Likewise.

cp/
	Make CONSTRUCTOR use VEC to store initializers.
	* call.c (convert_default_arg): Update call to digest_init.
	* class.c (dump_class_hierarchy, dump_array): Update to cope with
	VEC in CONSTRUCTOR_ELTS.
	* cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
	(finish_compound_literal, digest_init): Update declaration.
	* decl.c (struct reshape_iter): New data type.
	(reshape_init_array): Rename to...
	(reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
	(reshape_init): Rewrite from scratch. Split parts into...
	(reshape_init_array, reshape_init_vector, reshape_init_class,
	reshape_init_r): New functions.
	(check_initializer): Update call to reshape_init. Remove obsolete
	code.
	(initialize_artificial_var, cp_complete_array_type): Update to cope
	with VEC in CONSTRUCTOR_ELTS.
	* decl2.c (grokfield): Update calls to digest_init.
	(mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
	* error.c (dump_expr_init_vec): New function.
	(dump_expr): Use dump_expr_init_vec.
	* init.c (build_zero_init, build_vec_init): Update to cope with VEC
	in CONSTRUCTOR_ELTS.
	(expand_default_init): Update call to digest_init.
	* parser.c  (cp_parser_postfix_expression): Use a VEC for the
	initializers.
	(cp_parser_initializer_list): Build a VEC of initializers.
	* pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
	in CONSTRUCTOR_ELTS.
	* rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
	ptm_initializer, class_initializer, get_pseudo_ti_init): Use
	build_constructor_from_list instead of build_constructor.
	* semantics.c (finish_compound_literal): Update call to digest_init.
	* tree.c (stabilize_init): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* typeck.c (build_ptrmemfunc1): Likewise.
	* typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
	Likewise.
	(store_init_value): Use build_constructor_from_list and update call
	to digest_init.
	(digest_init): Rewrite.
	(process_init_constructor): Rewrite from scratch. Split into...
	(process_init_constructor_array, picflag_from_initializer,
	process_init_constructor_record, process_init_constructor_union):
	New functions.
	(PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
	New macros.
	(build_functional_cast): Use build_constructor_from_list instead of
	build_constructor.

fortran/
	Make CONSTRUCTOR use VEC to store initializers.
	* trans-array.c (gfc_build_null_descriptor,
	gfc_trans_array_constructor_value, gfc_conv_array_initializer):
	Update to cope with VEC in CONSTRUCTOR_ELTS.
	* trans-common.c (create_common): Likewise.
	* trans-expr.c (gfc_conv_structure): Likewise.
	* trans-stmt.c (gfc_trans_character_select): Use
	build_constructor_from_list instead of build_constructor.

java/
	Make CONSTRUCTOR use VEC to store initializers.
	* check-init.c (check_init): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* class.c (make_field_value, make_method_value, get_dispatch_table,
	make_class_data, emit_symbol_table, emit_catch_table,
	emit_assertion_table): Use build_constructor_from_list instead of
	build_constructor.
	* constants.c (build_constants_constructor): Likewise.
	* java-gimplify.c (java_gimplify_new_array_init): Update to cope with
	VEC in CONSTRUCTOR_ELTS.
	* java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
	PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
	of a TREE_LIST.
	* jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* parse.y (build_new_array_init): Use build_constructor_from_list
	instead of build_constructor.
	(patch_new_array_init): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	(array_constructor_check_entry): Likewise.

objc/
	Make CONSTRUCTOR use VEC to store initializers.
	* objc-act.c (objc_build_constructor): Use build_constructor_from_list
	instead of build_constructor.

testsuite/
	Make CONSTRUCTOR use VEC to store initializers.
	* g++.dg/ext/complit3.C: Check for specific error messages.
	* g++.dg/init/brace2.C: Update error message.
	* g++.dg/warn/Wbraces2.C: Likewise.

From-SVN: r102182
2005-07-20 01:19:59 +00:00