X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=bb1e3a501be20c5f00923c97f065f7ada06dde6f;hp=5467fa98d3755fd31a94069eeec2d247aa1d98ec;hb=aa62415a4044b7a63503fc3ff21b8d08b0bc6db8;hpb=4e04f5baad8e809645ad37918c964919b6d41900 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5467fa98d37..bb1e3a501be 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,439 @@ +2010-05-12 Kazu Hirata + Nathan Froyd + + * c-common.c (sync_resolve_params): Remove write-only variable. + +2010-05-12 Anatoly Sokolov + + * target.h (struct gcc_target): Add mode_dependent_address_p field. + * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New. + (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P. + * targhooks.c (default_mode_dependent_address_p): New function. + * targhooks.h (default_mode_dependent_address_p): Declare function. + * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New. + (GO_IF_MODE_DEPENDENT_ADDRESS): Update. + * recog.c: (mode_dependent_address_p): Call mode_dependent_address_p + target hook. Change return type to bool. + * recog.h: (mode_dependent_address_p): Change return type to bool. + +2010-05-12 Kazu Hirata + Nathan Froyd + + * tree-mudflap.c (build_function_type_0, build_function_type_1, + build_function_type_2, build_function_type_3): Remove. + (mudflap_init): Use build_function_type_list. + +2010-05-12 Kazu Hirata + Nathan Froyd + + * coverage.c (build_fn_info_value): Call build_constructor instead of + build_constructor_from_list. + (build_ctr_info_value): Likewise. + (build_gcov_info): Likewise. + +2010-05-12 Nathan Froyd + + * tree.c (build_constructor): Compute TREE_CONSTANT for the + resultant constructor. + (build_constructor_single): Don't set TREE_CONSTANT. + (build_constructor_from_list): Don't compute TREE_CONSTANT. + +2010-05-12 Jan Hubicka + + * cgraph.h (struct varpool_node): Add aux. + * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes. + * varpool.c (varpool_remove_node): Do not remove initializer. + (varpool_reset_queue): Export. + (varpool_finalize_decl): Volatile vars are forced to be output. + * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of + replaced decl. + * ipa.c (enqueue_cgraph_node, enqueue_varpool_node, + process_references, varpool_can_remove_if_no_refs): New functions. + (cgraph_remove_unreachable_nodes): Handle variables too. + +2010-05-12 H.J. Lu + + PR target/44088 + * config/i386/sse.md (*avx_vmmaskcmp3): New. + +2010-05-12 Jakub Jelinek + + PR middle-end/44085 + * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK, + change value of ORT_TASK. + (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK. + (omp_notice_threadprivate_variable): New function. + (omp_notice_variable): Call it for threadprivate variables. + If enclosing ctx is a task, print enclosing task rather than + enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK. + (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK + if task has untied clause. + + PR debug/42278 + * dwarf2out.c (base_type_die): Don't add name attribute here. + (modified_type_die): Instead of sizetype use + its underlying original type. If a DW_TAG_base_type doesn't + have name added, add __unknown__. + (dwarf2out_imported_module_or_decl_1): Don't call base_type_die, + always call force_type_die instead. + +2010-05-12 Maxim Kuvyrkov + + * targhooks.c (default_stack_protect_guard): Avoid sharing RTL + for __stack_chk_guard. + +2010-05-11 Jakub Jelinek + + * c-opts.c (c_common_parse_file): If start_end_main_source_file, + don't call start_source_file debug hook here... + (finish_options): ... but here, after outputting predefined and + command line defines and undefs. + + PR middle-end/44071 + * cfglayout.c (fixup_reorder_chain): Allow asm goto to have + no fallthru edge. + * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode + optimizing away empty bb with no successors, move over its + footer chain to fallthru predecessor. + * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND. + (rtl_split_edge): For asm goto call patch_jump_insn even if + splitting fallthru edge. + + PR c++/44059 + * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object + even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls. + * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise. + * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY + on DW.ref.* decls. + + PR c++/44062 + * c-parser.c (c_parser_expression): Mark LHS of a comma + expression as read if it is a decl, handled component or + COMPOUND_EXPR with that on the RHS. + * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR + if it is a decl or handled component. + +2010-05-11 Jan Hubicka + + * lto-symtab.c (lto_symtab_free): New function. + * lto-streamer.h (lto_symtab_free): Declare. + +2010-05-11 Jan Hubicka + + * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume + that if function is needed it is reachable. + (lto_output_node): See if it the function is reachable or referenced. + (output_cgraph): Update call of lto_output_node. + * lto-streamer.h (reachable_from_other_partition_p): Declare. + +2010-05-11 Jan Hubicka + + * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__): + Mark as used. + +2010-05-11 Jan Hubicka + + PR tree-optimize/44063 + * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of queue. + (cgraph_decide_inlining_of_small_function): Skip check when disrgarding + limits. + (estimate_function_body_sizes): Compute sizes even when disregarding. + +2010-05-11 Kai Tietz + + * collect2.c (maybe_lto_object_file): Add x64-coff magic and check. + +2010-05-11 Jan Hubicka + + * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes + into every boundary. + +2010-05-11 Jan Hubicka + + * matrix-reorg.c (matrix_reorg): Rebuild edges. + +2010-05-11 Jan Hubicka + + * lto-streamer.c (lto_streamer_cache_add_to_node_array, + lto_streamer_cache_delete): Put nodes into heap. + * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in + heap. + +2010-05-11 Jan Hubicka + + * cgraphbuild.c (cgraph_rebuild_references): New. + * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized + out extern inlines. + * cgraph.h (cgraph_rebuild_references): Declare. + * tree-inline.c (tree_function_versioning): Use it. + * ipa-struct-reorg.c (do_reorg_for_func): Likewise. + +2010-05-11 Jan Hubicka + + * cgraph.c: Include ipa-utils.h + (cgraph_create_virtual_clone): Update references. + * Makefile.in (cgraph.o): Add dependency at ipa-utils.h + +2010-05-11 Christian Borntraeger + + * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset + prefetch_before to PREFETCH_ALL if to accesses "meet" beyond + cache size. + +2010-05-11 Christian Borntraeger + + * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches. + +2010-05-11 Jakub Jelinek + + * gcc.c (execute): For -### don't quote arguments that + contain just alphanumerics and _/-. characters. + * doc/invoke.texi: Document that change for -###. + + PR debug/44023 + * df-problems.c (struct dead_debug): Add to_rescan field. + (dead_debug_init): Clear to_rescan field. + (dead_debug_finish): Rescan all debug insns in to_rescan + bitmap and free the bitmap. + (dead_debug_insert_before): Instead of rescanning debug insns + immediately queue their rescanning until dead_debug_finish. + (df_note_bb_compute): After dead_debug_add do continue instead + of break. + +2010-05-10 Jakub Jelinek + + PR debug/44028 + * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC, + clear also INSN_REG_USE_LIST. + +2010-05-10 Rainer Orth + + * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef. + +2010-05-10 Jan Hubicka + + * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally commited change. + +2010-05-10 Jan Hubicka + + * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries): Allocate + encoders. + * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here. + * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool. + (lto_streamer_cache_create): Init alloc pool. + (lto_streamer_cache_delete): Free alloc pool. + * lto-streamer.h: Include alloc pool. + (lto_streamer_cache_d): Use alloc pool. + * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states. + +2010-05-10 Jan Hubicka + + * Makefile.in (cgraphbuild.o): Add dependency on except.h. + * cgraphbuild.c: Include except.h + (record_type_list, record_eh_tables): New function. + (build_cgraph_edges, rebuild_cgraph_edges): Use it. + +2010-05-10 Jan Hubicka + + * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry, + __frame_dummy_init_array_entry, force_to_data): Attribute as used + rather than unused. + +2010-05-10 Michael Matz + + * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg. + (can_reassociate_p): Use FLOAT_TYPE_P. + * tree-vectorizer.h (vect_is_simple_reduction): Rename to ... + (vect_force_simple_reduction): ... this. + * tree-parloops.c (gather_scalar_reductions): Use + vect_force_simple_reduction. + * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from + vect_is_simple_reduction, add modify argument, if true rewrite + "a-b" into "a+(-b)". + (vect_is_simple_reduction, vect_force_simple_reduction): New + functions. + (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction. + +2010-05-10 H.J. Lu + Vladimir Makarov + + PR rtl-optimization/44012 + * ira-build.c (remove_unnecessary_allocnos): Nullify + regno_allocno_map of the removed allocno. + +2010-05-10 Rainer Orth + + * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors + to /dev/null. + * configure: Regenerate. + +2010-05-10 Rainer Orth + + * config/sol2.c (solaris_assemble_visibility): Declare decl, vis + unused. + Define visibility_types, name, type inside HAVE_GAS_HIDDEN. + * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility + support in Sun ld. + * configure: Regenerate. + +2010-05-10 Richard Guenther + + * lto-symtab.c (lto_symtab_entry_marked_p): Make entry + marked if the entry identifier is marked. + +2010-05-10 Richard Guenther + + * c-common.c (struct c_common_attributes): Add fnspec attribute. + (handle_fnspec_attribute): New function. + * gimple.h (gimple_call_return_flags): Declare. + (gimple_call_arg_flags): Likewise. + * gimple.c (gimple_call_arg_flags): New function. + (gimple_call_return_flags): Likewise. + * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED): + New argument flags. + (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function + return value flags. + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args. + * tree-ssa-structalias.c (make_constraint_from_heapvar): Split + main work to ... + (make_heapvar_for): ... this new function. + (handle_rhs_call): Handle fnspec attribute argument specifiers. + (handle_lhs_call): Likewise. + (find_func_aliases): Adjust. + +2010-05-10 Richard Guenther + + PR tree-optimization/44050 + * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag. + +2010-05-10 Wei Guozhi + + PR target/42879 + * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern. + +2010-05-09 Joseph Myers + + PR c/10676 + * c-typeck.c (lookup_field): Take a type directly. Update + recursive calls. + (build_component_ref): Update call to lookup_field. + (set_init_label): Use lookup_field to find initialized field. + Handle returned list of fields like a sequence of designators. + +2010-05-09 Richard Guenther + + PR middle-end/44024 + * fold-const.c (tree_single_nonzero_warnv_p): Properly + handle &FUNCTION_DECL. + +2010-05-09 Joseph Myers + + PR c/4784 + * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous + structures and unions recursively. + (detect_field_duplicates): Move duplicate detection with a hash to + detect_field_duplicates_hash. Always use a hash if anonymous + structures or unions are present. + * doc/extend.texi (Unnamed Fields): Document that duplicate fields + give errors. + +2010-05-09 H.J. Lu + + PR target/44046 + * config/i386/driver-i386.c (host_detect_local_cpu): Properly + detect Atom, Core 2 and Core i7. + +2010-05-09 Richard Guenther + + * gcc.c (store_arg): Handle temporary file deletion for + joined arguments. + +2010-05-09 Richard Guenther + + PR middle-end/44043 + * ipa-inline.c (estimate_function_body_sizes): Return after + disregarding inline limits. + +2010-05-09 Richard Guenther + + * gcc.c (store_arg): Revert last change. + +2010-05-08 Sandra Loosemore + + PR middle-end/28685 + * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function. + (optimize_ops_list): Call it. + +2010-05-08 Richard Guenther + + PR tree-optimization/44030 + * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set + NECESSARY flag if we propagate from a inserted expression. + +2010-05-08 Eric Botcazou + + * gimple.c (gimple_types_compatible_p) : Treat bounds of + domain types as equal if they are both PLACEHOLDER_EXPRs. + +2010-05-08 Richard Guenther + + * lto-wrapper.c (run_gcc): Remove linker output from + command line for LTRANS invocation. + +2010-05-07 Steven Bosscher + + * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add + lto-macho as lto_binary_reader. + * target.h (struct gcc_target): New hooks lto_start and lto_end. + * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define. + * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation + in lto_start and lto_end calls. + (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O + magic numbers. + (scan_prog_file): Update is_elf_or_coff call. + * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document. + + * collect2.c (main): Fix enum comparison. + + * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end): + Add prototypes. + * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker. + * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START + and TARGET_ASM_LTO_END. + * darwin.c: Include obstack.h and lto-streamer.h. + (lto_section_names_offset, lto_section_names_obstack, + lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static + global variables. + (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines. + (darwin_asm_lto_start): New function. Redirect output to asm_out_file + to a temporary file. + (darwin_asm_lto_end): New function. Restore asm_out_file. + (darwin_asm_named_section): For LTO sections, replace the name with + the offset of the section name in a string table, and build this + table. + (darwin_file_start): Initialize global vars for LTO support. + (darwin_file_end): If output to asm_out_file was redirected, append it + to the proper asm_out_file here. Add the section names section. + +2010-05-07 Steven Bosscher + + * c-pragma.c (pending_weak_d, pending_weak): New. + (pending_weaks): Change the type to VEC((pending_weak,gc) *. + (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks, + handle_pragma_weak): Update the uses of pending_weaks. + +2010-05-07 Ralf Wildenhues + + PR documentation/44016 + * doc/standards.texi (Standards): Link to unversioned + cxx0x_status.html page. + +2010-05-07 Iain Sandoe + + PR target/43708 + * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P + in addition to TREE_USED, to avoid "set but unused" warnings. + 2010-05-07 Changpeng Fang * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New. @@ -28,8 +464,7 @@ * lto-wrapper.c (DUMPBASE_SUFFIX): Define. (run_gcc): Handle LTRANS phase invocation. - * collect2.c (maybe_run_lto_and_relink): Do not set - WPA_SAVE_LTRANS. + * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS. 2010-05-07 Jakub Jelinek @@ -201,18 +636,13 @@ * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32. (MULTILIB_DIRNAMES): Removed 32. (MULTILIB_OSDIRNAMES): Removed ../lib. - * doc/install.texi (Prerequisites): Don't reference IRIX before - 6.5. + * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5. (Specific, mips-sgi-irix5): Document removal. - (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI - removal. + (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal. Remove references to older IRIX 6 releases and the O32 ABI. 2010-05-06 Jakub Jelinek - * gcc.dg/Wunused-var-8.c: Move to... - * c-c++-common/Wunused-var-6.c: ... here. New test. - PR bootstrap/43994 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC instead of DF_REF_REAL_REG. @@ -242,8 +672,7 @@ (insert_into_preds_of_block): Don't handle inserted_phi_names. (eliminate): Don't look at inserted_phi_names, remove deleted insns from inserted_exprs. - (remove_dead_inserted_code): Adjust to use bitmaps instead of - vectors. + (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors. (init_pre, fini_pre): Allocate and free bitmaps. (execute_pre): Insert insns on edges before elimination. @@ -265,8 +694,7 @@ (enable_warning_as_error): Call handle_option. * opts.h (set_option): Update declaration. (handle_option): Declare. - * langhooks.h (struct lang_hooks): Add argument kind to - handle_option. + * langhooks.h (struct lang_hooks): Add argument kind to handle_option. * c.opt (Wimplicit,Wimplicit-int): Initialize to -1. * c-opts.c (set_Wimplicit): Delete. (c_family_lang_mask): New static constant. @@ -296,8 +724,7 @@ (determine_invariantness_stmt): Handle PHI nodes. (move_computations_stmt): Likewise. Hoist PHI nodes in if-converted form using COND_EXPRs. - (move_computations): Return TODO_cleanup_cfg if we hoisted PHI - nodes. + (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes. (tree_ssa_lim): Likewise. * tree-flow.h (tree_ssa_lim): Adjust prototype. * tree-ssa-loop.c (tree_ssa_loop_im): Return todo. @@ -336,8 +763,7 @@ (lto_output_ref): New. (add_references): New. (output_refs): New. - (output_cgraph): Compute boundary based on references; - output refs. + (output_cgraph): Compute boundary based on references; output refs. (output_varpool): Accept cgraph_node_set argument. (input_ref): New. (input_refs): New. @@ -360,9 +786,8 @@ * tree-vect-stmts.c (vectorizable_call): Assert that vector type is not NULL if it's transformation phase, and return FALSE if it's analysis. - (vectorizable_conversion, vectorizable_operation, - vectorizable_type_demotion, vectorizable_type_promotion): - Likewise. + (vectorizable_conversion, vectorizable_operation, + vectorizable_type_demotion, vectorizable_type_promotion): Likewise. 2010-05-05 Andrew Pinski @@ -385,8 +810,7 @@ 2010-05-05 Steven Bosscher - * stor-layout.c (pending_sizes): Change the type to - VEC(tree,gc) *. + * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *. (get_pending_sizes, put_pending_size, put_pending_sizes): Update the uses of pending_sizes. * c-decl.c (store_parm_decls): Likewise. @@ -452,8 +876,9 @@ 2010-05-05 Jan Hubicka * lto-cgraph.c (output_varpool): Forward declare; work on encoder. - (lto_varpool_encoder_new, lto_varpool_encoder_delete, lto_varpool_encoder_encode - lto_varpool_encoder_lookup, lto_varpool_encoder_deref, lto_varpool_encoder_size, + (lto_varpool_encoder_new, lto_varpool_encoder_delete, + lto_varpool_encoder_encode, lto_varpool_encoder_lookup, + lto_varpool_encoder_deref, lto_varpool_encoder_size, lto_varpool_encoder_encode_initializer_p, lto_set_varpool_encoder_encode_initializer): New functions. (lto_output_cgraph): Take vset parameter too; compute varpool encoder; @@ -469,7 +894,7 @@ * lto-section-out.c (lto_new_out_decl_state): Initialize state->varpool_node_encoder. * lto-streamer.h (lto_varpool_encoder_d): New. - (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder. + (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder. (lto_cgraph_encoder_delete, output_cgraph): Update prototype. (lto_varpool_encoder_deref, lto_varpool_encoder_lookup, lto_varpool_encoder_encode, lto_varpool_encoder_delete, @@ -489,8 +914,7 @@ 2010-05-05 Laurynas Biveinis - * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to - dependencies. + * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies. * gengtype.h (erro_at_line): Constify pos argument. @@ -539,8 +963,7 @@ 2010-05-04 H.J. Lu PR target/43799 - * config/i386/i386.md (sse_prologue_save): Add clobber CC - register. + * config/i386/i386.md (sse_prologue_save): Clobber CC register. (*sse_prologue_save_insn1): Likewise. (SSE prologue save splitter): Likewise. @@ -623,8 +1046,7 @@ 2010-05-04 Kaz Kojima - * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove - static. + * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static. 2010-05-04 Mikael Pettersson @@ -1258,7 +1680,7 @@ (free_all_ipa_structures_after_ipa_cp): Renamed to ipa_free_all_structures_after_ipa_cp. (free_all_ipa_structures_after_iinln): Renamed to - ipa_free_all_structures_after_iinln.g + ipa_free_all_structures_after_iinln. (ipa_write_param_call_note): Removed. (ipa_read_param_call_note): Removed. (ipa_write_indirect_edge_info): New function. @@ -1290,8 +1712,7 @@ * tree-ssa-structalias.c (struct variable_info): Add only_restrict_pointers flag. (new_var_info): Initialize it. Increment stats.total_vars here. - (create_function_info_for): Do not increment stats.total_vars - here. + (create_function_info_for): Do not increment stats.total_vars here. (get_function_part_constraint): Fix build with C++. (insert_into_field_list): Remove. (push_fields_onto_fieldstack): Properly merge fields.