diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1997-08-20 12:30:36 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1997-08-20 12:30:36 -0700 |
commit | e3eef942f2af7396eac71b5904e309086a5d9325 (patch) | |
tree | 9a998724eee2d94afabf425532271bbff0332889 /gcc/stmt.c | |
parent | 246853b927ebe22eac4f8079e2385df232fc0e02 (diff) | |
download | gcc-e3eef942f2af7396eac71b5904e309086a5d9325.tar.gz |
stmt.c (start_cleanup_deferal, [...]): Test block_stack before dereferencing it.
* stmt.c (start_cleanup_deferal, end_cleanup_deferal): Test
block_stack before dereferencing it.
From-SVN: r14861
Diffstat (limited to 'gcc/stmt.c')
-rw-r--r-- | gcc/stmt.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c index dcc5fa331fe..bc1e6ba6dd2 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -4212,7 +4212,10 @@ expand_cleanups (list, dont_do, in_fixup, reachable) void start_cleanup_deferal () { - ++block_stack->data.block.conditional_code; + /* block_stack can be NULL if we are inside the parameter list. It is + OK to do nothing, because cleanups aren't possible here. */ + if (block_stack) + ++block_stack->data.block.conditional_code; } /* Mark the end of a conditional region of code. Because cleanup @@ -4223,7 +4226,10 @@ start_cleanup_deferal () void end_cleanup_deferal () { - --block_stack->data.block.conditional_code; + /* block_stack can be NULL if we are inside the parameter list. It is + OK to do nothing, because cleanups aren't possible here. */ + if (block_stack) + --block_stack->data.block.conditional_code; } /* Move all cleanups from the current block_stack |