Commit Graph

693 Commits

Author SHA1 Message Date
Eric Botcazou
6e3077c608 re PR middle-end/11151 (__builtin_return(__builtin_apply(...)) gives wrong result)
PR middle-end/11151
	* function.h (struct function): New field 'x_naked_return_label'.
	* function.c (free_after_compilation): Set it to NULL.
	(expand_function_end): Emit 'naked_return_label' if it exists.
	* rtl.h (expand_naked_return): Declare.
	* stmt.c (expand_naked_return): New function to generate a
	jump to 'naked_return_label'.
	* builtins.c (expand_builtin_return): Call expand_naked_return
	instead of expand_null_return.
	* config/sparc/sparc.md (untyped_return): Likewise.

From-SVN: r74312
2003-12-05 06:46:35 +00:00
David Edelsohn
a0506b54dd function.c (assign_parms): Make sure parm PARALLEL combined in reg is composed of more than one object and...
* function.c (assign_parms): Make sure parm PARALLEL combined
        in reg is composed of more than one object and the mode really
        produces a reg.

From-SVN: r74214
2003-12-02 23:48:26 -05:00
Steven Bosscher
80fcc7bcae function.c (update_epilogue_consts): Don't use PARAMS.
* function.c (update_epilogue_consts): Don't use PARAMS.
	* rtl.h (web_main): Ditto.
	* target.h (is_costly_dependence): Ditto

From-SVN: r74099
2003-12-01 13:07:14 +00:00
Waldek Hebisch
1be4cd1f28 function.c: Make outer_function-chain external.
2003-11-23  Waldek Hebisch <hebisch@math.uni.wroc.pl>

	* function.c: Make outer_function-chain external.
	* function.h: Likewise.

From-SVN: r73894
2003-11-24 22:19:33 +01:00
Fariborz Jahanian
531547e90e calls.c (expand_call): Allocate new temp in pass1.
2003-11-20  Fariborz Jahanian  <fjahanian@apple.com>
            David Edelsohn  <edelsohn@gnu.org>

        * calls.c (expand_call): Allocate new temp in pass1.
        (store_one_arg): If PARALLEL, calculate excess using mode size of
        rtvec elt.
        * expr.c (emit_push_insn): If PARALLEL, calculate offset using
        mode size of rtvec elt.
        * function.c (assign_parms): Use parm in register, if available.

Co-Authored-By: David Edelsohn <edelsohn@gnu.org>

From-SVN: r73775
2003-11-20 17:42:01 -05:00
Jason Merrill
7f3a6a92f5 function.c (assign_parms): Use TREE_TYPE to determine the real type of the argument object.
* function.c (assign_parms): Use TREE_TYPE to determine the real
        type of the argument object.

From-SVN: r73623
2003-11-14 17:48:18 -05:00
Richard Kenner
f285d67bfe function.c (struct epi_info): New field const_equiv.
PR/6552
	* function.c (struct epi_info): New field const_equiv.
	(update_epilogue_consts): New function.
	(keep_stack_depressed): Clear new field and verify scratch register
	doesn't have it set.
	Call new function via note_stores.
	(handle_epilogue_set): Allow setting SP equiv reg in different mode.
	Allow PLUS where second operand is register known set to constant.
	(emit_equiv_load): Write load using proper mode if source different.
	* config/mips/mips.md (return_internal): Put (return) first.

From-SVN: r73609
2003-11-14 12:28:25 -05:00
Eric Christopher
729bf8ab4a function.c (purge_addressof_1): Add libcall check.
2003-11-11  Eric Christopher  <echristo@redhat.com>

	* function.c (purge_addressof_1): Add libcall check.
	Remove test for cached replacements on fallback case.
	Simplify mode comparisons. Add libcall test for
	paradoxical subregs.

From-SVN: r73479
2003-11-12 02:10:12 +00:00
John David Anglin
2b256a4627 function.c (assign_parms): Add ATTRIBUTE_UNUSED to variable reg_parm_stack_space.
* function.c (assign_parms): Add ATTRIBUTE_UNUSED to variable
	reg_parm_stack_space.
	* toplev.c (default_get_pch_validity): Fix warning.

From-SVN: r73168
2003-11-01 02:23:44 +00:00
Eric Christopher
69e4e6e99c function.c (purge_addressof_1): Add case for REG_RETVAL notes when modes are unequal.
2003-10-25  Eric Christopher  <echristo@redhat.com>

	* function.c (purge_addressof_1): Add case for REG_RETVAL
        notes when modes are unequal.

From-SVN: r73107
2003-10-30 23:50:53 +00:00
Eric Botcazou
69efc31da2 re PR rtl-optimization/12544 (ICE with large parameters used in nested functions)
PR optimization/12544
	* function.c (put_var_into_stack): Don't generate ADDRESSOFs
	for DECL_NONLOCAL decls.

From-SVN: r72374
2003-10-11 20:56:24 +00:00
Geoffrey Keating
a751cd5beb function.c (pad_to_arg_alignment): Move 'boundary_in_bytes' definition to above SPARC_STACK_BOUNDARY_HACK.
* function.c (pad_to_arg_alignment): Move 'boundary_in_bytes'
	definition to above SPARC_STACK_BOUNDARY_HACK.

From-SVN: r72241
2003-10-08 21:09:18 +00:00
Geoffrey Keating
a594a19c2a function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into account when aligning arguments.
2003-10-07  Geoffrey Keating  <geoffk@apple.com>

	* function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into
	account	when aligning arguments.
	* calls.c (STACK_POINTER_OFFSET): Move default from here ...
	* defaults.h (STACK_POINTER_OFFSET): ... to here.
	* config/sparc/sparc.h (STACK_BOUNDARY): Add comment about how
	it's wrong when TARGET_ARCH64 && TARGET_STACK_BIAS.
	(SPARC_STACK_BOUNDARY_HACK): Define.
	* config/rs6000/rs6000.c (function_arg): On non-SVR4 systems,
	arrange for vector parameters to varargs functions to be passed
	in both memory and GPRs when appropriate.
	(rs6000_va_arg): Vector arguments passed in memory are 16-byte
	aligned.

