stmt.c (expand_start_bindings): Allow callers to pass a flag indicating that no NOTE_INSN_BLOCK_BEG note is...
* stmt.c (expand_start_bindings): Allow callers to pass a flag indicating that no NOTE_INSN_BLOCK_BEG note is required. (expand_start_target_temps): Use it. * except.c (expand_eh_region_start_for_decl): Likewise. * expr.c (expand_expr): Likewise. From-SVN: r29484
This commit is contained in:
parent
05ca599071
commit
8e91754ed4
|
@ -1,3 +1,11 @@
|
||||||
|
Fri Sep 17 15:03:16 1999 Mark Mitchell <mark@codesourcery.com>
|
||||||
|
|
||||||
|
* stmt.c (expand_start_bindings): Allow callers to pass a flag
|
||||||
|
indicating that no NOTE_INSN_BLOCK_BEG note is required.
|
||||||
|
(expand_start_target_temps): Use it.
|
||||||
|
* except.c (expand_eh_region_start_for_decl): Likewise.
|
||||||
|
* expr.c (expand_expr): Likewise.
|
||||||
|
|
||||||
Fri Sep 17 15:05:27 1999 Gavin Romig-Koch <gavin@cygnus.com>
|
Fri Sep 17 15:05:27 1999 Gavin Romig-Koch <gavin@cygnus.com>
|
||||||
|
|
||||||
* fold-const.c (operand_equal_p): Pay attention to side effects.
|
* fold-const.c (operand_equal_p): Pay attention to side effects.
|
||||||
|
|
|
@ -1418,7 +1418,7 @@ expand_eh_region_start_for_decl (decl)
|
||||||
/* We need a new block to record the start and end of the
|
/* We need a new block to record the start and end of the
|
||||||
dynamic handler chain. We also want to prevent jumping into
|
dynamic handler chain. We also want to prevent jumping into
|
||||||
a try block. */
|
a try block. */
|
||||||
expand_start_bindings (0);
|
expand_start_bindings (2);
|
||||||
|
|
||||||
/* But we don't need or want a new temporary level. */
|
/* But we don't need or want a new temporary level. */
|
||||||
pop_temp_slots ();
|
pop_temp_slots ();
|
||||||
|
|
|
@ -6104,7 +6104,7 @@ expand_expr (exp, target, tmode, modifier)
|
||||||
|
|
||||||
/* Need to open a binding contour here because
|
/* Need to open a binding contour here because
|
||||||
if there are any cleanups they must be contained here. */
|
if there are any cleanups they must be contained here. */
|
||||||
expand_start_bindings (0);
|
expand_start_bindings (2);
|
||||||
|
|
||||||
/* Mark the corresponding BLOCK for output in its proper place. */
|
/* Mark the corresponding BLOCK for output in its proper place. */
|
||||||
if (TREE_OPERAND (exp, 2) != 0
|
if (TREE_OPERAND (exp, 2) != 0
|
||||||
|
@ -6793,7 +6793,7 @@ expand_expr (exp, target, tmode, modifier)
|
||||||
{
|
{
|
||||||
/* Start a new binding layer that will keep track of all cleanup
|
/* Start a new binding layer that will keep track of all cleanup
|
||||||
actions to be performed. */
|
actions to be performed. */
|
||||||
expand_start_bindings (0);
|
expand_start_bindings (2);
|
||||||
|
|
||||||
target_temp_slot_level = temp_slot_level;
|
target_temp_slot_level = temp_slot_level;
|
||||||
|
|
||||||
|
@ -8185,7 +8185,7 @@ expand_expr (exp, target, tmode, modifier)
|
||||||
|
|
||||||
/* Start a new binding layer that will keep track of all cleanup
|
/* Start a new binding layer that will keep track of all cleanup
|
||||||
actions to be performed. */
|
actions to be performed. */
|
||||||
expand_start_bindings (0);
|
expand_start_bindings (2);
|
||||||
|
|
||||||
target_temp_slot_level = temp_slot_level;
|
target_temp_slot_level = temp_slot_level;
|
||||||
|
|
||||||
|
|
27
gcc/stmt.c
27
gcc/stmt.c
|
@ -3168,15 +3168,30 @@ tail_recursion_args (actuals, formals)
|
||||||
/* Generate the RTL code for entering a binding contour.
|
/* Generate the RTL code for entering a binding contour.
|
||||||
The variables are declared one by one, by calls to `expand_decl'.
|
The variables are declared one by one, by calls to `expand_decl'.
|
||||||
|
|
||||||
EXIT_FLAG is nonzero if this construct should be visible to
|
FLAGS is a bitwise or of the following flags:
|
||||||
`exit_something'. */
|
|
||||||
|
1 - Nonzero if this construct should be visible to
|
||||||
|
`exit_something'.
|
||||||
|
|
||||||
|
2 - Nonzero if this contour does not require a
|
||||||
|
NOTE_INSN_BLOCK_BEG note. Virtually all calls from
|
||||||
|
language-independent code should set this flag because they
|
||||||
|
will not create corresponding BLOCK nodes. (There should be
|
||||||
|
a one-to-one correspondence between NOTE_INSN_BLOCK_BEG notes
|
||||||
|
and BLOCKs.) If this flag is set, MARK_ENDS should be zero
|
||||||
|
when expand_end_bindings is called. */
|
||||||
|
|
||||||
void
|
void
|
||||||
expand_start_bindings (exit_flag)
|
expand_start_bindings (flags)
|
||||||
int exit_flag;
|
int flags;
|
||||||
{
|
{
|
||||||
struct nesting *thisblock = ALLOC_NESTING ();
|
struct nesting *thisblock = ALLOC_NESTING ();
|
||||||
rtx note = emit_note (NULL_PTR, NOTE_INSN_BLOCK_BEG);
|
rtx note;
|
||||||
|
int exit_flag = ((flags & 1) != 0);
|
||||||
|
int block_flag = ((flags & 2) == 0);
|
||||||
|
|
||||||
|
note = emit_note (NULL_PTR,
|
||||||
|
block_flag ? NOTE_INSN_BLOCK_BEG : NOTE_INSN_DELETED);
|
||||||
|
|
||||||
/* Make an entry on block_stack for the block we are entering. */
|
/* Make an entry on block_stack for the block we are entering. */
|
||||||
|
|
||||||
|
@ -3228,7 +3243,7 @@ expand_start_target_temps ()
|
||||||
|
|
||||||
/* Start a new binding layer that will keep track of all cleanup
|
/* Start a new binding layer that will keep track of all cleanup
|
||||||
actions to be performed. */
|
actions to be performed. */
|
||||||
expand_start_bindings (0);
|
expand_start_bindings (2);
|
||||||
|
|
||||||
target_temp_slot_level = temp_slot_level;
|
target_temp_slot_level = temp_slot_level;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue