1. 18 Feb, 2007 1 commit
  2. 17 Feb, 2007 6 commits
  3. 16 Feb, 2007 22 commits
    • trans.c (call_to_gnu): Use build_call_list instead of build3 to build the call expression. · 9f3432b8
      	* trans.c (call_to_gnu):  Use build_call_list instead of build3 to
      	build the call expression.
      	(gnat_stabilize_reference_1): Handle tcc_vl_exp.
      	* utils.c (max_size) <tcc_exceptional>: Delete.
      	<tcc_vl_exp>: New case.
      	<tcc_expression>: Delete CALL_EXPR subcase.
      	(build_global_cdtor): Use build_call_nary instead of build3.
      	* utils2.c (build_call_1_expr): Likewise.
      	(build_call_2_expr): Likewise.
      	(build_call_0_expr): Likewise.
      	(build_call_alloc_dealloc): Likewise.
      
      
      Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>
      
      From-SVN: r122058
      Eric Botcazou committed
    • Thread.java (Thread(ThreadGroup, Runnable, String)): Pass new parameter constructor. · 599b39ce
      	* java/lang/Thread.java (Thread(ThreadGroup, Runnable, String)): Pass
      	new parameter constructor.
      	(Thread(ThreadGroup, Runnable, String, long)): Same.
      	(Thread(String, boolean)): New constructor.
      	(Thread(Thread, ThreadGroup, Runnable, String): Add parameter
      	noInheritableThreadLocal, don't call
      	InheritableThreadLocal.newChildThread if set.
      	* java/lang/PosixProcess.java(ProcessManager()): Set
      	noInheritableThreadLocal in super.
      	* java/lang/natThread.cc (_Jv_AttachCurrentThread): Pass new
      	parameter to Thread constructor.
      	(_Jv_AttachCurrentThreadAsDaemon): Same.
      	* java/lang/Thread.h: Regenerate.
      	* classpath/lib/java/lang/Thread.class: Same.
      	* classpath/lib/java/lang/PosixProcess$EOFInputStream.class: Same.
      	* classpath/lib/java/lang/PosixProcess.class: Same.
      	* classpath/lib/java/lang/Thread$State.class: Same.
      	* classpath/lib/java/lang/PosixProcess$ProcessManager.class: Same.
      
      From-SVN: r122054
      David Daney committed
    • re PR classpath/28652 (JBoss fails to start due class cast exception in the management classes) · d16c4b1a
      2006-10-14  Edwin Steiner  <edwin.steiner@gmx.net>
      
      	PR classpath/28652:
      	* javax/management/MBeanInfo.java (MBeanInfo): 
      	Use clone to duplicate the arrays in order to
      	preserve the array type.
      
      From-SVN: r122050
      Edwin Steiner committed
    • i386.h (x86_use_xchgb): New. · fa681e39
              * config/i386/i386.h (x86_use_xchgb): New.
              (TARGET_USE_XCHGB): New macro.
              * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
              * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
              Split after reload into bswaphi for shifts of 8.
              (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
              (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
              or when optimizing for size.
      
      testsuite/ChangeLog:
      
              * gcc.target/i386/builtin-bswap-1.c: Remove -march=nocona.
              * gcc.target/i386/builtin-bswap-3.c: Ditto.
              * gcc.target/i386/xchg-1.c: New test.
              * gcc.target/i386/xchg-2.c: New test.
      
      From-SVN: r122049
      Uros Bizjak committed
    • interpret.cc: Add extra DEBUG_LOCALS_INSN calls for multi-slot variables to maintain type info. · ce359ed9
      2007-02-16  Kyle Galloway  <kgallowa@redhat.com>
      
      	* interpret.cc: Add extra DEBUG_LOCALS_INSN calls for multi-slot
      	variables to maintain type info.
      	* interpret-run.cc: Add local variable info to frame in the debug
      	interpreter.
      	* jvmti.cc (getLocalFrame): New method.
      	(_Jv_JVMTI_GetLocalObject): New method.
      	(_Jv_JVMTI_GetLocallInt): New method.
      	(_Jv_JVMTI_GetLocalFloat): New method.
      	(_Jv_JVMTI_GetLocalLong): New method.
      	(_Jv_JVMTI_GetLocalDouble): New method.
      	(_Jv_JVMTI_SetLocalObject): New method.
      	(_Jv_JVMTI_SetLocalInt): New method.
      	(_Jv_JVMTI_SetLocalFloat): New method.
      	(_Jv_JVMTI_SetLocalLong): New method.
      	(_Jv_JVMTI_SetLocalDouble): New method.
      
      From-SVN: r122048
      Kyle Galloway committed
    • 2007-02-16 Gary Benson <gbenson@redhat.com> · 2c39a2b1
      	* gnu/gcj/tools/gcj_dbtool/Main.java
      	(bytesToString): Don't lose zeros from within the digest.
      
      From-SVN: r122045
      Gary Benson committed
    • revert: re PR middle-end/30768 (ICE in ext/pb_ds/regression/list_update_data_map_rand.cc) · 01bc4081
      2007-02-16  Paolo Carlini  <pcarlini@suse.de>
      
      	Revert.
      	2007-02-14  Hans-Peter Nilsson  <hp@axis.com>
      
      	PR middle-end/30768
      	* testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc:
      	Xfail ICE for cris-*-*.
      
      From-SVN: r122044
      Paolo Carlini committed
    • [multiple changes] · 24d8ce15
      2007-02-15  Andrew Haley  <aph@redhat.com>
      
              * Makefile.am (nat_source_files): Remove
              java/lang/management/natVMManagementFactory.cc.
              * java/lang/Thread.java (getStackTrace): Use reflection to call
              the ManagementFactory.
              * java/lang/management/VMManagementFactory.java: Remove native
              methods.
              * java/lang/management/natVMManagementFactory.cc: Deleted.
              * sources.am: Regnerate.
              * scripts/makemake.tcl: Add new "bcheaders" type.
              Move java/lang/management and gnu/classpath/management to "bc".
              Move gnu/java/lang/management to "bcheaders".
      
      2007-02-16  Andrew Haley  <aph@redhat.com>
      
              * gnu/java/lang/management/MemoryMXBeanImpl.java,
              javax/management/MBeanServerDelegate.java: Use
              gnu.javax.management.ListenerData rather than
              gnu.classpath.ListenerData.
              * gnu/javax/management/ListenerData.java: Move here from
              gnu/classpath/ListenerData.java.
      
      From-SVN: r122041
      Andrew Haley committed
    • fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like DECLs but prefer SSA_NAMEs over DECLs. · 421076b5
      2007-02-16  Richard Guenther  <rguenther@suse.de>
      	Christian Bruel  <christian.bruel@st.com>
      
      	* fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
      	DECLs but prefer SSA_NAMEs over DECLs.
      
      	* gcc.dg/strict-overflow-5.c: New testcase.
      
      Co-Authored-By: Christian Bruel <christian.bruel@st.com>
      
      From-SVN: r122040
      Richard Guenther committed
    • * runtime/memory.c (deallocate): Correct comment. · 6eedbf0d
      From-SVN: r122038
      Francois-Xavier Coudert committed
    • re PR fortran/30793 (Segfault on calling a function returning a pointer) · 73865312
      fortran/
      2007-02-16  Tobias Burnus  <burnus@net-b.de>
      
             PR fortran/30793
             * trans-decl.c (gfc_generate_function_code): Do not initialize
               pointers to derived components.
      
      testsuite/
      2007-02-16  Tobias Burnus  <burnus@net-b.de>
      
             PR fortran/30793
             * gfortran.dg/func_derived_4.f90: New test.
      
      From-SVN: r122037
      Tobias Burnus committed
    • tree-flow-inline.h (single_imm_use_p): Remove. · 40b448ef
      2007-02-16  Richard Guenther  <rguenther@suse.de>
      
      	* tree-flow-inline.h (single_imm_use_p): Remove.
      	(zero_imm_uses_p): Likewise.
      	* tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
      	instead of single_imm_use_p.
      	* tree-cfg.c (replace_uses_by): Use has_zero_use instead of
      	zero_imm_uses_p.
      
      From-SVN: r122036
      Richard Guenther committed
    • re PR other/27843 (gcc-4.2-20060527 make install fails on alphaev68-dec-osf5.1b) · 70d0631e
      2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
      
      	PR other/27843
      	* Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
      	nested double- and backquotes.
      
      From-SVN: r122032
      Ralf Wildenhues committed
    • * Makefile.in: Added "pdf" target to .PHONY. · 123ddd68
      From-SVN: r122031
      Brooks Moses committed
    • re PR middle-end/30391 (ICE at -O1 with conditional expressions and GIMPLE_MODIFY_STMT) · 939409af
      
      	PR middle-end/30391
      	* tree.c (expr_align): Handle MODIFY_EXPR.  GIMPLE_MODIFY_STMT
      	should be unreachable.
      	(build2_stat): Allow construction of MODIFY_EXPR at any time.
      	For the time being redirect GIMPLE_MODIFY_STMT to the new
      	(renamed) build_gimple_modify_stmt_stat.
      	(build2_gimple_stat): Rename to...
      	(build_gimple_modify_stmt_stat): Now longer take a CODE argument.
      	Always build a GIMPLE_MODIFY_STMT node.
      	* tree.h (build2_gimple, build2_gimple_stat): Delete.
      	(build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
      	declarations.
      
      	* tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
      	gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
      	* tree-complex.c (set_component_ssa_name, expand_complex_move,
      	expand_complex_div_wide): Likewise.
      	* tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
      	* tree-ssa-loop-im.c (schedule_sm): Likewise.
      	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
      	* tree-ssa-loop-manip.c (create_iv): Likewise.
      	* tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
      	abs_replacement): Likewise.
      	* tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
      	realify_fake_stores): Likewise.
      
      	* builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
      	node rather than a GIMPLE_MODIFY_STMT node.
      	(std_gimpify_va_arg_expr, expand_builtin_va_copy,
      	fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
      	Likewise.
      	(integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
      	* expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
      	GIMPLE_MODIFY_STMT.
      
      	* gfortran.dg/pr30391-1.f90: New test case.
      
      From-SVN: r122030
      Roger Sayle committed
    • re PR middle-end/30433 (no longer folding __complex__(0.0, 1.0) == __complex__(1.0, 0.0)) · 3c32c87f
      2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR middle-end/30433
              * fold-const.c (fold_comparison): Add back the
              folding of constant complex comparisions.
      2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR middle-end/30433
              * gcc.c-torture/compile/pr30433.c: New testcase to check
              that complex constants comparisions are foldded.
      
      From-SVN: r122029
      Andrew Pinski committed
    • re PR c++/30158 (ICE with invalid statement-expressions) · 76b9a2a1
      2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR C++/30158
              * semantics.c (finish_stmt_expr_expr): Set TREE_TYPE of the
              statement expression if we had an error mark node.
      2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR C++/30158
              * g++.dg/ext/stmtexpr10.C: New testcase.
      
      From-SVN: r122028
      Andrew Pinski committed
    • re PR middle-end/30729 (value computed is not used warning with unused result of va_arg) · d3d6f724
      2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR middle-end/30729
              * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
              effects unknown to this function, return early.
      
      2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR middle-end/30729
              * gcc.dg/Wunused-value-2.c: New testcase.
      
      From-SVN: r122027
      Andrew Pinski committed
    • texi2pod.pl: Handle @subsubsection, ignore @anchor. · d0fc3f06
      2007-02-16  Matthias Klose  <doko@debian.org>
      
              * texi2pod.pl: Handle @subsubsection, ignore @anchor.
      
      From-SVN: r122026
      Matthias Klose committed
    • lower-subreg.c (move_eh_region_note): New static function. · 73663bb7
      ./:	* lower-subreg.c (move_eh_region_note): New static function.
      	(resolve_simple_move): Call it.
      	(decompose_multiword_subregs): Track blocks for which we resolve a
      	simple move which is also a control flow insn.  Pass them to
      	find_many_sub_basic_blocks.
      	(pass_lower_subreg): Add TODO_verify_flow.
      	(pass_lower_subreg2): Likewise.
      testsuite/:
      	* g++.dg/eh/subreg-1.C: New test.
      
      From-SVN: r122025
      Ian Lance Taylor committed
    • Daily bump. · 845a9c4e
      From-SVN: r122023
      GCC Administrator committed
    • interpret.cc (_Jv_InterpMethod::check_handler): New method. · 7a1bf87c
      2007-02-15  Kyle Galloway  <kgallowa@redhat.com>
      	
      	* interpret.cc (_Jv_InterpMethod::check_handler): New method.
          * interpret-run.cc: Change the catch section to report exception
          events and to use the new check_handler method.
          * include/java-interp.h (_Jv_InterpMethod): Add check_handler.
          * gnu/gcj/jvmti/ExceptionEvent.java: New file.
          * gnu/gcj/jvmti/ExceptionEvent.h: New file.
          * gnu/gcj/jvmti/natExceptionEvent.cc: New file.
          * libjava/classpath/lib/gnu/gcj/jvmti/ExceptionEvent.class: New
          file.
          * sources.am: Added ExceptionEvent.java.
          * Makefile.am: Added natExceptionEvent.cc
          * Makefile.in: Regenerated.
          * include/Makefile.in: Regenerated.
          * gcj/Makefile.in: Regenerated.
      
      From-SVN: r122019
      Kyle Galloway committed
  4. 15 Feb, 2007 11 commits
    • tree.h (enum tree_code_class): Add tcc_vl_exp. · 5039610b
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* tree.h (enum tree_code_class): Add tcc_vl_exp.
      	(VL_EXP_CLASS_P): New.
      	(TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.
      	(TREE_OPERAND_CHECK_CODE): Likewise.
      	(GIMPLE_STMT_OPERAND_CHECK): Likewise.
      	(TREE_RTL_OPERAND_CHECK): Likewise.
      	(tree_operand_check_failed): Make second parameter the whole tree
      	instead of its code.  Fixed callers.
      	(VL_EXP_CHECK): New.
      	(TREE_OPERAND_LENGTH): New.
      	(VL_EXP_OPERAND_LENGTH): New.
      	(CALL_EXPR_FN): New.
      	(CALL_EXPR_STATIC_CHAIN): New.
      	(CALL_EXPR_ARGS): New.
      	(CALL_EXPR_ARG): New.
      	(call_expr_nargs): New.
      	(CALL_EXPR_ARGP): New.
      	(build_nt_call_list): Declare.
      	(build_vl_exp_stat): Declare.
      	(build_vl_exp): New.
      	(build_call_list): Declare.
      	(build_call_nary): Declare.
      	(build_call_valist): Declare.
      	(build_call_array): Declare.
      	(call_expr_arg): Declare.
      	(call_expr_argp): Declare.
      	(call_expr_arglist): Declare.
      	(fold_build_call_list): Declare.
      	(fold_build_call_list_initializer): Declare.
      	(fold_call_expr): Declare to replace fold_builtin.
      	(fold_builtin_fputs): Update to agree with modified definition.
      	(fold_builtin_strcpy): Likewise.
      	(fold_builtin_strncpy): Likewise.
      	(fold_builtin_memory_chk): Likewise.
      	(fold_builtin_stxcpy_chk): Likewise.
      	(fold_builtin_strncpy_chk): Likewise.
      	(fold_builtin_next_arg): Likewise.
      	(fold_build_call_expr): Declare.
      	(fold_builtin_call_list): Declare.
      	(fold_builtin_call_valist): Declare.
      	(build_call_expr): Declare.
      	(validate_arglist): Update to agree with modified definition.
      	(tree_operand_length): New.
      	(call_expr_arg_iterator): New.
      	(init_call_expr_arg_iterator): New.
      	(next_call_expr_arg): New.
      	(first_call_expr_arg): New.
      	(more_call_expr_args_p): New.
      	(FOR_EACH_CALL_EXPR_ARG): New.
      
      	* tree.c (tree_code_class_string): Add entries for tcc_vl_exp
      	and tcc_gimple_stmt.
      	(tree_code_size): Update documentation.  Use sizeof (tree) rather
      	than sizeof (char *).
      	(tree_size): Likewise.  Add case for tcc_vl_exp.
      	(tree_node_structure): Add case for tcc_vl_exp.
      	(contains_placeholder_p): Likewise.
      	(substitute_in_expr): Likewise.
      	(substitute_placeholder_in_expr): Likewise.
      	(stabilize_reference_1): Likewise.
      	(build3_stat): Remove logic for CALL_EXPRs.  Replace with assertion
      	to diagnose breakage of this interface for constructing CALL_EXPRs.
      	(build_nt): Add similar assertion here.
      	(build_nt_call_list): New.
      	(simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
      	(iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.
      	(get_callee_fndecl): Use new CALL_EXPR accessors.
      	(tree_operand_check_failed): Change parameters to pass entire node
      	instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
      	(process_call_operands): New.
      	(build_vl_exp_stat): New.
      	(build_call_list): New.
      	(build_call_nary): New.
      	(build_call_valist): New.
      	(build_call_array): New.
      	(walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(call_expr_arglist): New.
      
      	* tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
      	tcc_vl_exp instead of a fixed-size tcc_expression.
      
      	* doc/c-tree.texi (CALL_EXPR): Document new representation and
      	accessors for CALL_EXPRs.
      	(AGGR_INIT_EXPR): Likewise.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* builtins.c (c_strlen): Return NULL_TREE instead of 0.
      	(expand_builtin_nonlocal_goto): Change parameter to be entire
      	CALL_EXPR instead of an arglist.  Use new CALL_EXPR accessors.
      	(expand_builtin_prefetch): Likewise.
      	(expand_builtin_classify_type): Likewise.
      	(mathfn_built_in): Return NULL_TREE instead of 0.
      	(expand_errno_check): Use new CALL_EXPR accessors.
      	(expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
      	Return NULL_RTX instead of 0.
      	(expand_builtin_mathfn_2): Likewise.
      	(expand_builtin_mathfn_3): Likewise.
      	(expand_builtin_interclass_mathfn): Likewise.
      	(expand_builtin_sincos): Likewise.
      	(expand_builtin_cexpi): Likewise.
      	(expand_builtin_int_roundingfn): Likewise.
      	(expand_builtin_int_roundingfn_2): Likewise.
      	(expand_builtin_pow): Likewise.
      	(expand_builtin_powi): Likewise.
      	(expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
      	of arglist, fixing callers appropriately.  Use new CALL_EXPR
      	accessors and constructors.  Return NULL_RTX instead of 0.
      	(expand_builtin_strstr): Likewise.
      	(expand_builtin_strchr): Likewise.
      	(expand_builtin_strrchr): Likewise.
      	(expand_builtin_strpbrk): Likewise.
      	(expand_builtin_memcpy): Likewise.
      	(expand_builtin_mempcpy): Likewise.
      	(expand_builtin_mempcpy_args): New.
      	(expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
      	(expand_builtin_memmove_args): New.
      	(expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
      	(expand_movstr): Likewise.
      	(expand_builtin_strcpy): Likewise.
      	(expand_builtin_strcpy_args): New.
      	(expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
      	(expand_builtin_strncpy): Likewise.
      	(expand_builtin_memset): Likewise.
      	(expand_builtin_memset_args): New.
      	(expand_builtin_bzero): Similarly to expand_builtin_memset.
      	(expand_builtin_memcmp): Likewise.
      	(expand_builtin_strcmp): Likewise.
      	(expand_builtin_strncmp): Likewise.
      	(expand_builtin_strcat): Likewise.
      	(expand_builtin_strncat): Likewise.
      	(expand_builtin_strspn): Likewise.
      	(expand_builtin_strcspn): Likewise.
      	(expand_builtin_args_info): Likewise.
      	(expand_builtin_va_start): Likewise.
      	(gimplify_va_arg_expr): Likewise.
      	(expand_builtin_va_end): Likewise.
      	(expand_builtin_va_copy): Likewise.
      	(expand_builtin_frame_address): Likewise.
      	(expand_builtin_alloca): Likewise.
      	(expand_builtin_bswap): Likewise.
      	(expand_builtin_unop): Likewise.
      	(expand_builtin_fputs): Likewise.
      	(expand_builtin_expect): Likewise.
      	(expand_builtin_fabs): Likewise.
      	(expand_builtin_copysign): Likewise.
      	(expand_builtin_printf): Likewise.
      	(expand_builtin_fprintf): Likewise.
      	(expand_builtin_sprintf): Likewise.
      	(expand_builtin_init_trampoline): Likewise.
      	(expand_builtin_signbit): Likewise.
      	(expand_builtin_fork_or_exec): Likewise.
      	(expand_builtin_sync_operation): Likewise.
      	(expand_builtin_compare_and_swap): Likewise.
      	(expand_builtin_lock_test_and_set): Likewise.
      	(expand_builtin_lock_release): Likewise.
      	(expand_builtin): Likewise.
      	(builtin_mathfn_code): Likewise.
      
      	(fold_builtin_constant_p): Pass call arguments individually instead
      	of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
      	accessors and constructors.  Return NULL_TREE instead of 0.
      	(fold_builtin_expect): Likewise.
      	(fold_builtin_classify_type): Likewise.
      	(fold_builtin_strlen): Likewise.
      	(fold_builtin_nan): Likewise.
      	(integer_valued_real_p): Likewise.
      	(fold_trunc_transparent_mathfn): Likewise.
      	(fold_fixed_mathfn): Likewise.
      	(fold_builtin_cabs): Likewise.
      	(fold_builtin_sqrt): Likewise.
      	(fold_builtin_cbrt): Likewise.
      	(fold_builtin_cos): Likewise.
      	(fold_builtin_cosh): Likewise.
      	(fold_builtin_tan): Likewise.
      	(fold_builtin_sincos): Likewise.
      	(fold_builtin_cexp): Likewise.
      	(fold_builtin_trunc): Likewise.
      	(fold_builtin_floor): Likewise.
      	(fold_builtin_ceil): Likewise.
      	(fold_builtin_round): Likewise.
      	(fold_builtin_int_roundingfn): Likewise.
      	(fold_builtin_bitop): Likewise.
      	(fold_builtin_bswap): Likewise.
      	(fold_builtin_logarithm): Likewise.
      	(fold_builtin_hypot): Likewise.
      	(fold_builtin_pow): Likewise.
      	(fold_builtin_powi): Likewise.
      	(fold_builtin_exponent): Likewise.
      	(fold_builtin_memset): Likewise.
      	(fold_builtin_bzero): Likewise.
      	(fold_builtin_memory_op): Likewise.
      	(fold_builtin_bcopy): Deleted; call site changed to invoke
      	fold_builtin_memory_op directly.
      	(fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
      	(fold_builtin_strncpy): Likewise.
      	(fold_builtin_memcmp): Likewise.
      	(fold_builtin_strcmp): Likewise.
      	(fold_builtin_strncmp): Likewise.
      	(fold_builtin_signbit): Likewise.
      	(fold_builtin_copysign): Likewise.
      	(fold_builtin_isascii): Likewise.
      	(fold_builtin_toascii): Likewise.
      	(fold_builtin_isdigit): Likewise.
      	(fold_builtin_fabs): Likewise.
      	(fold_builtin_abs): Likewise.
      	(fold_builtin_fmin_fmax): Likewise.
      	(fold_builtin_carg): Likewise.
      	(fold_builtin_classify): Likewise.
      	(fold_builtin_unordered_cmp): Likewise.
      
      	(fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
      	New functions split out from fold_builtin_1.
      	(fold_builtin_n): New.
      	(fold_builtin_varargs): New.
      	(fold_builtin): Deleted.  Most callers changed to use fold_call_expr
      	instead.
      	(fold_call_expr): New.
      	(build_function_call_expr): Rewrite to use new helper function.
      	(fold_builtin_call_list): New.
      	(build_call_expr): New.
      	(fold_builtin_call_valist): New.
      	(rewrite_call_expr): New.
      	(validate_arg): New.
      	(validate_arglist): Change parameter to be entire CALL_EXPR instead
      	of an arglist.  Change return type to bool.  Use new CALL_EXPR
      	accessors.
      
      	(fold_builtin_strstr):  Pass call arguments individually instead
      	of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
      	accessors and constructors.  Return NULL_TREE instead of 0.
      	(fold_builtin_strchr): Likewise.
      	(fold_builtin_strrchr): Likewise.
      	(fold_builtin_strpbrk): Likewise.
      	(fold_builtin_strcat): Likewise.
      	(fold_builtin_strncat): Likewise.
      	(fold_builtin_strspn): Likewise.
      	(fold_builtin_strcspn): Likewise.
      	(fold_builtin_fputs): Likewise.
      	(fold_builtin_next_arg): Likewise.
      	(fold_builtin_sprintf): Likewise.
      
      	(expand_builtin_object_size): Use new CALL_EXPR accessors.  Use
      	NULL_RTX instead of 0.
      	(expand_builtin_memory_chk): Likewise.
      	(maybe_emit_chk_warning): Likewise.
      	(maybe_emit_sprintf_chk_warning): Likewise.
      
      	(fold_builtin_object_size): Pass call arguments individually instead
      	of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
      	accessors and constructors.  Return NULL_TREE instead of 0.
      	(fold_builtin_memory_chk): Likewise.
      	(fold_builtin_stxcpy_chk): Likewise.
      	(fold_builtin_strncpy_chk): Likewise.
      	(fold_builtin_strcat_chk): Likewise.
      	(fold_builtin_strcat_chk): Likewise.
      	(fold_builtin_strncat_chk): Likewise.
      	(fold_builtin_sprintf_chk): Likewise.
      	(fold_builtin_snprintf_chk): Likewise.
      	(fold_builtin_printf): Likewise.
      	(fold_builtin_vprintf): Likewise.
      
      	* fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
      	constructors.
      	(operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
      	(make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(extract_muldiv_1): Add VL_EXP_CLASS_P case.
      	(fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
      	(fold_unary): Likewise.
      	(fold_binary): Likewise.
      	(fold_ternary): Remove CALL_EXPR case, since they are no longer
      	ternary expressions.
      	(fold): Add logic for tcc_vl_exp.
      	(fold_checksum_tree):  Make it know about tcc_vl_exp.  Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(fold_build3_stat): Add assertion to flag broken interface for
      	constructing CALL_EXPRs.
      	(fold_build_call_list): New.
      	(fold_build_call_list_initializer): New.
      	(tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
      	constructors.
      	(fold_strip_sign_ops): Likewise.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
      	accessors and dump arguments explicitly.
      
      	* tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.
      	(dump_generic_node): Use new CALL_EXPR accessors and walk arguments
      	explicitly.
      	(print_call_name): Use new CALL_EXPR accessors.
      
      	* print-tree.c (print_node): Add case tcc_vl_exp.  Print
      	CALL_EXPR arguments explicitly instead of as a list.  Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      
      	* tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
      	(vrp_visit_stmt): Likewise.
      
      	* tree-ssa-loop-im.c (outermost_invariant_loop_expr):  Make it
      	know about tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.
      	(force_move_till_expr): Likewise.
      
      	* targhooks.c (default_external_stack_protect_fail): Use
      	build_call_expr instead of build_function_call_expr.
      	(default_hidden_stack_protect_fail): Likewise.
      
      	* tree-complex.c (expand_complex_libcall): Use build_call_expr to
      	build the call.
      
      	* cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
      	and walk arguments explicitly.
      
      	* tree-ssa-loop-niter.c (simplify_replace_tree): Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(expand_simple_operations): Likewise.
      	(infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
      
      	* gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
      	of TREE_CODE_LENGTH.
      	(walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
      
      	* optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      
      	* value_prof.c (tree_ic): Use new CALL_EXPR accessors.
      	(tree_ic_transform): Likewise.
      	(interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
      	parameter instead of arglist.  Fix callers.
      	(tree_stringop_fixed_value): Use new CALL_EXPR accessors.
      	(tree_stringops_transform): Likewise.
      	(tree_indirect_call_to_profile): Likewise.
      	(tree_stringops_values_to_profile): Likewise.
      
      	* tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
      	(eliminate_tail_call): Likewise.
      
      	* ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
      
      	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
      	Use TREE_OPERAND_LENGTH and generalize to handle any number of
      	operands.
      	(instantiate_parameters_1): Can't handle tcc_vl_exp here.
      
      	* omp-low.c (build_omp_barrier): Use build_call_expr.
      	(lower_rec_input_clauses): Likewise.
      	(lower_reduction_clauses): Likewise.
      	(expand_parallel_call): Likewise.
      	(maybe_catch_exception): Likewise.
      	(expand_omp_for_generic): Likewise.
      	(expand_omp_for_static_nochunk): Likewise.
      	(expand_omp_sections): Likewise.
      	(lower_omp_single_simple): Likewise.
      	(lower_omp_single_copy): Likewise.
      	(lower_omp_master): Likewise.
      	(lower_omp_ordered): Likewise.
      	(lower_omp_critical): Likewise.
      
      	* ipa-reference.c (check-call): Use new CALL_EXPR iterator.
      	(scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
      
      	* tree-gimple.c (is_gimple_call_addr): Fix doc.
      	(recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.  Add tcc_vl_exp case.
      
      	* tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
      	and generalize to handle any number of operands.
      	(chrec_contains_undetermined): Likewise.
      	(tree_contains_chrecs): Likewise.
      	(evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
      
      	* cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
      
      	* tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors.  Use
      	fold_call_expr instead of fold_builtin.
      	(ccp_fold_builtin): Likewise.  Update calls into builtins.c to
      	match declarations there.
      	(fold_stmt): Use new CALL_EXPR constructor and accessors.  Doc
      	updates.
      
      	* tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      
      	* ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
      	(scan_function): Add case tcc_vl_exp for CALL_EXPR.
      
      	* tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
      	accessors.
      
      	* tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
      	(execute_cse_sincos): Use new CALL_EXPR accessors.
      
      	* tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
      
      	* gimple-low.c (lower_function_body): Use build_call_expr.
      	(lower_builtin_setjmp): Likewise.
      
      	* expr.c (emit_block_move_via_libcall): Use build_call_expr.
      	(set_storage_via_libcall): Likewise.
      	(safe_from_p): Add tcc_vl_exp case.  Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      	(expand_expr_real_1): Use new CALL_EXPR accessors.
      
      	* tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
      	generalize to handle any number of operands.
      	(TB_parent_eq): Likewise.
      
      	* predict.c (expr_expected_value): Use new CALL_EXPR accessors.
      	(strip_builtin_expect): Likewise.
      
      	* function.c (gimplify_parameters): Use build_call_expr.
      
      	* tree-vectorizer.c (vect_is_simple_reduction): Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      
      	* ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
      	(scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
      
      	* tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
      	iterators.
      
      	* gimplify.c (build_stack_save_restore): Use build_call_expr.
      	(gimplify_decl_expr): Likewise.
      	(gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
      	Use new CALL_EXPR iterators.
      	(gimplify_modify_expr_to_memcpy): Use build_call_expr.
      	(gimplify_modify_expr_to_memset): Likewise.
      	(gimplify_variable_sized_compare): Likewise.
      	(gimplify_omp_atomic_fetch_op): Likewise.
      	(gimplify_omp_atomic_pipeline): Likewise.
      	(gimplify_omp_atomic_mutex): Likewise.
      	(gimplify_function_tree): Likewise.
      
      	* calls.c (alloca_call_p): Use new CALL_EXPR accessors.
      	(call_expr_flags): Likewise.
      	(expand_call): Likewise.
      
      	* except.c (expand_builtin_eh_return_data_regno): Pass entire
      	CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR 
              accessors.
      
      	* coverage.c (create_coverage): Use build_call_expr.
      
      	* tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
      	(temp_call_expr_obstack): New.
      	(pool_copy_list): Delete.
      	(temp_copy_call_expr): New.
      	(phi_translate): Add case tcc_vl_exp for CALL_EXPR.  Use new
      	CALL_EXPR accessors.  Get rid of special goo for copying argument
      	lists and use temp_copy_call_expr instead.
      	(valid_in_sets): Add case tcc_vl_exp for CALL_EXPR.  Use new
      	CALL_EXPR accessors.
      	(create_expression_by_pieces): Likewise.  Use build_call_array
      	to construct the result instead of fold_build3.
      	(create_value_expr_from): Add tcc_vl_exp.  Delete special goo for
      	dealing with argument lists.
      	(init_pre): Remove references to expression_node_pool and
      	list_node_pool.  Init temp_call_expr_obstack instead.
      	(fini_pre): Remove references to expression_node_pool and
      	list_node_pool.
      
      	* tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
      	and walk arguments explicitly instead of as a list.
      
      	* tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
      	(mx_register_decls): Likewise.
      	(mudflap_register_call): Likewise.
      	(mudflap_finish_file): Likewise.
      
      	* ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
      	(ipa_callsite_compute_param): Likewise.
      
      	* tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
      	accessors and constructor.
      
      	* tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
      	accessors and constructor.
      	(convert_tramp_reference): Likewise. 
      	(convert_call_expr): Likewise.
      	(finalize_nesting_tree_1): Likewise.
      
      	* tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
      	accessors.
      
      	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
      
      	* tree-inline.c (initialize_inlined_parameters): Pass entire
      	CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
      	accessors.
      	(estimate_num_insns_1): Use new CALL_EXPR accessors.
      	(expand_call_inline): Tidy up call to initialize_inlined_parameters.
      
      	* tree-vect-transform.c (vect_create_epilog_for_reduction):  Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(vectorizable_reduction): Likewise.
      	(vectorizable_call): Use new CALL_EXPR iterators.
      	(vectorizable_conversion): Use build_call_expr.
      	(vectorizable_operation): Use TREE_OPERAND_LENGTH.
      	(vect_gen_widened_results_half): Use build_call_expr.
      	(vect_setup_realignment): Likewise.
      	(vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
      
      	* tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
      	(pass_through_call): Likewise.
      	(compute_object_sizes): Likewise.  Use fold_call_expr instead of
      	fold_builtin.
      
      	* tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
      	(tree_gen_pow2_profiler): Likewise.
      	(tree_gen_one_value_profiler): Likewise.
      	(tree_gen_ic_func_profiler): Likewise.
      	(tree_gen_average_profiler): Likewise.
      	(tree_gen_ior_profiler): Likewise.
      
      	* tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
      	(find_func_aliases): Use new CALL_EXPR accessors.  Add case
      	tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      
      	* tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
      	of TREE_CODE_LENGTH.
      
      	* stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
      	of TREE_CODE_LENGTH.
      
      	* convert.c (convert_to_real): Use new CALL_EXPR accessors and
      	constructor.
      	(convert_to_integer): Likewise.
      
      	* tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
      	accessors.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
      	accessors.
      	* config/frv/frv.c (frv_expand_builtin): Likewise.
      	* config/s390/s390.c (s390_expand_builtin): Likewise.
      
      	* config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
      	(sparc_expand_builtin): Use new CALL_EXPR accessors.
      
      	* config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
      	(ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
      	instead of arglist.  Use new CALL_EXPR accessors on it.  Fix callers.
      	(ix86_expand_store_builtin): Likewise.
      	(ix86_expand_unop_builtin): Likewise.
      	(ix86_expand_unop1_builtin): Likewise.
      	(ix86_expand_sse_compare): Likewise.
      	(ix86_expand_sse_comi): Likewise.
      	(ix86_expand_vec_init_builtin): Likewise.
      	(ix86_expand_vec_ext_builtin): Likewise.
      	(ix86_expand_vec_set_builtin): Likewise.
      	(ix86_expand_builtin): Use new CALL_EXPR accessors.
      
      	* config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
      	* config/c4x/c4x.c (c4x_expand_builtin): Likewise.
      
      	* config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
      	instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(iq2000_expand_builtin): Use new CALL_EXPR accessors.
      
      	* config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
      	build_call_expr.
      	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
      	(rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
      	arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(altivec_expand_abs_builtin): Likewise.
      	(rs6000_expand_binop_builtin): Likewise.
      	(altivec_expand_predicate_builtin): Likewise.
      	(altivec_expand_lv_builtin): Likewise.
      	(spe_expand_stv_builtin): Likewise.
      	(altivec_expand_stv_builtin): Likewise.
      	(rs6000_expand_ternop_builtin): Likewise.
      	(altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
      	(altivec_expand_st_builtin): Likewise.
      	(altivec_expand_dst_builtin): Likewise.
      	(altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
      	arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(altivec_expand_vec_set_builtin): Likewise.
      	(altivec_expand_vec_ext_builtin): Likewise.
      	(altivec_expand_builtin): Use new CALL_EXPR accessors.
      	(spe_expand_builtin): Likewise.
      	(spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
      	arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(spe_expand_evsel_builtin): Likewise.
      	(rs6000_expand_builtin): Use new CALL_EXPR accessors.  VCFUX and
      	FCFSX cases must construct whole new CALL_EXPR, not just arglist.
      
      	* config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
      	instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(arm_expand_unop_builtin): Likewise.
      	(arm_expand_builtin): Use new CALL_EXPR accessors.
      
      	* config/mips/mips.c (mips_expand_builtin):  Use new CALL_EXPR
      	accessors.
      
      	* config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire CALL_EXPR
      	instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(bfin_expand_unop_builtin): Likewise.
      	(bfin_expand_builtin): Use new CALL_EXPR accessors.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* c-semantics.c (build_stmt): Add internal diagnostic check.
      
      	* c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
      	accessors.  Print arguments explicitly instead of as a list.
      
      	* c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
      
      	* c-omp.c (c_finish_omp_barrier): Use build_call_expr.
      	(c_finish_omp_flish): Likewise.
      
      	* c-common.c (verify_tree): Use new CALL_EXPR accessors.  Traverse
      	arguments explicitly instead of as a list.  Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      	(check_function_arguments_recurse): Use new CALL_EXPR accessors.
      	(c_warn_unused_result): Likewise.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* cp-tree.def (AGGR_INIT_EXPR): Adjust documentation.
      	Change class to tcc_vl_exp.
      
      	* call.c (build_call): Use build_call_list instead 
      	of build3. 
      	(build_over_call): Likewise.
      	(build_new_method_call): Use build_min_non_dep_call_list 
      	instead of build_min_non_dep.
      
      	* error.c (dump_call_expr_args): New function.
      	(dump_aggr_init_expr_args): New function.
      	(dump_expr) <AGGR_INIT_EXPR, CALL_EXPR, INDIRECT_REF>: Use them. 
      	Update to use new CALL_EXPR and AGGR_INIT_EXPR accessor macros.
      
      	* cvt.c (convert_to_void): Use build_call_array instead
      	of build3; use new AGGR_INIT_EXPR accessor macros.
      
      	* mangle.c (write_expression): Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      
      	* dump.c (cp_dump_tree) <AGGR_INIT_EXPR>: Update to use new
      	AGGR_INIT_EXPR accessor macros.
      
      	* cp-gimplify.c (cp_gimplify_init_expr): Use 
      	AGGR_INIT_EXPR_SLOT to set the slot operand.
      
      	* cp-tree.h (AGGR_INIT_EXPR_FN): New macro.
      	(AGGR_INIT_EXPR_SLOT): New macro.
      	(AGGR_INIT_EXPR_ARG): New macro.
      	(aggr_init_expr_nargs): New macro.
      	(AGGR_INIT_EXPR_ARGP): New macro.
      	(aggr_init_expr_arg_iterator): New.
      	(init_aggr_init_expr_arg_iterator): New.
      	(next_aggr_init_expr_arg): New.
      	(first_aggr_init_expr_arg): New.
      	(more_aggr_init_expr_args_p): New.
      	(FOR_EACH_AGGR_INIT_EXPR_ARG): New.
      	(stabilize_aggr_init): New declaration.
      	(build_min_non_dep_call_list): Likewise.
      
      	* tree.c (process_aggr_init_operands): New function.
      	(build_aggr_init_array) New function.
      	(build_cplus_new): Update to use new CALL_EXPR and
      	AGGR_INIT_EXPR accessor macros. Replace use of build3 with
      	build_aggr_init_array.
      	(build_min_non_dep_call_list) New function.
      	(build_min_nt): Assert input code parameter is not a variable
      	length expression class.
      	(build_min, build_min_non_dep): Likewise.
      	(cp_tree_equal) <CALL_EXPR>: Iterate through the arguments
      	to check for equality instead of recursing. Handle tcc_vl_exp
      	tree code classes.
      	(stabilize_call): Update to only handle CALL_EXPRs, not 
      	AGGR_INIT_EXPRs; use new CALL_EXPR accessor macros.
      	(stabilize_aggr_init): New function.
      	(stabilize_init): Use it.
      
      	* cxx-pretty-print.c (pp_cxx_postfix_expression)
      	<AGGR_INIT_EXPR, CALL_EXPR>: Update to use new CALL_EXPR and
      	AGGR_INIT_EXPR accessor macros and argument iterators.
      	
      	* pt.c (tsubst_copy) <CALL_EXPR>: Replace build_nt with
      	build_vl_exp. Iterate through the operands, recursively 
      	processing each one.
      	(tsubst_copy_and_build) <CALL_EXPR>: Update to use new
      	CALL_EXPR accessor macros.
      	(value_dependent_expression_p) <default>: Handle tcc_vl_exp
      	tree code classes. Use TREE_OPERAND_LENGTH instead of 
      	TREE_CODE_LENGTH.
      
      	* semantics.c (finish_call_expr): Use build_nt_call_list
      	instead of build_nt.
      	(simplify_aggr_init_expr): Update to use new AGGR_INIT_EXPR 
      	accessor macros. Use build_call_array to construct the 
      	CALL_EXPR node instead of build3
      	
      	* decl2.c (build_offset_ref_call_from_tree): Use 
      	build_nt_call_list and build_min_non_dep_call_list instead
      	of build_min_nt and build_min_non_dep.
      
      	* parser.c (cp_parser_postfix_expression) <CPP_OPEN_PAREN>:
      	Use build_nt_call_list instead of build_min_nt.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
      	of build3.
      	(BUILD_MONITOR_EXIT): Likewise.
      
      	* java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
      	(java_gimplify_modify_expr): Likewise.
      
      	* class.c (cache_this_class_ref): Use build_call_expr.
      	(build_static_field_ref): Likewise.
      	(emit_indirect_register_classes): Likewise.
      	(emit_register_classes): Likewise.
      
      	* resource.c (write_resource_constructor): Use build_call_expr.
      
      	* builtins.c (builtin_creator_function): Change interpretation of
      	the second parameter to be the whole CALL_EXPR instead of the arglist.
      	(max_builtin): Tweak parameter list.  Use new CALL_EXPR accessors.
      	(min_builtin): Likewise.
      	(abs_builtin): Likewise.
      	(java_build_function_call_expr): Likewise.
      	(convert_real): Likewise.
      	(UNMARSHAL3): Likewise.
      	(UNMARSHAL4): Likewise.
      	(UNMARSHAL5): Likewise.
      	(build_arglist_for_builtin): Delete.  Fix callers to use
      	build_call_expr instead.
      	(putObject_builtin): Tweak parameter list.  Use new CALL_EXPR
      	accessors.
      	(compareAndSwapInt_builtin): Likewise.
      	(compareAndSwapLong_builtin): Likewise.
      	(compareAndSwapObject_builtin): Likewise.
      	(putVolatile_builtin): Likewise.
      	(getVolatile_builtin): Likewise.
      	(VMSupportsCS8_builtin): Likewise.
      	(check_for_builtin): Pass entire CALL_EXPR to builtin expander
      	instead of arglist.
      
      	* expr.c (build_java_athrow): Use build_call_nary instead of build3.
      	(build_java_throw_out_of_bounds_exception): Likewise.
      	(java_check_reference): Likewise.
      	(build_java_arraystore_check): Likewise.
      	(build_newarray): Likewise.
      	(build_anewarray): Likewise.
      	(expand_java_multinewarray): Use build_call_list instead of build3.
      	(build_java_monitor): Use build_call_nary instead of build3.
      	(java_create_object): Likewise.
      	(expand_java_NEW): Likewise.
      	(build_instanceof): Likewise.
      	(expand_java_CHECKCAST): Likewise.
      	(build_java_soft_divmod): Likewise.
      	(build_java_binop): Likewise.
      	(build_field_ref): Likewise.
      	(build_class_init): Likewise.
      	(rewrite_arglist_getcaller): Use build_call_expr.
      	(build_invokeinterface):  Use build_call_nary instead of build3.
      	(expand_invoke): Use build_call_list instead of build3.
      	(build_jni_stub): Use build_call_nary, build_call_list, or
      	build_call_expr instead	of build3.
      	(expand_java_field_op): Use build_call_expr instead of build3.
      	(force_evaluation_order): Use new CALL_EXPR accessors.
      
      	* lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
      	(objc_get_callee_fndecl): Likewise.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* trans-expr.c (gfc_conv_power_op): Use build_call_expr.
      	(gfc_conv_string_tmp): Likewise.
      	(gfc_conv_concat_op): Likewise.
      	(gfc_build_compare_string): Likewise.
      	(gfc_conv_function_call): Use build_call_list instead of build3.
      
      	* trans-array.c (gfc_trans_allocate_array_storage): Use
      	build_call_expr.
      	(gfc_grow_array): Likewise.
      	(gfc_trans_array_ctor_element): Likewise.
      	(gfc_trans_array_constructor_value): Likewise.
      	(gfc_array_allocate): Likewise.
      	(gfc_array_deallocate): Likewise.
      	(gfc_trans_auto_array_allocation): Likewise.
      	(gfc_trans_dummy_array_bias): Likewise.
      	(gfc_conv_array_parameter): Likewise.
      	(gfc_trans_dealloc_allocated): Likewise.
      	(gfc_duplicate_allocatable): Likewise.
      
      	* trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr.
      	(gfc_trans_omp_flush): Likewise.
      
      	* trans-stmt.c (gfc_conv_elementel_dependencies): Use build_call_expr.
      	(gfc_trans_pause): Likewise.
      	(gfc_trans_stop): Likewise.
      	(gfc_trans_character_select): Likewise.
      	(gfc_do_allocate): Likewise.
      	(gfc_trans_assign_need_temp): Likewise.
      	(gfc_trans_pointer_assign_need_temp): Likewise.
      	(gfc_trans_forall_1): Likewise.
      	(gfc_trans_where_2): Likewise.
      	(gfc_trans_allocate): Likewise.
      	(gfc_trans_deallocate): Likewise.
      
      	* trans.c (gfc_trans_runtime_check): Use build_call_expr.
      
      	* trans-io.c (gfc_trans_open): Use build_call_expr.
      	(gfc_trans_close): Likewise.
      	(build_filepos): Likewise.
      	(gfc_trans_inquire): Likewise.
      	(NML_FIRST_ARG): Delete.
      	(NML_ADD_ARG): Delete.
      	(transfer_namelist_element): Use build_call_expr.
      	(build_dt): Likewise.
      	(gfc_trans_dt_end): Likewise.
      	(transfer_expr): Likewise.
      	(transfer_array-desc): Likewise.
      
      	* trans-decl.c (gfc_generate_function_code): Use build_call_expr.
      	(gfc_generate_constructors): Likewise.
      
      	* trans-intrinsic.c (gfc_conv_intrinsic_ctime): Use build_call_expr.
      	(gfc_conv_intrinsic_fdate): Likewise.
      	(gfc_conv_intrinsic_ttynam): Likewise.
      	(gfc_conv_intrinsic_array_transfer): Likewise.
      	(gfc_conv_associated): Likewise.
      	(gfc_conv_intrinsic_si_kind): Likewise.
      	(gfc_conv_intrinsic_trim): Likewise.
      	(gfc_conv_intrinsic_repeat: Likewise.
      	(gfc_conv_intrinsic_iargc): Likewise.
      
      Co-Authored-By: Brooks Moses <brooks.moses@codesourcery.com>
      Co-Authored-By: Lee Millward <lee.millward@codesourcery.com>
      
      From-SVN: r122018
      Sandra Loosemore committed
    • re PR c/26494 (-pedantic-errors can be overridden by -W*) · dc90f45b
      2007-02-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
      
      	PR c/26494
      	* doc/invoke.texi (Warning Options): Remove
      	-Werror-implicit-function-declaration.
      	(Wimplicit-function-declaration): Update description.
      	* opts.c (common_handle_option): Move handling of -Werror=* to...
      	(enable_warning_as_error): ...here.
      	* opts.h (enable_warning_as_error): Declare.
      	* c-decl.c (implicit_decl_warning): Unless
      	-Wno-implicit-function-declaration is given, emit a pedwarn if
      	-std=c99 or emit a warning if -Wimplicit-function-declaration.
      	* c.opt (Wimplicit-function-declaration): Replace
      	mesg_implicit_function_declaration with
      	warn_implicit_function_declaration.
      	* c-opts.c (c_common_handle_option):
      	-Werror-implicit-function-declaration is exactly equal as
      	-Werror=implicit-function-declaration.
      	(set_Wimplicit): Replace mesg_implicit_function_declaration with
      	warn_implicit_function_declaration.
      	(c_common_post_options): -Wimplict-function-declaration is enabled
      	by default by -std=c99, otherwise is disabled by default.
      	* c-objc-common.c (c_objc_common_init): Remove flawed logic.
      testsuite/
      	* gcc.dg/Wimplicit-function-declaration-c89.c: New.
      	* gcc.dg/Wimplicit-function-declaration-c89-default.c: New.
      	* gcc.dg/Wimplicit-function-declaration-c89-pedantic.c: New.
      	* gcc.dg/Wimplicit-function-declaration-c99.c: New.
      	* gcc.dg/Wimplicit-function-declaration-c99-pedantic.c: New.
      	* gcc.dg/Werror-implicit-function-declaration.c: New.
      
      From-SVN: r122017
      Manuel López-Ibáñez committed
    • re PR c++/28943 (Unusable error message when using a conditional-expression with… · 21493102
      re PR c++/28943 (Unusable error message when using a conditional-expression with multiple type arguments)
      
      2007-02-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
      
      	PR c++/28943
      cp/
      	* call.c (build_conditional_expr): Improve error message.
      testsuite/
      	* g++.dg/warn/pr28943.C: New.
      
      From-SVN: r122016
      Manuel López-Ibáñez committed
    • gimplify.c (gimplify_modify_expr): During gimplification... · f173837a
      	* gimplify.c (gimplify_modify_expr): During gimplification, attach a
      	DECL on the rhs to a DECL on the lhs for debug info purposes if the
      	former is ignored but not the latter.
      
      From-SVN: r122015
      Eric Botcazou committed
    • expr.c (expand_expr_real_1): If a temporary is made and the reference doesn't… · befdad07
      expr.c (expand_expr_real_1): If a temporary is made and the reference doesn't use the alias set of its type...
      
      	* expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
      	is made and the reference doesn't use the alias set of its type,
      	do not create the temporary using that type.
      
      From-SVN: r122014
      Eric Botcazou committed
    • jump.c: Remove prototypes for delete_computation and delete_prior_computation. · eab79d78
      	* jump.c: Remove prototypes for delete_computation and
      	delete_prior_computation.
      
      From-SVN: r122011
      Aldy Hernandez committed
    • Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1. · 7f40378f
      gcc/java:
      2007-02-15  David Daney  <ddaney@avtrex.com>
      
      	* Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
      	(java.maintainer-clean):Add gc-analyze.1.
      	(.INTERMEDIATE): Add gc-analyze.pod.
      	(gc-analyze.pod): New rule.
      	(java.install-man): Install gc-analyze.1
      	* gcj.texi: Add new section for the gc-analyze program.
      
      libjava:
      2007-02-15  Johannes Schmidt  <jschmidt@avtrex.com>
      	David Daney  <ddaney@avtrex.com>
      
      	* configure.ac: Create vm-tools-packages file.  Add 
      	gnu/gcj/tools/gc_analyze to standard.omit and vm-tools-packages.
      	Check for /proc/self/maps.
      	* Makefile.am (bin_PROGRAMS): Added gc-analyze.
      	(gc_analyze_SOURCES): New.
      	(gc_analyze_LDFLAGS): New.
      	(gc_analyze_LINK): New.
      	(gc_analyze_LDADD): New.
      	(gc_analyze_DEPENDENCIES): New.
      	(nat_source_files): Add gnu/gcj/util/natGCInfo.cc.
      	* Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* include/config.h.in: Regenerated.
      	* sources.am: Regenerated.
      	* scripts/makemake.tcl: Don't include gc-analyze classes in libgcj.
      	* gnu/gcj/tools/gc_analyze/SymbolLookup.java: New.
      	* gnu/gcj/tools/gc_analyze/ObjectMap.java: New.
      	* gnu/gcj/tools/gc_analyze/MemoryMap.java: New.
      	* gnu/gcj/tools/gc_analyze/SymbolTable.java: New.
      	* gnu/gcj/tools/gc_analyze/BlockMap.java: New.
      	* gnu/gcj/tools/gc_analyze/BytePtr.java: New.
      	* gnu/gcj/tools/gc_analyze/ItemList.java: New.
      	* gnu/gcj/tools/gc_analyze/ToolPrefix.java: New.
      	* gnu/gcj/tools/gc_analyze/MemoryAnalyze.java: New.
      	* gnu/gcj/util/GCInfo.java: New.
      	* gnu/gcj/util/GCInfo.h: New.
      	* gnu/gcj/util/natGCInfo.cc: New.
      	* gnu/gcj/util/UtilPermission.java: New.
      	* gnu/gcj/util/UtilPermission.h: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/SymbolTable.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/ObjectMap$ObjectItem.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap$RangeComparator.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap$PtrMarks.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap$Range.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/BytePtr.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$SubstringComparator.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/ItemList.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/ToolPrefix.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1$Info.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$2.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$3.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$4.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$OptionParser.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap$SizeKind.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/SymbolLookup.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/ObjectMap.class: New.
      	* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap.class: New.
      	* classpath/lib/gnu/gcj/util/GCInfo.class: New.
      	* classpath/lib/gnu/gcj/util/UtilPermission.class: New.
      
      libjava/classpath:
      2007-02-15  David Daney  <ddaney@avtrex.com>
      
      	* tools/Makefile.am (TOOLS_ZIP): Add classes from vm-tools-packages.
      	* tools/Makefile.in: Regenerated.
      
      From-SVN: r122007
      David Daney committed
    • PlainSocketImpl.h: Regenerate. · 31429fbc
      	* gnu/java/net/PlainSocketImpl.h: Regenerate.
      	* gnu/classpath/jdwp/VMVirtualMachine.h: Same.
      	* gnu/classpath/jdwp/VMFrame.h: Same.
      	* java/net/Socket.h: Same.
      	* java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h: Same.
      
      From-SVN: r122006
      David Daney committed
    • AttributeList.java: Updated. · b697e623
      2007-02-15  Gary Benson  <gbenson@redhat.com>
      
      	* javax/management/AttributeList.java: Updated.
      	* javax/management/MBeanServerDelegate.java: Likewise.
      	* javax/management/MBeanServerFactory.java: Likewise.
      	* javax/management/StandardMBean.java: Likewise.
      
      From-SVN: r122004
      Gary Benson committed
    • jump.c (get_label_after): Delete. · c47277a6
      2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
      
      	* jump.c (get_label_after): Delete.
      	(get_label_before, delete_computation, delete_jump,
      	delete_prior_computation, follow_jumps): Move...
      	* reorg.c (delete_computation, delete_prior_computation): ... here...
      	(get_label_before, delete_jump): ... making these static ...
      	(follow_jumps): ... and simplifying this since it only runs after
      	reload.
      	* rtl.h (get_label_after, get_label_before, delete_jump,
      	follow_jumps): Delete prototypes.
      
      From-SVN: r122003
      Paolo Bonzini committed
    • defineclass.cc (_Jv_ClassReader::read_one_code_attribute): Added… · fe60528e
      defineclass.cc (_Jv_ClassReader::read_one_code_attribute): Added LocalVariableTable attribute handling.
      
      2007-02-15  Kyle Galloway  <kgallowa@redhat.com>
      
      	* defineclass.cc (_Jv_ClassReader::read_one_code_attribute):
          Added LocalVariableTable attribute handling.
          (_Jv_ClassReader::pool_Utf8_to_char_arr): New method.
          * jvmti.cc (_Jv_JVMTI_GetLocalVariableTable): New method.
          * include/java-interp.h: Added local_var_table and
          local_var_table_len fields to _Jv_InterpMethod.
          (_Jv_InterpMethod::get_local_var_table): New method.
          * testsuite/libjava.jvmti/interp/getlocalvartable.java: New
          test.
          * testsuite/libjava.jvmti/interp/getlocalvartable.jar: New test.
          * testsuite/libjava.jvmti/interp/getlocalvartable.out: Output
          for new test.
          * testsuite/libjava.jvmti/interp/getlocalvartable.h: New test.
          * testsuite/libjava.jvmti/interp/natgetlocalvartable.cc: New
          test.
      
      From-SVN: r121999
      Kyle Galloway committed