Index: testsuite/ChangeLog
2003-10-07  Geoffrey Keating  <geoffk@apple.com>

	* gcc.dg/darwin-abi-2.c: New file.
	* gcc.c-torture/execute/va-arg-24.c: New file.

From-SVN: r72199
2003-10-07 19:48:23 +00:00
Kazu Hirata
2067c116a4 c-pretty-print.c: Fix comment typos.
* c-pretty-print.c: Fix comment typos.
	* c-pretty-print.h: Likewise.
	* calls.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cgraphunit.c: Likewise.
	* cppfiles.c: Likewise.
	* final.c: Likewise.
	* function.c: Likewise.
	* gcov-io.h: Likewise.
	* gcse.c: Likewise.
	* genoutput.c: Likewise.
	* loop.c: Likewise.
	* postreload.c: Likewise.
	* reg-stack.c: Likewise.
	* regmove.c: Likewise.
	* sched-int.h: Likewise.
	* sched-rgn.c: Likewise.
	* simplify-rtx.c: Likewise.
	* tree-inline.c: Likewise.
	* config/m68hc11/m68hc11.h: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10300/mn10300.md: Likewise.
	* config/sh/sh.h: Likewise.

From-SVN: r72118
2003-10-05 19:50:56 +00:00
Kazu Hirata
368ebcd6ff fold-const.c: Follow spelling conventions.
* fold-const.c: Follow spelling conventions.
	* function.c: Likewise.
	* config/c4x/c4x.h: Likewise.
	* config/c4x/c4x.md: Likewise.
	* config/frv/frv.md: Likewise.
	* config/rs6000/aix.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/xtensa/xtensa.c: Likewise.

From-SVN: r72111
2003-10-05 13:34:45 +00:00
Richard Henderson
f31686a322 Revert DECL_SOURCE_LOCATION -> TREE_LOCUS change.
From-SVN: r71641
2003-09-21 22:09:32 -07:00
Richard Henderson
7e2af53a14 tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.
* tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.
	(TREE_FILENAME, TREE_LINENO): Likewise.
	(set_tree_locus, copy_tree_locus, set_tree_file_line): New.
	(TREE_LOCUS_SET_P): New.
	* c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c,
	diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c,
	print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c,
	tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c,
	config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match.

ada/
	* trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
	change to const.

cp/
	* class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c,
	method.c, optimize.c, pt.c, semantics.c, tree.c: Update for
	DECL_SOURCE_LOCATION rename and change to const.

f/
	* com.c, ste.c: Update for DECL_SOURCE_LOCATION rename and
	change to const.

java/
	* class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
	resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.

treelang/
	* treetree.c: Update for DECL_SOURCE_LOCATION rename and
	change to const.

