calls.c (ECF_MALLOC, [...]): New constants.

* calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
	 ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
	(ECF_IS_CONST): Rename to ECF_CONST.
	(special_function_p): Make static, change interface.
	(flags_from_decl_or_type, try_to_integrate): Break out from ...
	(expand_call) ... here; convert number of variables to flags.
	(emit_library_call_vlue_1): Likewise.
	(setjmp_call_p): New function.
	(initialize_argument_information): Accepts flags as argument;
	return flags.
	(precompute_arguments): Likewise.
	* tree.h (special_function_p): Remove.
	(setjmp_call_p): Add prototype.

From-SVN: r32904
This commit is contained in:
Jan Hubicka 2000-04-04 17:19:30 +00:00 committed by Jan Hubicka
parent be340b974a
commit f2d33f1321
4 changed files with 283 additions and 225 deletions

View File

@ -1,3 +1,19 @@
Tue Apr 4 19:17:20 MET DST 2000 Jan Hubicka <jh@suse.cz>
* calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
ECF_LONGJMP, ECF_FORK_OR_EXEC): New constants.
(ECF_IS_CONST): Rename to ECF_CONST.
(special_function_p): Make static, change interface.
(flags_from_decl_or_type, try_to_integrate): Break out from ...
(expand_call) ... here; convert number of variables to flags.
(emit_library_call_vlue_1): Likewise.
(setjmp_call_p): New function.
(initialize_argument_information): Accepts flags as argument;
return flags.
(precompute_arguments): Likewise.
* tree.h (special_function_p): Remove.
(setjmp_call_p): Add prototype.
2000-04-04 Jakub Jelinek <jakub@redhat.com>
* config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin

File diff suppressed because it is too large Load Diff

View File

@ -748,20 +748,11 @@ calls_setjmp_r (tp, walk_subtrees, data)
int *walk_subtrees ATTRIBUTE_UNUSED;
void *data ATTRIBUTE_UNUSED;
{
int setjmp_p;
int longjmp_p;
int fork_or_exec_p;
int malloc_p;
int alloca_p;
/* We're only interested in FUNCTION_DECLS. */
if (TREE_CODE (*tp) != FUNCTION_DECL)
return NULL_TREE;
special_function_p (*tp, &setjmp_p, &longjmp_p, &fork_or_exec_p, &malloc_p,
&alloca_p);
return setjmp_p ? *tp : NULL_TREE;
return setjmp_call_p (*tp);
}
/* Returns non-zero if FN calls `setjmp' or some other function that

View File

@ -2551,8 +2551,9 @@ extern struct rtx_def *emit_line_note PARAMS ((const char *, int));
extern struct rtx_def *emit_line_note_force PARAMS ((const char *, int));
/* In calls.c */
extern void special_function_p PARAMS ((tree, int *, int *,
int *, int *, int *));
/* Flags used by special_function_p. */
extern int setjmp_call_p PARAMS ((tree));
/* In c-typeck.c */
extern int mark_addressable PARAMS ((tree));