tree.h (TYPE_NEEDS_CONSTRUCTING): New macro.
Wed Jul 13 03:30:36 1994 Jason Merrill (jason@deneb.cygnus.com) * tree.h (TYPE_NEEDS_CONSTRUCTING): New macro. (tree_type): Add needs_constructing_flag. * function.c (assign_parms): If TYPE_NEEDS_CONSTRUCTING, pass by invisible reference. * calls.c (expand_call): Ditto. From-SVN: r7758
This commit is contained in:
parent
ccccb52764
commit
4ac3d99407
@ -996,6 +996,7 @@ expand_call (exp, target, ignore)
|
||||
/* See if this argument should be passed by invisible reference. */
|
||||
if ((TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST
|
||||
&& contains_placeholder_p (TYPE_SIZE (type)))
|
||||
|| TYPE_NEEDS_CONSTRUCTING (type)
|
||||
#ifdef FUNCTION_ARG_PASS_BY_REFERENCE
|
||||
|| FUNCTION_ARG_PASS_BY_REFERENCE (args_so_far, TYPE_MODE (type),
|
||||
type, argpos < n_named_args)
|
||||
|
@ -3157,6 +3157,7 @@ assign_parms (fndecl, second_time)
|
||||
|
||||
if ((TREE_CODE (TYPE_SIZE (passed_type)) != INTEGER_CST
|
||||
&& contains_placeholder_p (TYPE_SIZE (passed_type)))
|
||||
|| TYPE_NEEDS_CONSTRUCTING (passed_type)
|
||||
#ifdef FUNCTION_ARG_PASS_BY_REFERENCE
|
||||
|| FUNCTION_ARG_PASS_BY_REFERENCE (args_so_far, passed_mode,
|
||||
passed_type, ! last_named)
|
||||
|
@ -615,6 +615,10 @@ struct tree_block
|
||||
If set in a SET_TYPE, indicates a bitstring type. */
|
||||
#define TYPE_STRING_FLAG(NODE) ((NODE)->type.string_flag)
|
||||
|
||||
/* Indicates that objects of this type must be initialized by calling a
|
||||
function when they are created. */
|
||||
#define TYPE_NEEDS_CONSTRUCTING(NODE) ((NODE)->type.needs_constructing_flag)
|
||||
|
||||
struct tree_type
|
||||
{
|
||||
char common[sizeof (struct tree_common)];
|
||||
@ -632,6 +636,7 @@ struct tree_type
|
||||
|
||||
unsigned string_flag : 1;
|
||||
unsigned no_force_blk_flag : 1;
|
||||
unsigned needs_constructing_flag : 1;
|
||||
unsigned lang_flag_0 : 1;
|
||||
unsigned lang_flag_1 : 1;
|
||||
unsigned lang_flag_2 : 1;
|
||||
@ -639,7 +644,7 @@ struct tree_type
|
||||
unsigned lang_flag_4 : 1;
|
||||
unsigned lang_flag_5 : 1;
|
||||
unsigned lang_flag_6 : 1;
|
||||
/* room for 7 more bits */
|
||||
/* room for 6 more bits */
|
||||
|
||||
unsigned int align;
|
||||
union tree_node *pointer_to;
|
||||
|
Loading…
Reference in New Issue
Block a user