From-SVN: r71636
2003-09-21 16:39:40 -07:00
Richard Henderson
ddd2d57e72 c-format.c (gcc_diag_char_table): Add %J.
* c-format.c (gcc_diag_char_table): Add %J.
        (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise.
        (check_format_types): Fix wanted_type name lookup.
        (init_dynamic_diag_info): Setup %J.
        * diagnostic.c (text_specifies_location): Implement %J.
        * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c,
        dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c,
        tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c,
        config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c,
        config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics.

        * tree-inline.c: Include intl.h
        (inline_forbidden_p_1): Fix i18n of inline_forbidden_reason.
        * Makefile.in (tree-inline.o): Update.
cp/
        * decl.c, decl2.c, pt.c: Use %J in diagnostics.
java/
        * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
testsuite/
        * gcc.dg/format/gcc_diag-1.c: Add tests for %J.

From-SVN: r71619
2003-09-20 22:07:20 -07:00
Mark Mitchell
5ae6cd0d1b re PR target/11184 ([ia64 hpux] ICE on __builtin_apply building libobjc)
PR target/11184
	* builtins.c (expand_builtin_apply): Use convert_memory_address
	before returning the value.

	* alias.c (find_base_value): Simplify use of
	convert_memory_address.
	(find_base_term): Likewise.
	* builtins.c (expand_builtin_stejmp_setup): Likewise.
	(expand_builtin_longjmp): Likewise.
	(expand_builtin_prefetch): Likewise.
	(get_memory_rtx): Likewise.
	(expand_builtin_return): Likewise.
	(expand_builtin_memcpy): Likewise.
	(expand_builtin_strncpy): Likewise.
	(expand_builtin_memset): Likewise.
	(expand_builtin_va_arg): Likewise.
	(expand_builtin_va_copy): Likewise.
	(expand_builtin_alloca): Likewise.
	* calls.c (expand_call): Likewise.
	* except.c (expand_builtin_extract_return_addr): Likewise.
	(expand_builtin_eh_return): Likewise.
	* explow.c (convert_memory_address): Define even when
	POINTER_EXTEND_UNSIGNED is not defined.  Do nothing if the address
	is already in the right mode.
	* explow.c (memory_address): Simplify use of convert_memory_address.
	(probe_stack_range): Likewise.
	* expmed.c (make_tree): Likewise.
	* expr.c (emit_block_move_in_libcall): Likewise.
	(expand_assignment): Likewise.
	(expand_expr): Likewise.
	* function.c (assign_parms): Likewise.
	(expand_function_end): Likewise.
	* integrate.c (copy_rtx_and_substitute): Likewise.
	* stmt.c (expand_computed_goto): Likewise.

	PR target/11184
	* gcc.dg/builtin-apply1.c: New test.

From-SVN: r71539
2003-09-18 20:43:13 +00:00
Richard Sandiford
975f381876 function.c (STACK_BYTES): Move definition to head of file.
* function.c (STACK_BYTES): Move definition to head of file.
	(assign_parms): Don't pass current_function_pretend_args_size
	directly to SETUP_INCOMING_VARARGS.  For partial register arguments,
	round current_function_pretend_args_size up to STACK_BYTES.  Skip any
	excess before laying out the argument.

From-SVN: r71372
2003-09-14 10:07:51 +00:00
DJ Delorie
61f71b3447 targhooks.c: New file.
* targhooks.c: New file.
	* targhooks.h: New file.
	* Makefile.in: Add targhooks.o support.
	(function.o): Depend on$(TARGET_H).
	(stmt.o): Likewise.
	(combine.o): Depend on $(TREE_H) and $(TARGET_H).
	* builtins.c (apply_args_size, expand_builtin_apply_args_1,
	expand_builtin_apply): Convert to calls.struct_value_rtx hook.
	(expand_builtin_saveregs): Convert to
	calls.expand_builtin_saveregs hook.
	* c-decl.c (start_decl): Handle new calls.promote_prototypes hook
	here, instead of ...
	(get_parm_info) ... here.
	(store_parm_decls_oldstyle): Convert to calls.promote_prototypes
	hook.
	(finish_function): Handle calls.promote_prototypes hook here too.
	* c-typeck.c (convert_arguments): Convert to
	calls.promote_prototypes hook.
	(c_convert_parm_for_inlining): Likewise.
	* calls.c (initialize_argument_information): Convert to
	calls.promote_function_args hook.
	(expand_call): Convert to calls.struct_value_rtx,
	calls.strict_argument_naming,
	calls.pretend_outgoing_varargs_named, and
	calls.promote_function_return hooks.  Pass fndecl to
	aggregate_value_p.  Initialize CUMULATIVE_ARGS before calling
	hooks, so they can use that.
	(emit_library_call_value_1): Likewise.
	* combine.c (setup_incoming_promotions): Convert to
	calls.promote_function_args hook.
	* emit-rtl.c: Convert to calls.struct_value_rtx hook.
	* expr.c (expand_assignment): Pass call to aggregate_value_p.
	(expand_expr): Likewise.
	* expr.h: Remove support for SETUP_INCOMING_VARARGS,
	STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
	RETURN_IN_MEMORY macro defaults.
	* final.c (profile_function): Convert to calls.struct_value_rtx
	hook.
	* function.c (aggregate_value_p): Accept function type tree as
	second parameter; try to deduce fntype from it.  Convert to
	calls.return_in_memory hook.
	(assign_parms): Convert to calls.setup_incoming_varargs,
	calls.strict_argument_naming, calls.promote_function_args,
	calls.pretend_outgoing_varargs_named hooks.  Pass fndecl to
	aggregate_value_p.
	(expand_function_start): Likewise.  Convert to
	calls.struct_value_rtx hook.
	(expand_function_end): Convert to calls.promote_function_return hook.
	(allocate_struct_function): Pass fndecl to aggregate_value_p.
	* hard-reg-set.h: Update comments to new hook names.
	* integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p.
	* reg-stack.c (stack_result): Likewise.
	* rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete.
	* stmt.c (expand_value_return): Convert to
	calls.promote_function_return hook.
	* target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
	TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY,
	TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS,
	TARGET_STRICT_ARGUMENT_NAMING,
	TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS.
	* target.h: Likewise.
	* tree.h (aggregate_value_p): Also takes a tree to deduce function
	attributes from (for target hooks).
	* doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN,
	PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM,
	STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING,
	EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS,
	STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert
	to hooks.

	* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function
	to aggregate_value_p.
	* config/arm/arm.c (arm_init_cumulative_args,
	arm_output_mi_thunk): Likewise.
	* config/i386/i386.c (ix86_return_pops_args, x86_this_parameter):
	Likewise.
	* config/mips/mips.c (mips_save_reg_p, mips_expand_prologue,
	mips_can_use_return_insn): Likewise.
	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
	* config/s390/s390.c (s390_output_mi_thunk): Likewise.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to
	aggregate_value_p.
	* config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass
	function to aggregate_value_p.
	* objc/objc-act.c (generate_struct_by_value_array): Pass NULL to
	aggregate_value_p.

	* config/sh/sh-protos.h (sh_builtin_saveregs): Remove.
	(sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg,
	sh_function_arg_advance, sh_pass_in_reg_p): New.  * config/sh/sh.c
	(sh_handle_renesas_attribute, sh_promote_prototypes,
	sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs,
	sh_setup_incoming_varargs, sh_strict_argument_naming,
	sh_pretend_outgoing_varargs_named): New decls.
	(targetm): Add new hooks.
	(calc_live_regs): Save MACL and MACH if the function has the
	renesas attribute.
	(sh_expand_prologue): Support renesas attribute.
	(sh_builtin_saveregs): Make static.
	(sh_build_va_list): Support renesas attribute.
	(sh_va_start): Likewise.
	(sh_va_arg): Likewise.
	(sh_promote_prototypes): New.
	(sh_function_arg): New, moved from sh.h.  Support renesas
	attribute.
	(sh_function_arg_advance): Likewise.
	(sh_return_in_memory): Likewise.
	(sh_strict_argument_naming): Likewise.
	(sh_pretend_outgoing_varargs_named): Likewise.
	(sh_struct_value_rtx): New.
	(sh_attribute): Add renesas attribute.
	(sh_handle_renesas_attribute): New.
	(sh_attr_renesas_p, sh_cfun_attr_renesas_p): New.
	(sh_ms_bitfield_layout_p): Support renesas attribute also.
	(sh_output_mi_thunk): Pass function to aggregate_value_p.  *
	config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for
	-mhitachi.
	(STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to
	target hooks.
	(sh_args): Add renesas_abi flag.
	(INIT_CUMULATIVE_ARGS): Set it.  Pass fndecl to aggregate_value_p.
	(FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c.
	(PASS_IN_REG_P): Support renesas attribute.  Pass DF and TF on the
	stack for the renesas abi.
	(STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
	SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS,
	PROMOTE_PROTOTYPES): Moved to sh.c.  * config/sh/sh.md (call): Set
	call cookie to indicate renesas calls.

	* decl.c (finish_function): Pass fndecl to aggregate_value_p.

	* misc.c (default_pass_by_ref): Convert to calls.return_in_memory
	hook.

From-SVN: r71048
2003-09-03 23:18:05 -04:00
Richard Henderson
3a70d62185 function.c (allocate_struct_function): New, split out of ...
* function.c (allocate_struct_function): New, split out of ...
        (prepare_function_start, init_function_start): ... here.
        * expr.c (init_expr): Use ggc_alloc_cleared.
        * stmt.c (init_stmt_for_function): Likewise.
        * tree.h (allocate_struct_function): Declare.

From-SVN: r70929
2003-08-29 15:25:19 -07:00
Richard Sandiford
648bb15912 calls.c (initialize_argument_information): If an argument has no stack space associated with it...
* calls.c (initialize_argument_information): If an argument has no
	stack space associated with it, and BLOCK_REG_PADDING is defined,
	use it to decide at which end the argument should be padded.
	* function.c (assign_parms): Allocate BLKmode stack slots.
	* config/mips/mips-protos.h (mips_pad_arg_upward): Declare.
	(mips_pad_reg_upward): Declare.
	* config/mips/mips.h (PAD_VARARGS_DOWN): Use FUNCTION_ARG_PADDING.
	(CUMULATIVE_ARGS): Remove num_adjusts and adjusts.
	(FUNCTION_ARG_PADDING): Use mips_pad_arg_upward.
	(BLOCK_REG_PADDING): Use mips_pad_reg_upward.
	* config/mips/mips.c (struct mips_arg_info): Remove struct_p.
	(mips_expand_call): Remove code for generating structure shifts.
	(mips_arg_info): Don't set struct_p.  Don't set fpr_p for non-float
	types unless using the EABI.
	(function_arg_advance): Don't generate shift instructions.
	(function_arg): Don't return them.  Don't short-circuit the
	check for double structure chunks for DFmode arguments.
	(mips_pad_arg_upward, mips_pad_reg_upward): New functions.
	(mips_expand_prologue): Remove code to emit structure shifts.
	* config/mips/irix6-libc-compat.c: Remove workarounds for buggy
	structure passing (inet_ntoa, inet_lnaof, inet_netof).  Update
	comments to say that only structure returns are a problem.

From-SVN: r70843
2003-08-27 07:05:18 +00:00
Andrew Pinski
3390f9c9be PR c++/10538, PR c/5582
ChangeLog:
        * langhooks-def.h (lhd_decl_uninit): Declare.
        (LANG_HOOKS_DECL_UNINIT): New macro.
        (LANG_HOOKS_INITIALIZER): Adjust.
        * langhooks.h (struct lang_hooks): Add new field
        decl_uninit.
        * langhooks.c (lhd_decl_uninit): Define.
        * c-common.c (c_decl_uninit_1): New function.
        (c_decl_uninit): New function.
        (warn_init_self): Define.
        * c-common.h (c_decl_uninit): Declare.
        (warn_init_self): Declare.
        * c.opt: Introduce -Winit-self.
        * c-opts.c (c_common_handle_options): Set warn_init_self.
        * c-lang.c (LANG_HOOKS_DECL_UNINIT): Define.
        * objc/objc-lang.c  (LANG_HOOKS_DECL_UNINIT): Define.
        * function.c (uninitialized_vars_warning): Call the language hook.
        * doc/invoke.texi: Document -Winit-self.


cp/ChangeLog:
        * cp/cp-lang.c (LANG_HOOKS_DECL_UNINIT): Define.


testsuite:
        * gcc.dg/uninit-D.c: New Test.
        * gcc.dg/uninit-E.c: New Test.
        * gcc.dg/uninit-F.c: New Test.
        * gcc.dg/uninit-G.c: New Test.

From-SVN: r70574
2003-08-19 13:29:01 -07:00
Gabriel Dos Reis
b6fe0bb8c5 Remove pedwarn_with_decl, warning_with_decl and error_with_decl from GCC.
Remove pedwarn_with_decl, warning_with_decl and error_with_decl
        from GCC.
        * calls.c (try_to_integrate): Don't use xxx_with_decl.
        (expand_call): Likewise.
        * dwarfout.c (output_reg_number): Likewise.
        * expr.c (expand_expr): Likewise.
        * function.c (assign_temp): Likewise.
        (uninitialized_vars_warning): Likewise.
        (setjmp_args_warning): Likewise.
        (expand_function_end): Likewise.
        * stmt.c (fixup_gotos): Likewise.
        (warn_about_unused_variables): Likewise.
        (expand_end_bindings): Likewise.
        * stor-layout.c (layout_decl): Likewise.
        (place_field): Likewise.
        * toplev.c (check_global_declarations): Likewise.
        (rest_of_handle_inlining): Likewise.
        (default_tree_printer): New function.
        (general_init): Initialize diagnostic machinery before routing
        signals to the ICE machinery.  Set default tree printer.
        * toplev.h (pedwarn_with_decl): Remove declaration.
        (warning_with_decl): Likewise.
        (error_with_decl): Likewise.
        (pedwarn): Remove attribute for the time being.
        * tree-inline.c (expand_call_inline): Don't use xxx_with_decl.
        * varasm.c (named_section): Likewise.
        (make_decl_rtl): Likewise.
        (assemble_variable): Likewise.
        (merge_weak): Likewise.
        (declare_weak): Likewise.

        * diagnostic.h: Move non-diagnostic stuff into pretty-print.h.
        * diagnostic.c: Move non-diagnostic stuff into pretty-print.c.
        (format_with_decl): Remove.
        (diagnostic_for_decl): Likewise.
        (pedwarn_with_decl): Likewise.
        (warning_with_decl): Likewise.
        (error_with_decl): Likewise.
        (diagnostic_initialize): Adjust.
        (diagnostic_count_diagnostic): Likewise.
        (announce_function): Likewise.
        (lhd_print_error_function): Likewise.
        (diagnostic_report_current_module): Likewise.
        (default_diagnostic_starter): Likewise.
        (diagnostic_report_diagnostic): Likewise.
        (default_diagnostic_finalizer): Likewise.
        (verbatim): Likewise.
        (error): Likewise.
        (warning): Likewise.
        * opts.c (common_handle_option): Likewise.
        * pretty-print.c: New file.
        * c-pretty-print.h (pp_base): Override.
        * c-pretty-print.c: Adjust use of macros throughout.
        (pp_buffer): New macro.
        (pp_newline): Likewise.
        * c-objc-common.c (c_tree_printer): Adjust prototype. Tidy.
        * Makefile.in (DIAGNOSTIC_H): New variable.
        (c-errors.o): Use it.
        (c-objc-common.o): Likewise.
        (c-common.o): Likewise.
        (c-opts.o): Likewise.
        (c-format.o): Likewise.
        (diagnostic.o): Likewise.
        (opts.o): Likewise.
        (toplev.o): Likewise.
        (rtl-error.o): Likewise.
        (dwarf2out.o): Likewise.
        (jump.o): Likewise.
        (pretty-print.o): New rule.

cp/
        * Make-lang.in (cp/error.o): Depend on DIAGNOSTIC_H.
        * error.c: Use the new pretty-printer fraamework.

From-SVN: r69773
2003-07-25 09:52:32 +00:00
Kaveh R. Ghazi
703ad42b4b alias.c [...]: Remove unnecessary casts.
* alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c
	c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in
	c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c
	collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c
	cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c
	cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c
	dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c
	fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c
	gcse.c genattr.c genattrtab.c genautomata.c genconditions.c
	genemit.c genextract.c genoutput.c genrecog.c gensupport.c
	ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c
	integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c
	loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c
	postreload.c prefix.c print-tree.c protoize.c ra-build.c
	ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c
	regmove.c regrename.c reload.c reload1.c reorg.c resource.c
	sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c
	simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c
	tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c
	varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary
	casts.

From-SVN: r69587
2003-07-19 14:47:15 +00:00
Kazu Hirata
b90f141a9d expr.c (expand_assignment): Remove an unused argument SUGGEST_REG.
* expr.c (expand_assignment): Remove an unused argument
	SUGGEST_REG.
	* expr.h: Update the prototype.
	* function.c: Update the callers.
	* stmt.c: Likewise.

From-SVN: r69379
2003-07-15 05:31:44 +00:00
Alan Modra
6e98504002 tm.texi (BLOCK_REG_PADDING): Describe.
* doc/tm.texi (BLOCK_REG_PADDING): Describe.
	* expr.h (struct locate_and_pad_arg_data): Add where_pad.
	(emit_group_load, emit_group_store): Adjust declarations.
	Remove most occurrences of #ifdef TREE_CODE.
	* expr.c (emit_group_load): Add "type" param, and use
	BLOCK_REG_PADDING to determine need for a shift.  Optimize non-
	aligned accesses if !SLOW_UNALIGNED_ACCESS.
	(emit_group_store): Likewise.
	(emit_push_insn, expand_assignment, store_expr, expand_expr): Adjust
	emit_group_load and emit_group_store calls.
	* calls.c (store_unaligned_arguments_into_pseudos): Tidy.  Use
	BLOCK_REG_PADDING to determine whether we need endian_correction.
	(load_register_parameters): Localize vars.  Handle shifting of
	small values to the correct end of regs.  Adjust emit_group_load
	call.
	(expand_call, emit_library_call_value_1): Adjust emit_group_load
	and emit_group_store calls.
	* function.c (assign_parms): Set mem alignment for stack slots.
	Adjust emit_group_store call.  Store values at the "wrong" end
	of regs to the stack.  Use BLOCK_REG_PADDING.
	(locate_and_pad_parm): Save where_pad.
	(expand_function_end): Adjust emit_group_load call.
	* stmt.c (expand_value_return): Adjust emit_group_load call.
	* Makefile.in (calls.o): Depend on $(OPTABS_H).
	* config/rs6000/linux64.h (TARGET_LITTLE_ENDIAN): Redefine as 0.
	(AGGREGATE_PADDING_FIXED, AGGREGATES_PAD_UPWARD_ALWAYS): Define.
	(MUST_PASS_IN_STACK): Define.
	(BLOCK_REG_PADDING): Define.
	* config/rs6000/rs6000.h (struct rs6000_args): Remove orig_nargs.
	(PAD_VARARGS_DOWN): Define in terms of FUNCTION_ARG_PADDING.
	* config/rs6000/rs6000.c (init_cumulative_args): Don't set orig_nargs.
	(function_arg_padding): !AGGREGATE_PADDING_FIXED compatibility code.
	Act on AGGREGATES_PAD_UPWARD_ALWAYS.

From-SVN: r69318
2003-07-14 14:47:18 +09:30
Richard Henderson
48144cd490 function.c (assign_parms): Don't recombine complex args if fnargs is unchanged from orig_fnargs.
* function.c (assign_parms): Don't recombine complex args if
        fnargs is unchanged from orig_fnargs.
        (split_complex_args): Return args without complex before copying.
        Re-layout the modified parameters.

From-SVN: r69236
2003-07-11 09:28:22 -07:00
Nathan Sidwell
0cea056ba1 rtl.h (emit_line_note): Take a location_t.
* rtl.h (emit_line_note): Take a location_t.
	(emit_line_note_force): Remove.
	(set_file_and_line_for_statement): Take a location_t.
	* tree.g (emit_line_note): Take a location_t.
	* emit-rtl.c (emit_line_note): Take a location_t.
	(emit_line_note_force): Remove.
	* function.c (init_function_start): Adjust emit_line_note call.
	(expand_function_end): Use force_next_line_note, not
	emit_line_note_force.
	* c-parse.in (maybe_type_qual): Adjust emit_line_note calls.
	* c-semantics.c (genrtl_do_pushlevel, genrtl_goto_stmt,
	genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
	genrtl_while_stmt, genrtl_do_stmt_1, genrtl_return_stmt,
	genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
	genrtl_continue_stmt, genrtl_switch_stmt,
	genrtl_asm_stmt): Likewise.
	* expr.c (expand_expr): Likewise.
	* integrate.c (expand_inline_function): Likewise.
	* stmt.c (set_file_and_line_for_stmt): Take a location_t.
	(expand_decl_init): Adjust emit_line_note call.

	* ada/trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
	calls.

	* cp/semantics.c: (genrtl_try_block) Adjust emit_line_note
	calls.

	* f/com.c (bison_rule_pushlevel_, bison_rule_compstmt_): Adjust
	emit_line_note calls.
	* f/ste.c (ffeste_emit_line_note_): Likewise.

	* java/expr.c (expand_byte_code):

	* treelang/treetree.c (tree_code_if_start, tree_code_if_else,
	tree_code_if_end, tree_code_create_function_initial,
	tree_code_create_function_wrapup, tree_code_generate_return,
	tree_code_output_expression_statement): Adjust emit_line_note
	calls.

From-SVN: r69047
2003-07-07 17:57:30 +00:00
Andreas Jaeger
fa8db1f7c4 fold-const.c: Convert prototypes to ISO C90.
* fold-const.c: Convert prototypes to ISO C90.
	* function.c: Likewise.
	* function.h: Likewise.

From-SVN: r68778
2003-07-01 18:20:39 +02:00
Nathan Sidwell
5f2fc772a6 rtl.h (emit_line_note_after): Remove.
* rtl.h (emit_line_note_after): Remove.
	(emit_note_copy_after, emit_note_copy): New.
	* emit-rtl.c (reorder_insns_with_line_notes): Replace
	emit_line_note_after with emit_note_copy_after.
	(emit_insn_after_with_line_notes): Likewise.
	(emit_line_note_after): Kill.
	(emit_note_copy_after): New.
	(emit_note_copy): New.
	* function.c (emit_return_into_block): Use emit_note_copy_after.
	(thread_prologue_and_epilogue_insns): Likewise.
	* integrate.c (expand_inline_function): Use emit_note_copy.
	(copy_insn_list): Likewise.
	* unroll.c (copy_loop_body): Likewise.
	* cfglayout.c (duplicate_insn_chain): Likewise.

From-SVN: r68767
2003-07-01 09:17:52 +00:00
Nathan Sidwell
2e04021970 rtl.h (emit_note): Remove FILE parameter.
* rtl.h (emit_note): Remove FILE parameter.
	* emit-rtl.c (emit_line_note): Adjust emit_note call.
	(emit_note): Remove FILE parameter. Adjust.
	* builtins.c (expand_builtin_expect): Adjust emit_note call.
	* c-semantics.c (genrtl_scope_stmt): Likewise.
	(expand_stmt): Likewise.
	* cfglayout.c (reemit_insn_block_notes): Likewise.
	(duplicate_insn_chain): Likewise.
	* except.c (expand_eh_region_start, expand_eh_region_end,
	sjlj_emit_function_enter): Likewise.
	* explow.c (probe_stack_range): Likewise.
	* expr.c (emit_block_move_via_loop): Likewise.
	* function.c (init_function_start, expand_function_start,
	expand_function_end, thread_prologue_and_epilogue_insns): Likewise.
	* integrate.c (expand_inline_function, copy_insn_list): Likewise.
	* reg-stack.c (compensate_edge): Likewise.
	* reload1.c (reload): Likewise.
	* rtlanal.c (hoist_insn_to_edge): Likewise.
	* stmt.c (expand_fixup, expand_start_loop, expand_start_null_loop,
	expand_loop_continue_here, expand_end_loop, expand_continue_loop,
	expand_exit_loop_top_cond, expand_value_return,
	expand_start_bindings_and_block, expand_end_bindings,
	expand_decl_cleanup, expand_start_case): Likewise.
	* unroll.c (copy_loop_body
	* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise.
	* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_eh_toc_restore,
	rs6000_emit_allocate_stack, rs6000_output_function_prologue,
	rs6000_output_function_epilogue, rs6000_output_mi_thunk): Likewise.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.

	* ada/misc.c (record_code_position): Likewise.

From-SVN: r68561
2003-06-27 09:49:44 +00:00
Kazu Hirata
71c0e7fc96 basic-block.h: Fix comment formatting.
* basic-block.h: Fix comment formatting.
	* bt-load.c: Likewise.
	* builtins.c: Likewise.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-format.c: Likewise.
	* coverage.c: Likewise.
	* cpplib.h: Likewise.
	* cpppch.c: Likewise.
	* dbxout.c: Likewise.
	* diagnostic.c: Likewise.
	* dwarf2out.c: Likewise.
	* expr.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* gcc.c: Likewise.
	* gcov-io.c: Likewise.
	* gcov-io.h: Likewise.
	* gcov.c: Likewise.
	* profile.c: Likewise.
	* real.h: Likewise.
	* sched-deps.c: Likewise.

From-SVN: r68369
2003-06-23 15:27:37 +00:00
Andreas Schwab
4c4d143ab2 * function.c (set_insn_locators): Mark as unused.
From-SVN: r68350
2003-06-22 21:57:19 +00:00
Nathan Sidwell
1f9cc6db1b tree.h (expand_function_end): Remove all parameters.
* tree.h (expand_function_end): Remove all parameters.
	* function.c (expand_function_end): Remove all parameters.
	Use input_location. Never expand_end_bindings.
	* c-decl.c (c_expand_body_1): Adjust expand_function_end call.
	* coverage.c (create_coverage): Likewise.

	* ada/utils.c (end_subprog_body): Adjust expand_function_end
	call.

	* cp/semantics.c (genrtl_finish_function): Adjust
	expand_function_end call.

	* f/com.c (finish_function): Adjust expand_function_end call.

	* java/class.c (push_class): Use a location_t to save place.
	(emit_register_classes): Set input_location. Adjust
	expand_function_end call.
	* java/resource.c (write_resource_constructor): Likewise.
	* java/decl.c (end_java_method): Adjust expand_function_end call.
	* java/parse.y (source_end_java_method): Likewise.

	* treelang/treetree.c (tree_code_create_function_wrapup): Adjust
	expand_function_end call.

From-SVN: r68255
2003-06-20 09:08:23 +00:00
Kaveh R. Ghazi
fad205ffba decl.c, [...]: Don't use the PTR macro.
cp:
	* cp/decl.c, cp/pt.c, cp/search.c, cp/tree.c: Don't use the PTR
	macro.

gcc:
	* bitmap.c, builtins.c, c-incpath.c, cgraph.c, config/frv/frv.c,
	config/mips/mips.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c,
	dwarf2out.c, dwarfout.c, except.c, expr.c, expr.h, fold-const.c,
	function.c, gcc.c, genoutput.c, gensupport.c, global.c,
	haifa-sched.c, hashtable.c, ifcvt.c, integrate.c, local-alloc.c,
	loop.c, mips-tdump.c, mips-tfile.c, mkdeps.c, protoize.c,
	read-rtl.c, recog.h, reload1.c, sbitmap.c, ssa-dce.c,
	stringpool.c, tlink.c, tree.c, varasm.c, varray.c: Don't use
	the PTR macro.

From-SVN: r68043
2003-06-16 21:41:10 +00:00
Nathanael Nerode
5e6908ea23 convert.c, [...]: Replace overly specific references to "GNU C" and "GNU C Compiler" with...
* convert.c, dwarf2out.c, dwarfout.c, emit-rtl.c, function.c,
	lists.c, print-rtl.c, print-tree.c, read-rtl.c, rtl-error.c,
	stmt.c, toplev.c, integrate.h, loop.h, machmode.h, rtl.h,
	ssa.h, tree.def: Replace overly specific references to "GNU C"
	and "GNU C Compiler" with references to "GCC".

From-SVN: r68004
2003-06-16 11:30:25 +00:00
Nathan Sidwell
ee6b0296b8 tree.h (init_function_start): Remove filename and line paramters.
* tree.h (init_function_start): Remove filename and line paramters.
	* function.c (init_function_start): Remove filename and line
	parameters. Use DECL_SOURCE_LOCATION.
	* c-decl.c (store_parm_decls): Adjust init_function_start call.
	(c_expand_body_1): Likewise.
	* coverage.c (create_coverage): Likewise.

	* ada/utils.c (begin_subprog_body): Adjust init_function_start
	call.

	* cp/decl.c (start_function): Adjust init_function_start call.
	* cp/method.c (use_thunk): Likewise.
	* cp/semantics.c (genrtl_start_function): Likewise.

	* f/com.c (stor_parm_decls): Adjust init_function_start call.

	* java/class.c (emit_register_classes): Adjust init_function_start
	call.
	* java/decl.c (complete_start_java_method): Likewise.
	* java/resource.c (write_resource_constructor): Likewise.

	* objc/objc-act.c (build_tmp_function_decl): Set line number to
	zero.
	(hack_method_prototype): Adjust init_function_start call.

	* treelang/treetree.c (tree_code_create_function_initial): Adjust
	init_function_start call.

From-SVN: r67953
2003-06-14 17:33:32 +00:00
Jan Hubicka
0435312e38 cfglayout.c (insn_scope): New static function
* cfglayout.c (insn_scope): New static function
	(block_locators_*, line_locators*, file_locators*): New static varrays.
	(scope_to_insns_initialize): Use them.
	(insn_line, insn_file): New functions.
	(scope_to_insns_finalize): Use insn_scope.
	(prologue_locator, epilogue_locator): New global variables.
	* emit-rt.c (try_split, make_insn_raw, make_jump_insn_raw,
	make_call_insn_raw, emit_copy_of_insn_after): Use locators.
	(emit_insn_after_scope, emit_insn_before_scope
	emit_jump_insn_after_scope, emit_jump_insn_before_scope
	emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to...
	(emit_insn_after_setloc, emit_insn_before_setloc
	emit_jump_insn_after_setloc, emit_jump_insn_before_setloc
	emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these;
	use locators.
	* final.c (notice_source_line): Use locators.
	(final_start_function): Set initial source file and line.
	(final_scan_insn): Use locators.
	* ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
	noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
	noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
	noce_process_if_block, find_cond_trap): Likewise.
	* integrate.c (copy_insn_list): Likewise.
	* jump.c (duplicate_loop_exit_test): LIkewise.
	* print-rtl.c (print_rtx): Print locators.
	* recog.c (peephole2_optimize): Likewise.
	* rtl.h (INSN_SCOPE): Remove.
	(emit_insn_after_scope, emit_insn_before_scope
	emit_jump_insn_after_scope, emit_jump_insn_before_scope
	emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to...
	(emit_insn_after_setloc, emit_insn_before_setloc
	emit_jump_insn_after_setloc, emit_jump_insn_before_setloc
	emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these;
	(insn_file, insn_line, prologue_locator, epilogue_locator): Declare.
	* unroll.c (copy_loop_body): Use locators.
	* function.c (set_insn_locators): New function.
	(thread_prologue_and_epilogue_insns): Set the locators accordingly.

From-SVN: r67637
2003-06-08 19:35:54 +00:00
Jakub Jelinek
3edc56a9e5 function.c (trampolines_created): New variable.
* function.c (trampolines_created): New variable.
	(expand_function_end): Set it when doing INITIALIZE_TRAMPOLINE.
	* function.h (trampolines_created): Add.
	* config/s390/linux.h (ASM_FILE_END): Define.
	* config/alpha/linux-elf.h (ASM_FILE_END): Define.
	* config/m68k/linux.h (ASM_FILE_END): Define.
	* config/rs6000/linux.h (ASM_FILE_END): Define.
	* config/rs6000/linux64.h (ASM_FILE_END): Define.
	* config/rs6000/ppc-asm.h: Add .note.GNU-stack on powerpc-linux.
	* config/sparc/linux.h (ASM_FILE_END): Define.
	* config/sparc/linux64.h (ASM_FILE_END): Define.
	* config/i386/i386.c (ix86_asm_file_end): Use SUBTARGET_FILE_END.
	* config/i386/linux.h (SUBTARGET_FILE_END): Define.
	* config/i386/linux64.h (SUBTARGET_FILE_END): Define.

From-SVN: r67447
2003-06-04 18:44:51 +02:00
Aldy Hernandez
ded9bf77e3 function.c (assign_parms): Split complex arguments.
2003-06-03  Aldy Hernandez  <aldyh@redhat.com>

        * function.c (assign_parms): Split complex arguments.

        * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document.

        * expr.h (SPLIT_COMPLEX_ARGS): Define.
        (split_complex_types): Protoize.
        (split_complex_values): Protoize.

        * calls.c (expand_call): Split complex arguments on architectures
        that require it.
        (split_complex_values): New.
        (split_complex_types): New.

        * config/rs6000/rs6000.c (rs6000_libcall_value): New.
        (rs6000_function_value): Handle complex values on AIX.
        (rs6000_complex_function_value): New.

        * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize.

        * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function.
        (SPLIT_COMPLEX_ARGS): New.

From-SVN: r67367
2003-06-03 11:14:07 +00:00
Andreas Jaeger
14fb18b06f Add missed chunk in last commit.
From-SVN: r67275
2003-05-31 20:59:10 +02:00
Andreas Jaeger
0d569849e6 function.c (trampoline_address): Remove ALLOCATE_TRAMPOLINE usage.
* function.c (trampoline_address): Remove ALLOCATE_TRAMPOLINE
        usage.

        * doc/tm.texi (Trampolines): Remove ALLOCATE_TRAMPOLINE.

        * config/d30v/d30v.h: Remove traces of ALLOCATE_TRAMPOLINE.

        * system.h: Poison ALLOCATE_TRAMPOLINE.

        * doc/tm.texi (Misc): Remove HANDLE_PRAGMA.
        * system.h: Poison HANDLE_PRAGMA.

	In f/
        * lex.c (ffelex_hash_): Remove HANDLE_PRAGMA and
        HANDLE_GENERIC_PRAGMA dependend code, remove #if 0 code.
        (pragma_getc): Removed.
        (pragma_ungetc): Removed.

From-SVN: r67274
2003-05-31 20:45:31 +02:00
Richard Kenner
7a6cdb44fd tree.h (contains_placeholder_p): Now returns bool.
* tree.h (contains_placeholder_p): Now returns bool.
	(CONTAINS_PLACEHOLDER_P): New macro.
	(type_contains_placeholder_p): New function.
	* tree.c (save_expr): Remove code avoiding folding COMPONENT_REF.
	(contains_placeholder_p): Now returns bool.
	Rework to use CONTAINS_PLACEHOLDER_P macro.
	(type_contains_placeholder_p): New function.
	* fold-const.c (fold, case COMPONENT_REF): Don't fold if
	type_contains_placeholder_p.
	(fold_range_test, fold_mathfn_compare, fold_inf_compare, fold):
	Use CONTAINS_PLACEHOLDER_P macro.
	* builtins.c (fold_builtin): Likewise.
	* calls.c (initialize_argument_information): Likewise.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
	* explow.c (expr_size): Likewise.
	* expr.c (store_constructor, get_inner_reference): Likewise.
	* function.c (assign_parms): Likewise.
	* stor-layout.c (variable_size): Likewise.

From-SVN: r67189
2003-05-27 14:44:57 -04:00
Alan Modra
5c07bd7a3c * function.c (assign_parms): Check for zero size args.
From-SVN: r66901
2003-05-17 16:22:35 +09:30
Nathan Sidwell
6d70e6bee0 coverage.h (coverage_counter_alloc): New function.
* coverage.h (coverage_counter_alloc): New function.
	* function.h (struct function): Remove arc_profile flag.
	* coverage.c (fn_ident): Remove.
	(fn_b_ctrs, no_coverage): New.
	(get_coverage_counts): Use current_function_funcdef_no.
	(coverage_counter_alloc): New.
	(coverage_counter_ref): Adjust.
	(coverage_begin_output): Check no_coverage. Use
	current_function_funcdef_no.
	(coverage_end_function): Likewise.
	(create_coverage): Set no_coverage. Set DECL_UNINLINEABLE rather
	than clearing flag_inline_functions. Do not clear arc_profile
	flag.
	* function.c (prepare_function_start): Do not set arc_profile
	flag.
	* profile.c (instrument_edges): Return number of instrumented
	edges. Use a for loop.
	(branch_prob): Call coverage_counter_alloc. Make BB_TO_GCOV_INDEX
	local to here and simplify. Use profile_arc_flag not arc_profile
	flag.
	(find_spanning_tree): Reformat.
	* toplev.c (rest_of_compilation): Use profile_arc_flags and
	flag_test_coverage rather than arc_profile flag.

From-SVN: r66695
2003-05-11 19:21:32 +00:00
Alan Modra
c6b97fac18 expr.c (move_block_from_reg): Remove "size" parm.
* expr.c (move_block_from_reg): Remove "size" parm.  Localize vars.
	Move code handling pieces not larger than a word to..
	* function.c (assign_parms): ..here, but use change_address instead
	of adjust_address and operand_subword, and expand_binop instead of
	expand_shift.  Adjust calls to move_block_from_reg.
	* expr.h (move_block_from_reg): Update declaration.
	(copy_blkmode_from_reg): Formatting.
	* Makefile.in (function.o): Add $(OPTABS_H) to deps.
	* config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust
	move_block_from_reg calls.
	* config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
	* config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
	* config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
	* config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise.
	* config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
	* config/pa/pa.c (hppa_builtin_saveregs): Likewise.
	* config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise.
	* config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
	* config/sh/sh.c (sh_builtin_saveregs): Likewise.

From-SVN: r66623
2003-05-09 16:07:25 +09:30
Alan Modra
ffea5d1e43 function.c (assign_parms): Correct reversed reg_parm_stack_space test.
* function.c (assign_parms): Correct reversed reg_parm_stack_space
	test.  Add partial in-regs size to stack_args_size.

From-SVN: r66560
2003-05-07 23:07:57 +09:30
Zack Weinberg
87f85ea066 re PR c/10604 (-Wall includes sign conversion warning [3.3 regression])
PR c/10604

	* c-common.c (warn_sign_compare): Initialize to -1.
	* c-opts.c (c_common_init_options): Don't set warn_sign_compare here.
	(c_common_decode_option <OPT_Wall>): Set warn_sign_compare
	for C++ only.
	(c_common_post_options): Set warn_sign_compare from extra_warnings
	if it's still -1 at this point.

	* toplev.c (maybe_warn_unused_parameter): New static variable.
	(set_Wextra): New static function.
	(W_options): Remove "extra".
	(decode_W_option): Call set_Wextra.
	(independent_decode_option): Likewise.
	(set_Wunused): Cooperate with set_Wextra in setting
	warn_unused_parameter.
	(rest_of_compilation): No need to check extra_warnings as
	well as warn_uninitialized.

	* c-typeck.c (build_binary_op, build_conditional_expr):
	No need to check extra_warnings as well as warn_sign_compare.
	(internal_build_compound_expr): No need to check extra_warnings
	as well as warn_unused_value.
	* function.c (expand_function_end): No need to check extra_warnings
	as well as warn_unused_parameter.
	* stmt.c (expand_expr_stmt_value): No need to check extra_warnings
	as well as warn_unused_value.
	* cp/typeck.c (build_x_compound_expr): No need to check
	extra_warnings as well as warn_unused_value.

	* doc/invoke.texi: Clarify documentation of -Wsign-compare.
	* gcc.dg/compare7.c, g++.dg/warn/compare1.C: New testcases.

	* Makefile.in: Disable -Werror for gengtype-lex.o.

From-SVN: r66436
2003-05-03 21:44:31 +00:00