summaryrefslogtreecommitdiffstats
path: root/gcc/expr.c
Commit message (Collapse)AuthorAgeFilesLines
...
* * alias.c (alias_sets_conflict_p): New function.kenner2000-12-301-137/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (mems_in_disjoint_alias_sets_p): Use it. (readonly_fields_p): Moved from expr.c; check for record type. (objects_must_conflict_p): New function. * calls.c (expand_call): Use assign_temp as much as possible, use readonly variant if assigned once, and don't set memory attributes. (emit_library_call_value_1, store_one_arg): Likewise. * integrate.c (expand_inline_function): Likewise. * stmt.c (expand_asm_operands, expand_return): Likewise. * expr.c (copy_blkmode_from_reg, store_constructor): Likewise. (store_field, save_noncopied_parts, expand_expr): Likewise. (expand_expr_unaligned): Likewise. (readonly_fields_p): Moved to alias.c. (safe_from_p): Rework handling of SAVE_EXPR. MEMs ony conflict if alias sets conflict; likewise for INDIRECT_REF. * function.c (struct temp_slot): Delete field ALIAS_SET; add TYPE. (assign_stack_for_temp): Use objects_must_confict_p. Set all memory attributes from type, if specified. (mark_temp_slot): Mark TYPE field. * tree.h (alias_sets_conflict_p, readonly_fields_p): New decls. (objects_must_conflict_p): Likewise. * stmt.c (expand_decl): Don't use assign_stack_temp in error case. (add_case_node): No need to copy nodes anymore. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38559 138bc75d-0d04-0410-961f-82ee72b054a4
* Indentation fixaoliva2000-12-091-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38146 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement.law2000-11-301-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37862 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (can_store_by_pieces): Reinitialize max_size for reversejakub2000-11-291-1/+2
| | | | | | | tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37857 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.h (store_by_pieces): Add prototype.jakub2000-11-291-38/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (can_store_by_pieces): Likewise. * expr.c (struct store_by_pieces): Renamed from clear_by_pieces. (can_store_by_pieces): New. (store_by_pieces): New. (clear_by_pieces): New. (clear_by_pieces_1): New. (store_by_pieces_1): Renamed from clear_by_pieces, handle storing arbitrary compiler generated constants into memory block. (store_by_pieces_2): Renamed from clear_by_pieces_1, likewise. * builtins.c (c_readstr): New. (builtin_memcpy_read_str): New. (expand_builtin_memcpy): If src is string constant and emit_block_move would move it by pieces, compute integer constants from the string and store it into memory block instead. (builtin_strncpy_read_str): New. (expand_builtin_strncpy): If N is not constant zero and c_strlen does not return INTEGER_CST, don't optimize. If N is larger than strlen(src) + 1, try to copy the string including padding with store_by_pieces. (expand_builtin_strcmp): If both arguments have side effects, don't optimize. (expand_builtin_fputs): If STR has side effects, don't optimize. * gcc.c-torture/execute/string-opt-5.c: Add some strcmp and strncpy tests. * gcc.c-torture/execute/string-opt-6.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37851 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (store_constructor): If a field is non addressable andgrahams2000-11-231-1/+2
| | | | | | | the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37700 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (do_compare_and_jump): If op0 was replaced by promotedjakub2000-11-211-0/+13
| | | | | | | | | integer constant, use type of op1 for comparison. * g++.old-deja/g++.other/inline17.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37605 138bc75d-0d04-0410-961f-82ee72b054a4
* * varasm.c (struct deferred_string): New structure.jakub2000-11-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | (const_str_htab): New variable. (STRHASH): New macro. (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash, constr_str_htab_eq, const_str_htab_del): New functions. (output_constant_def): Add DEFER argument, defer string constants until mark_constant_pool time if requested. (mark_constant_pool): Walk the insn chain even if const_str_htab is not empty. (mark_constants): If a SYMBOL_REF for deferred string is found, output it and remove from hash table. (output_addressed_constants): Set DEFER to 0 in call to output_constant_def. * rtl.h (STRING_POOL_ADDRESS_P): Define. (output_constant_def): Adjust prototype. * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def. * gcc.c-torture/execute/20000801-4.c: Make sure the second string is output. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37459 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECLjakub2000-11-081-2/+10
| | | | | | | passed in multiple non-contiguous locations. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37316 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0)jakub2000-10-311-1/+1
| | | | | | | | | to expand_shift. * g++.old-deja/g++.other/inline16.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37160 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.c (make_node, case 't'): Set alignment to that ofnathan2000-10-261-0/+2
| | | | | | | | char_type_node. * expr.c (move_by_pieces_ninsns): Abort if some length remains. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37071 138bc75d-0d04-0410-961f-82ee72b054a4
* 2000-10-24 Andrew Haley <aph@cygnus.co.uk>aph2000-10-241-0/+5
| | | | | | | | * expr.c (do_store_flag): Don't crash if either side of a comparison is error_mark_node. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37036 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (do_preexpand_calls): Remove.mmitchel2000-10-231-114/+5
| | | | | | | | | | | | | | | (same_from_p): Don't use CALL_EXPR_RTL. (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL. (preexpand_calls): Remove. * tree.c (first_rtl_op): Remove CALL_EXPR case. (unsave_expr_1): Likewise. * tree.def (CALL_EXPR): Give it only two slots. * tree.h (CALL_EXPR_RTL): Remove. * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37012 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P onkenner2000-10-201-2/+7
| | | | | | | | | | | | | | | returned MEM. (expand_expr_unaligned, case ARRAY_REF): Check that index is a constant before comparing it; use tree_low_cst. * tree.c (save_expr): Set TREE_READONLY. (substitute_expr): Return inside of NON_LVALUE_EXPR. (build, build1): Set TREE_READONLY if all operands are. (build_index_type): If upper bound is a negative number, lower bound is zero and sizetype is unsigned, use upper bound of one and lower of zero. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36979 138bc75d-0d04-0410-961f-82ee72b054a4
* Adding new option -ftrapv.cchavva2000-10-181-11/+28
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36942 138bc75d-0d04-0410-961f-82ee72b054a4
* 2000-10-17 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>sirl2000-10-171-1/+2
| | | | | | | | | | | | | | | | * function.c (locate_and_pad_parm): Don't align stack unconditionally. Fixes execute/20001017-1.c on pwerpc-linux-gnu. * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only. * rs6000/rs6000.c (rs6000_hash_constant): use X0INT to access a LABEL_REF. * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS, ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from here... * rs6000/aix.h: ...to here. * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36914 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove obstacks.mmitchel2000-10-131-22/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (ggc-callbacks.o): Remove target. (flow.o): Depend on GGC_H. * alias.c (init_alias_analysis): Remove ggc_p conditionals. (end_alias_analysis): Likewise. * basic-block.h (init_flow): New function. (allocate_reg_life_data): Declare. * bb-reorder.c (function_obstack): Replace with ... (flow_obstack): ... new variable. (fixup_reorder_chain): Use it. * c-decl.c (ggc_p): Remove. (caller-save.c): Don't call oballoc/obfree. * combine.c (struct undobuf): Remove storage. (try_combine): Don't call oballoc. (undo_all): Don't call obfree. * cse.c (insert): Use xmalloc, not oballoc. (cse_main): Adjust accordingly. * dwarf2out.c (save_rtx): Remove obstack code. (dwarf2out_init): Remove ggc_p conditionals. * emit-rtl.c (rtl_obstack): Remove. (gen_rtx_CONST_INT): Remove ggc_p conditionals. (make_insn_raw): Likewise. (emit_insn_before): Likewise. (emit_insn_after): Likewise. (emit_insn): Likewise. (gen_sequence): Likewise. (copy_insn_1): Remove handling of `b' RTL components. (init_emit_once): Remove ggc_p conditionals. * except.c (create_rethrow_ref): Don't fool with obstacks. (add_partial_entry): Likewise. (call_get_eh_context): Likewise. (begin_protect_partials): Likewise. (protect_with_terminate): Likewise. * explow.c (plus_constant_wide): Likewise. * expr.c (init_expr_once): Likewise. (emit_block_move): Likewise. (clear_storage): Likewise. (expand_expr): Likewise. * flow.c (function_obstack): Remove. (flow_obstack): New variable. (flow_firstobj): Likewise. (create_base_block): Use the flow_obstack. (split_block): Likewise. (split_edge): Likewise. (calculate_global_regs_live): Likewise. (allocate_bb_life_data): Make it static. Likewiwse. (init_flow): New function. (size_int_type_wide): Remove ggc_p conditionals. * function.c (push_function_context_to): Don't call save_tree_status. (pop_function_context_from): Or restore_tree_status. (assign_stack_local_1): Don't call push_obstacks. (find_fixup_replacement): Use xmalloc. (fixup_var_refs_insns): Free the storage. (insns_for_mem_walk): Don't mess with obstacks. (instantiate_decls): Likewise. (trampoline_address): Likewise. (expand_function_end): Likewise. * function.h (sturct function): Remove obstack-related variables. (save_tree_status): Don't declare. (restore_tree_status): Likewise. * gcse.c (compute_can_copy): Don't call oballoc/obfree. * genattrtab.c (operate_exp): Remove ggc_p conditionals. (simplify_cond): Likewise. (simplify_test_exp): Don't mess with obstacks. (optimize_attrs): Likewise. * gengenrtl.c (gendef): Don't include ggc_p conditionals. * ggc-callbacks.c (ggc_p): Remove. * ggc-none.c (ggc_p): Remove. * ggc.h (ggc_p): Don't declare. * integrate.c (save_for_inline): Don't mess with obstacks. (integrate_decl_tree): Likewise. (output_inline_function): Likewise. * lists.c (init_EXPR_INSN_LIST_cache): Likewise. * loop.c (temp_obstack): Remove. (rtl_obstack): Likewise. (init_loop): Don't mess with obstacks. (reg_address_cost): Free BIVs and GIVs. (check_insns_for_bivs): Use xmalloc, not oballoc. (find_mem_givs): Likewise. (record_biv): Likewise. (general_induction_var): Likewise. (product_cheap_p): Likewse. * optabs.c (init_one_libfunc): Remove ggc_p conditional. * print-tree.c (debug_tree): Don't use oballoc/obfree. (print_node): Likewise. * profile.c (output_func_start_profiler): Remove call to temporary_allocation. * reload1.c (eliminate_regs_in_insn): Don't mess with obstacks. * resource.c (mark_target_live_regs): Use xmalloc. (free_resource_info): Free the memory. * rtl.c (rtl_obstack): Remove. (rtvec_alloc): Don't mess with obstacks. (rtx_alloc): Likewise. (rtx_free): Remove. (copy_rtx): Don't handle `b' cases. (read_rtx): Use a local rtl_obstack. * rtl.h (oballoc): Remove. (obfree): Likewise. (pop_obstacks): Likewise. (push_obstacks): Likewise. (allocate_bb_life_data): Likewise. (allocate_reg_life_data): Likewise. (rtx_free): Likewise. * sdbout.c (sdbout_queue_anonymous_type): Use tree_cons, not saveable_tree_cons. * simplify-rtx.c (cselib_init): Don't mess with obstacks. * stmt.c (mark_block_nesting): Mark the label_chain. (epxand_label): Use ggc_alloc, not oballoc. (clear_last_expr): Don't mess with obstacks. (expand_decl_cleanup): Likewise. (expand_dcc_cleanup): Likewise. (expand_dhc_cleanup): Likewise. (expand_anon_union_decl): Likewise. (add_case_node): Use xmalloc, not oballoc. (free_case_nodes): New function. (expand_end_case): Call it. * stor-layout.c (layout_type): Don't mess with obstacks. (layout_type): Likewise. * toplev.c (wrapup_global_declarations): Likewise. (compile_file): Remove ggc_p conditionals. (rest_of_compilation): Call init_flow. Remove ggc_p conditionals. (decode_f_option): Remove ggc_p conditionals. * tree.c (function_maybepermanent_obstack): Remove. (maybepermanent_obstack): Likewise. (function_obstack): Likewise. (tmeporary_obstack): Likewise. (momentary_obstack): Likewise. (temp_decl_obstack): Likewise. (saveable_obstack): Likewise. (rtl_obstack): Likewise. (current_obstack): Likewise. (expression_obstack): Likewise. (struct obstack_stack): Likewise. (obstack_stack): Likewise. (obstack_stack_obstack): Likewise. (maybepermanent_firstobj): Likewise. (temporary_firstobj): Likewise. (momentary_firstobj): Likewise. (temp_decl_firstobj): Likewise. (momentary_function_firstobj): Likewise. (all_types_permanent): Likewise. (struct momentary_level): Likewise. (momentary_stack): Likewise. (init_obstacks): Remove initialization of removed obstacks. (save_tree_status): Remove. (restore_tree_status): Likewise. (temporary_allocation): Liekwise. (end_temporary_allocation): Liekwise. (resume_temporary_allocation): Likewise. (saveable_allocation): Likewise. (push_obstacks): Likewise. (push_obstacks_nochange): Likewise. (pop_obstacks): Likewise. (allocation_temporary_p): Likewise. (permanent_allocation): Likewise. (preserve_data): Likewise. (preserve_initializer): Likewise. (rtl_in_current_obstack): Likewise. (rtl_in_saveable_obstack): Likewise. (oballoc): Likewise. (obfree): Likewise. (savealloc): Likewise. (expralloc): Likewise. (print_obstack_name): Likewise. (debug_obstack): Likewise. (object_permanent_p): Likewise. (push_momentary): Likewise. (perserve_momentary): Likewise. (clear_momentary): Likewise. (pop_momentary): Likewise. (pop_momentary_nofree): Likewise. (suspend_momentary): Likewise. (resume_momentary): Likewise. (make_node): Don't set TREE_PERMANENT. (copy_node): Remove ggc_p conditionals. Don't set TYPE_OBSTACK. Don't set TREE_PERMANENT. (get_identifier): Remove ggc_p conditionals. (build_string): Likewise. (make_tree_vec): Likewise. (build_decl_list): Remove. (build_expr_list): Likewise. (tree_cons): Remove ggc_p conditionals. (decl_tree_cons): Remove. (expr_tree_cons): Likewise. (perm_tree_cons): Likewise. (temp_tree_cons): Likewise. (saveable_tree_cons): Likewise. (build1): Remove ggc_p conditionals. (build_parse_node): Likewise. (build_type_attribute_variant): Don't mess with obstacks. (build_type_copy): Likewise. (type_hash_canon): Likewise. (build_pointer_type): Likewise. (build_reference_type): Likewise. (build_index_type): Likewise. (build_range_type): Likewise. (dump_tree_statistics): Don't print obstack information. * tree.h (struct tree_common): Remove permanent_flag. (TREE_PERMANENT): Remove. (TREE_SET_PERMANENT): Likewise. (TYPE_OBSTACK): Likewise. (struct tree_type): Remove obstack. (oballoc): Remove. (savealloc): Likewise. (build_decl_list): Likewise. (build_expr_list): Likewise. (perm_tree_cons): Likewise. (temp_tree_cons): Likewise. (saveable_tree_cons): Likewise. (decl_tree_cons): Likewise. (expr_tree_cons): Likewise. (suspend_momentary): Likewise. (allocation_temporary_p): Likewise. (resume_momentary): Likewise. (push_obstacks_nochange): Likewise. (permanent_allocation): Likewise. (push_momentary): Likewise. (clear_momentary): Likewise. (pop_momentary): Likewise. (end_temporary_allocation): Likewise. (pop_obstacks): Likewise. (push_obstacks): Likewise. (pop_momentary_nofree): LIkewise. (preserve_momentary): Likewise. (saveable_allocation): Likewise. (temporary_allocation): Likewise. (resume_temporary_allocation): Likewise. (perserve_initializer): Likewise. (debug_obstack): Likewise. (rtl_in_current_obstack): Likewise. (rtl_in_saveable_obstack): Likewise. (obfree): Likewise. * varasm.c (current_obstack): Remove. (saveable_obstack): Remove. (rtl_obstack): Remove. (immed_double_const): Don't mess with obstacks. (immed_real_cons): Likewise. (output_constant_def): Likewise. (init_varasm_status): Use xcalloc. (mark_pool_constant): Mark the pool constant itself. (free_varasm_status): Free memory. (decode_rtx_const): Call bzero directly, rather than expanding it inline. (record_rtx_const): Don't mess with obstacks. (force_const_mem): Likewise. * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p conditionals. (aof_pic_entry): Likewise. * config/ia64/ia64.c (ia64_encode_section_info): Likewise. * config/m32r/m32r.c (m32r_encode_section_info): Likewise. * config/pa/pa.c (saveable_obstack): Remove. (rtl_obstack): Likewise. (current_obstack): Likewise. (output_call): Don't mess with obstacks. (hppa_encode_label): Remove ggc_p conditionals. * config/romp/romp.c (get_symref): Don't mess with obstacks. * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional. (rs6000_encode_section_info): Likewise. * config/sh/sh.c (get_fpscr_rtx): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36856 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (is_valid_printf_arglist, expand_builtin_printf):ghazi2000-10-061-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | Move functions from here ... * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf): ... to here. (c_expand_builtin): New function. (init_function_format_info): Don't set `check_function_format_ptr'. (c_common_nodes_and_builtins): Set built_in_class type for printf/__builtin_printf to BUILT_IN_FRONTEND. (c_expand_expr): Handle CALL_EXPRs that are front-end builtins. * c-common.h (build_function_call): Declare. * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND to `lang_expand_expr' rather than `expand_builtin'. * tree.c (check_function_format_ptr): Delete. * tree.h (check_function_format_ptr): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36758 138bc75d-0d04-0410-961f-82ee72b054a4
* * (convert_move): Use zero_extendpsisi2 to do an unsigned extensionamylaar2000-10-051-1/+8
| | | | | | | from PSImode to SImode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36729 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (store_field): If BITSIZE is negative, use size of type.kenner2000-09-241-4/+6
| | | | | | | (expand_expr, case COMPONENT_EXPR): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36588 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (store_constructor_field): Accept ALIAS_SET arg.kenner2000-09-171-7/+22
| | | | | | | (store_constructor): Pass alias_set to it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36475 138bc75d-0d04-0410-961f-82ee72b054a4
* Bring back equal forms for libcallscrux2000-09-171-41/+46
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36469 138bc75d-0d04-0410-961f-82ee72b054a4
* * splay-tree.c (splay_tree_predecessor): Fix typo in comment.mmitchel2000-09-171-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert the C front-end to use function-at-a-time mode. * c-common.h: Include splay-tree.h. (C_DECLARED_LABEL_FLAG): New macro. (struct language_function): Add x_scope_stmt_stack and x_function_name_declared_p. (RECHAIN_STMTS): Move definition. (lang_statment_code_p): Likewise. (lang_expand_stmt): Likewise. (lang_expand_decl_stmt): New variable. (lang_expand_function_end): Likewise. (current_scope_stmt_stack): New function. (add_decl_stmt): Likewise. (add_scope_stmt): Likewise. (mark_stmt_tree): Likewise. (struct c_lang_decl): New structure. (DECL_SAVED_TREE): Define. (c_mark_lang_decl): New function. (c_expand_start_cond): Change prototype. (c_finish_then): New function. (c_finish_else): Likewise. (current_function_name_declared): Remove. (set_current_function_name_declared): Likewise. (mark_c_language_function): Declare. (case_compare): Likewise. (c_add_case_label): Likewise. (c_expand_expr): Likewise. (c_safe_from_p): Likewise. * c-common.c (lang_expand_function_end): New variable. (struct if_elt): Add if_stmt. (c_expand_start_cond): Add the if-statement to the statement-tree, rather than generating RTL. (c_finish_then): New function. (c_expand_start_else): Don't generate RTL. (c_finish_else): New function. (c_expand_expr_stmt): Don't generate RTL. (statement_code_p): Add SCOPE_STMT. (case_compare): New function. (c_add_case_label): Likewise. (mark_stmt_tree): Likewise. (c_mark_lang_decl): Likewise. (mark_c_language_function): Likewise. (c_expand_expr): Likewise. (c_safe_from_p): Likewise. * c-decl.c (c_stmt_tree): New variable (c_scope_stmt_stack): Likewise. (c_function_name_declared_p): Likewise. (lang_expand_expr_stmt): Remove. (poplevel): Don't call output_inline_function for nested functions. (pushdecl): Don't set DECL_CONTEXT for a local declaration of an `extern' function. (redeclaration_error_message): Change means of computing whether or not a function is nested. (lookup_label): Don't call label_rtx. (init_decl_processing): Add more GC roots. (start_decl): Add DECL_STMTs to the statement-tree, rather than calling rest_of_decl_compilation. (finish_decl): Don't call expand_decl. (store_parm_decls): Begin the statement-tree, but don't generate RTL. (finish_function): Tie off the statement-tree. Call c_expand_body if appropriate. (c_expand_body): New function. (push_c_function_context): Save more information. (pop_c_function_contxt): Likewise. (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it. (lang_mark_tree): Mark it. (current_stmt_tree): Adjust. (current_scope_stmt_stack): New function. (do_case): Remove. (set_current_name_declared): Likewise. (c_begin_compound_stmt): Define. (c_expand_decl_stmt): Likewise. * c-lang.c: Include rtl.h and expr.h. (lang_init): Set more language-specific hooks. * c-lex.c: Include expr.h. * c-parse.in: Changes throughout to add statements to the statement-tree, rather than generating RTL after every statement. * c-semantics.c (lang_expand_decl_stmt): Define. (add_decl_stmt): New function. (add_scope_stmt): Likewise. (finish_stmt_tree): Tweak. (genrtl_expr_stmt): Likewise. (genrtl_decl_stmt): Handle local labels, and call lang_expand_decl_stmt if required. (genrtl_for_stmt): Fix line-number handling. (genrtl_case_label): Handle cleanups. (genrtl_asm_stmt): Don't call combine_strings. (genrtl_compound_stmt): Simplify. (expand_stmt): Handle SCOPE_STMTs. * c-tree.h (struct lang_decl): New structure. (C_DECLARED_LABEL_FLAG): Remove. (c_begin_compound_stmt): Declare. (c_expand_decl_stmt): Likewise. (c_expand_start_case): Rename to c_start_case. (c_finish_case): New function. * c-typeck.c (start_init): Tweak setting of constructor_incremental. (c_expand_asm_operands): Tweak error-handling. Add to the statement-tree. (c_expand_return): Add to the statement-tree. (c_expand_start_case): Rename to ... (c_start_case): ... this. (struct c_switch): New type. (switch_stack): New variable. (do_case): Simplify. (c_finish_case): New function. * dependence.c: Include expr.h. (enum dependence_type): Change spelling of enumerals. (check_node_dependence): Adjust. * expr.h (lang_safe_from_p): Declare. (safe_from_p): Likewise. * expr.c (lang_safe_from_p): New variable. (safe_from_p): Give it external linkage. Use lang_safe_from_p. * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type. * toplev.c (rest_of_decl_compilation): Robustify. * tree.c (contains_placeholder_p): Likewise. * Makefile.in: Update dependencies. * objc/objc-act.h: Adjust calculation of value for dummy_tree_code. * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h. (objc_expand_function_end): New function. (finish_method_def): Use it. (init_objc): Initialize more language-specific hooks. * objc/Make-lang.in: Update dependencies. * cp-tree.h (struct cp_language_function): Remove x_scope_stmt_stack and name_declared. (current_scope_stmt_stack): Remove. (function_name_declared_p): New macro. (struct lang_decl_flags): Use c_lang_decl as a base class. (context): Remove. (struct lang_decl): Replace saved_tree with context. (DECL_FRIEND_CONTEXT): Adjust accordingly. (SET_DECL_FRIEND_CONTEXT): Likewise. (DECL_VIRTUAL_CONTEXT): Likewise. (DECL_SAVED_TREE): Remove. (C_DECLARED_LABEL_FLAG): Likewise. (cplus_expand_expr_stmt): Don't declare. (add_decl_stmt): Likewise. (add_scope_stmt): Likewise. * decl.c (mark_stmt_tree): Remove. (case_compare): Likewise. (finish_case_label): Use c_add_case_label. (init_decl_processing): Set more language-specific hooks. (build_enumerator): Fix typo in comment. (cplus_expand_expr_stmt): Remove. (mark_lang_function): Use mark_c_language_function. (lang_mark_tree): Use c_mark_lang_decl. * decl2.c: Change order of inclusion. * except.c: Likewise. * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall back on c_expand_expr. * friend.c: Include expr.h. * init.c: Change order of inclusion. * Makefile.in: Update dependencies. * lex.h (free_lang_decl_chain): Remove. * optimize.c (maybe_clone_body): Use function_name_declared_p. * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if it doesn't exist. (instantiate_decl): Use function_name_declared_p. * semantics.c (lang_expand_expr_stmt): Remove. (set_current_function_name_declared): Likewise. (current_function_name_declared): Likewise. (begin_compound_stmt): Use function_name_declared_p. (add_decl_stmt): Remove. (setup_vtbl_ptr): Use function_name_declared_p. (add_scope_stmt): Remove. (current_scope_stmt_stack): New function. (cp_expand_stmt): Don't handle SCOPE_STMTs. (expand_body): Use function_name_declared_p. * tree.c (cp_statement_code_p): Don't include SCOPE_STMT. * typeck.c: Change order of includes. (convert_sequence): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36464 138bc75d-0d04-0410-961f-82ee72b054a4
* Make libcall blocks for truncationscrux2000-09-151-2/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36434 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributeskenner2000-09-141-2/+8
| | | | | | | when making new MEM. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36412 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-lex.c (lex_string): Use charwidth to compute bytemask.drepper2000-09-121-3/+10
| | | | | | | | * expr.c (expand_expr): Don't optimize constant array references initialized with wide string constants. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36380 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (clear_storage): Don't use emit_move_insn unlesskenner2000-09-011-5/+13
| | | | | | | | either BLKmode or proper size. (store_constructor): Don't call clear_storage if REG of wrong size. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36101 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (store_constructor): Allow variable bounds of array type.kenner2000-08-301-8/+22
| | | | | | | | | | | | (expand_expr): Don't blow up if type is ERROR_MARK. * varasm.c (output_constructor): Don't access lower bound of array type unless need it if index is supplied (so it can be a variable if no index is supplied). Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS. Other minor cleanups. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36060 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c (expand_call): Don't create a VAR_DECL just to throw itmmitchel2000-08-291-8/+2
| | | | | | | | | | | | | | away. * expr.c (expand_expr, case TARGET_EXPR): Don't call mark_addressable. * tree.h (get_file_function_name): Remove two duplicate declarations. * typeck.c (mark_addressable): Remove code that pokes around in RTL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36038 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,gkm2000-08-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and extendtab within their proper array boundaries. * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds for the entire array. * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE. * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise. * config/avr/avr.c (order_regs_for_local_alloc): Likewise. * config/fr30/fr30.c (fr30_print_operand): Likewise. * config/i386/dgux.c (output_options): Likewise. * config/i386/dgux.h (ASM_FILE_START): Likewise. * config/m88k/m88k.c (output_options): Likewise. * config/m88k/m88k.h (ASM_FILE_START): Likewise. * config/mcore/mcore.c (mcore_output_inline_const_forced, layout_mcore_frame, handle_structs_in_regs): Likewise. * config/mips/mips.c (output_block_move): Likewise. * config/rs6000/rs6000.c (rs6000_override_options, rs6000_file_start): Likewise. * config/sparc/sparc.c (sparc_add_gc_roots): Likewise. * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise. * fixinc/fixtests.c (TEST_TABLE_CT): Likewise. * builtins.c (expand_builtin_setjmp): Likewise. * expr.c (safe_from_p): Likewise. * flow.c (life_analysis): Likewise. * fold-const.c (size_int_type_wide): Likewise. * gcc.c (translate_options, init_spec, set_spec, main): Likewise. * genattrtab.c (make_length_attrs): Likewise. * genopinit.c (gen_insn): Likewise. * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise. * global.c (global_alloc): Likewise. * local-alloc.c (find_free_reg): Likewise. * mips-tdump.c (print_symbol): Likewise. * mips-tfile.c (parse_def, parse_input): Likewise. * reload1.c (NUM_ELIMINABLE_REGS): Likewise. * stmt.c (expand_nl_goto_receiver): Likewise. * stor-layout.c (set_sizetype): Likewise. * varasm.c (decode_reg_name): Likewise. * toplev.c (decode_f_option, decode_W_option, set_target_switch, print_switch_values): Likewise. (NUM_ELEM): Remove macro. (display_help, main): s/NUM_ELEM/ARRAY_SIZE/ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35949 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (emit_group_load): Don't force constants into registers.rth2000-08-141-1/+5
| | | | | | | Special case source already in the correct mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35683 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (expand_expr): Call convert_modes when turning a largegeoffk2000-08-131-2/+4
| | | | | | | multiply into a small one. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35662 138bc75d-0d04-0410-961f-82ee72b054a4
* * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.rth2000-08-071-8/+0
| | | | | | | * expr.c (emit_group_store): Don't set it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35546 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c: Fix formatting.law2000-08-061-174/+169
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35523 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (expand_expr): Return const0_rtx, not error_mark_node.ghazi2000-07-121-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34991 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (expand_expr): Bail earlier if we get an error_mark_node.jason2000-07-101-0/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34940 138bc75d-0d04-0410-961f-82ee72b054a4
* Vector conversions supportcrux2000-06-241-0/+17
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34680 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c (compute_argument_addresses): Force stack slots intojakub2000-06-231-14/+23
| | | | | | | | alias set 0. * expr.c (emit_push_insn): Force pushes into alias set 0. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34662 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (store_expr): Fix typo.jason2000-06-061-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34428 138bc75d-0d04-0410-961f-82ee72b054a4
* 2000-06-02 Andrew MacLeod <amacleod@cygnus.com>amacleod2000-06-021-1/+1
| | | | | | | * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34354 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.kenner2000-05-311-85/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT. (REG_BASE_VALUE): Remove unneeded cast to unsigned. (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT. (find_base_decl): New function, from c_find_base_decl in c-common.c. (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT. (get_alias_set): Likewise. Major rework to do more things and allow language-specific code to just handle special-cases. (record_alias_subset): Args are HOST_WIDE_INT. (record_component_alias): Local vars are HOST_WIDE_INT. Don't handle COMPLEX_EXPR. (get_varargs_alias_set): Moved from builtins.c. (get_frame_alias_set): New function. * builtins.c (expand_builtin_return_address): Use frame alias set. (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set for setjmp buffer. (get_memory_rtx): Rework to use set_mem_attributes. (get_varargs_alias_set): Deleted from here. * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT. (c_find_base_decl): Deleted from here. (c_get_alias_set): Remove many cases and rework to just handle C-specific cases. * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT. * c-decl.c (rtl.h, expr.h): Now included. (init_decl_processing): Call record_component_aliases on array types. (grokdeclarator): Likewise. Set TREE_ADDRESSABLE for all fields that are not bitfields. * c-typeck.c (common_type): Call record_component_aliases for array. * caller-save.c (setup_save_areas): Rework register loop for unsigned. Set all save areas to the frame alias set. * calls.c (initialie_argument_information): Call set_mem_attributes. (compute_argument_addresses, expand_call): Likewise. * explow.c (set_mem_attributes): New function. (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg. * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}. LEN and OFFSET now HOST_WIDE_INT. (clear_by_pieces): Similar changes. (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields. (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT. (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES. (clear_by_pieces_1): Likewise. (emit_push_insn): Call set_mem_attributes. (expand_expr, case INDIRECT_REF): Likewise. (expand_expr, case VAR_DECL): Call change_address. * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and tree_low_cst. (get_varargs_alias_set, get_frame_alias_set): New decls. (record_base_value, record_alias_subset, lang_get_alias_set): Likewise. (new_alias_set, set_mem_attributes): Likewse. * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT. (assign_stack_temp_for_type): Likewise. Can split slot even if alias set since can copy. Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P. (assign_temp): Use host_integerp and tree_low_cst. (put_var_into_stack): Properly handle SAVE_EXPR. (put_addressof_into_stack): Likewise. (assign_parms): Call set_mem_attributes. Delete #if 0 code. (fix_lexical_address): Put reference to chain into frame alias set. (expand_function_start): Call set_mem_attributes. * integrate.c (expand_inline_function): Likewise. * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES. * regmove.c (try_apply_stack_adjustment): Likewise. * reload.c (push_reload, make_memloc): Likewise. * reload1.c (alter_reg): Make alias sets for spilled pseudos. * rtl.def (MEM): Update comment. * rtl.h (MEM_ALIAS_SET): Now uses XCWINT. (move_by_pieces): Change length to HOST_WIDE_INT. (record_base_value, record_alias_subset): Delete from here. * stmt.c (expand_decl): Call set_mem_attributes. * stor-layout.c (finish_record_layout): Call record_component_aliases.i * toplev.c (compile_file): Call init_alias_once earlier. * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted from here: now in alias.c. * tree.h (struct tree_type): alias_set is HOST_WIDE_INT. (struct tree_decl): Likewise. (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here. * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes. (output_constant_def, force_const_mem): Likewise. * cp/Makefile.in (decl.o): Include ../expr.h. * cp/decl.c (expr.h): Include. (init_decl_processing): Call record_component_aliases for arrays. (grokdeclarator): Likewise. Set TREE_ADDRESSABLE for fields that aren't bitfields. * cp/tree.c (build_cplus_array_type_1): Call record_component_aliases. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34305 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.h (TREE_CODE_LENGTH): New macro.kenner2000-05-271-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c (c_find_base_decl): Use it. * expr.c (safe_from_p): Likewise. * print-tree.c (print_node): Likewise. * tree.c (make_node, copy_node, get_identifier): Likewie. (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise. (build, build_nt, build_parse_node, simple_cst_equal): Likewise. * fold-const.c (make_range): Likewise. (fold): Likewise; also use first_rtl_op. * c-iterate.c (collect_iterators): Use first_rtl_op. * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS. Use IS_EXPR_CODE_CLASS. (preexpand_calls): Likewise. * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op and TREE_CODE_LENGTH. * stmt.c (warn_if_unused_value): If no operands, no unused value. * ch/lang.c (deep_const_expr): Use first_rtl_op. * ch/satisfy.c (satisfy): Use TREE_CODE_LENGTH. * cp/method.c (mangle_expression): Use TREE_CODE_LENGTH. * cp/tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH. (built_min, cp_tree_equal): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34203 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (expand_assignment, store_expr, expand_expr,aoliva2000-05-241-0/+12
| | | | | | | | expand_expr_unaligned): Set in_check_memory_usage while emitting chkr_check_addr libcall. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34140 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (emit_push_insn): Do not adjust stack pointer whenlaw2000-05-121-1/+1
| | | | | | | preallocating. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33881 138bc75d-0d04-0410-961f-82ee72b054a4
* top level:zack2000-05-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings. (tree.o): Depend on output.h. * c-decl.c (pending_invalid_xref_file, current_function_prototype_file): Constify. (pushdecl): Constify a local char *. (define_label): Constify filename parameter. * c-lex.c (init_parse): Constify parameter and return value. * c-typeck.c (c_expand_asm_operands): Constify filename parameter. * c-tree.h: Update prototypes. * c-parse.in: Constify filename member of %union, and if_stmt_file. * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y, objc/objc-parse.c: Regenerate. * dwarfout.c (dwarfout_init): Constify main_input_filename parameter. * dwarfout.h: Update prototypes. * expr.c (expand_expr): Constify a local char *. * flags.h: Constify main_input_filename. * function.c (expand_function_end): Constify filename parameter. * genrecog.c (make_insn_sequence): Use a character array for c_test_pos. (main): Remove unused variables. * input.h: Constify input_filename, main_input_filename, and file_stack.name. Update prototypes. * output.h: Declare first_global_object_name and weak_global_object_name here, as const char *. * stmt.c (expand_asm_operands): Constify filename parameter. * toplev.c (compile_file, push_srcloc, debug_start_source_file): Constify filename parameter. (input_filename, main_input_filename): Constify. * toplev.h: Update prototypes. * tree.c: Include output.h. Don't declare first_global_object_name or weak_global_object_name. Clean up string bashing in get_file_function_name_long. * tree.h (struct tree_decl): Constify filename member. (input_filename): Constify. Update prototypes. * varasm.c (first_global_object_name, weak_global_object_name): Constify. (assemble_start_function, assemble_variable): Clean up string bashing. * gcc.c: Constify all spec-related strings initialized, transitively, from string constants. Constify all strings and string variables related to multilibs. (set_spec, read_specs): Cast argument to free to PTR. (used_arg): Do not modify multilib_matches. Use strncmp plus length comparison to compare multilib switches. * genmultilib: Constify everything declared in multilib.h. ch: * ch-tree.h: Update prototypes. Remove prototypes for functions declared elsewhere. * decl.c (define_label): Constify filename parameter. * grant.c (globalize_decl, set_default_grant_file): Constify local char * variables. Don't declare first_global_object_name or asm_out_file. * lang.c (chill_real_input_filename): Constify. * lex.c (init_parse): Constify parameter and return value. * parse.c: Don't declare input_filename. (ch_expand_asm_operands): Constify filename parameter. (parse_multi_dimension_case_action): Constify local char *. * satisfy.c (safe_satisfy_decl): Constify local char *. cp: * cp-tree.h: Constify tree_srcloc.filename, tinst_level.file, and pending_inline.filename. Update prototypes. * decl.c (define_label): Constify filename parameter. * decl2.c (warn_if_unknown_interface): Constify local char *. * input.c Constify input_source.filename. Don't declare input_filename or lineno. Constify filename parameter to feed_input. * lex.c (init_parse): Constify parameter and return value. (cp_pragma_interface, cp_pragma_implementation): Constify filename argument. (reinit_parse_for_method, reinit_parse_for_block, reinit_parse_for_expr, feed_defarg, handle_cp_pragma): Constify local char *. * pt.c: Don't declare lineno or input_filename. (print_template_context, tsubst_friend_function, tsubst_decl, tsubst, instantiate_decl): Constify local char *. * semantics.c (expand_body): Constify local char *. * tree.c (build_srcloc): Constify filename parameter. * typeck.c (c_expand_asm_operands): Constify filename parameter. f: * com.c (ffecom_subscript_check_): Constify array_name parameter. Clean up string bashing. (ffecom_arrayref_, ffecom_char_args_x_): Constify array_name parameter. (ffecom_do_entry_, ffecom_gen_sfuncdef_, ffecom_start_progunit_, ffecom_sym_transform_, ffecom_sym_transform_assign_): Constify local char *. (init_parse): Constify parameter and return value. * lex.c: Include dwarfout.h instead of prototyping dwarfout_* functions here. (ffelex_file_pop_, ffelex_file_push_): Constify filename parameter. (ffelex_hash_, ffelex_include_): Constify local char *. * std.c (ffestd_exec_end): Constify local char *. * where.c (ffewhere_file_new): Constify filename parameter. * where.h: Update prototypes. java: * check_init.c (check_init): Constify local char *. * class.c (push_class): Constify local char *. * java_tree.h: Update prototypes. * jcf-io.c (open_class): Constify filename parameter and return value. (find_class): Remove redundant string copy. Cast return from open_class. * jcf-parse.c (read_class, parse_class_file, yyparse): Constify local char *. * jcf-write.c (generate_bytecode_insns, generate_classfile): Constify local char *. * jcf.h (JCF): Constify filename and classname. (JCF_FINISH): Cast args to FREE to char * when appropriate. * lang.c (init_parse): Constify parameter and return value. * lex.c (java_get_line_col): Constify filename parameter. * parse.h: Constify parser_ctxt.filename. Update prototypes. * parse.y (java_parser_context_suspend, issue_warning_error_from_context, safe_layout_class): Constify local char *. * parse.c: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33804 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix error in previous changekenner2000-05-061-0/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33725 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (get_subtarget): New function.kenner2000-05-061-16/+26
| | | | | | | | | (force_operand, expand_expr, do_store_flag): Use it. * toplev.c (compile_file): Don't take strlen of NAME if null. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33722 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.jason2000-05-041-1/+1
| | | | | | | | | | | | | | | | | | | | | * stor-layout.c (place_field): Likewise. * integrate.h (struct inline_remap): Make regno_pointer_align unsigned. * expr.c (store_expr): Make align unsigned. * explow.c (plus_constant_wide): Make low words unsigned. * expmed.c (choose_multiplier): Likewise. * fold-const.c (fold): Likewise. * tree.h (build_int_2): Likewise. * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise. * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*. (init_emit): Change cast to unsigned char*. * varasm.c (compare_constant_1): Add cast to char*. * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*. * reload1.c (reload): Likewise. * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33684 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P andkenner2000-05-041-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MEM_ALIAS_SET. * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET when calling MEM_COPY_ATTRIBUTES. * emit-rtl.c (operand_subword, change_address): Likewise. * explow.c (stabilize): Likewise. * expr.c (protect_from_queue, emit_move_insn_1): Likewise. * integrate.c (copy_rtx_and_substitute): Likewise. * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P when calling MEM_COPY_ATTRIBUTES. (make_extraction, simplify_shift_const, gen_lowpart_for_combine): Likewise. * cse.c (gen_lowpart_if_possible): Likewise. * function.c (fixup_var_refs_1, purge_addressof_1): Likewise. * optabs.c (gen_move_insn): Likewise. * recog.c (validate_replace_rtx_1): Likewise. * simplify-rtx.c (add_mem_for_addr): Likewise. * stmt.c (expand_anon_union_decl): Likewise. * config/arm/arm.md: Likewise. * config/h8300/h7300.c (fix_bit_operand): Likewise. * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise. (block_move_no_loop, block_move_sequence): Likewise. * config/rs6000/rs6000.c (expand_block_move_mem): Likewise. * config/alpha/alpha.c (get_aligned_mem): Likewise. Clear MEM_ALIAS_SET. * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling MEM_COPY_ATTRIBUTES. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33665 138bc75d-0d04-0410-961f-82ee72b054a4
* * expr.c (expand_expr, case COMPONENT_REF): Don't check for checkingkenner2000-05-031-1/+2
| | | | | | | | | memory usage if not in a function. * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only return address if static. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33629 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud