summaryrefslogtreecommitdiff
path: root/gcc/tree-stdarg.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-stdarg.c')
-rw-r--r--gcc/tree-stdarg.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/tree-stdarg.c b/gcc/tree-stdarg.c
index 0c70790f3eb..327afa22704 100644
--- a/gcc/tree-stdarg.c
+++ b/gcc/tree-stdarg.c
@@ -57,6 +57,7 @@ along with GCC; see the file COPYING3. If not see
#include "stringpool.h"
#include "tree-ssanames.h"
#include "sbitmap.h"
+#include "bitvec.h"
#include "tree-pass.h"
#include "tree-stdarg.h"
@@ -78,7 +79,6 @@ reachable_at_most_once (basic_block va_arg_bb, basic_block va_start_bb)
vec<edge> stack = vNULL;
edge e;
edge_iterator ei;
- sbitmap visited;
bool ret;
if (va_arg_bb == va_start_bb)
@@ -87,8 +87,7 @@ reachable_at_most_once (basic_block va_arg_bb, basic_block va_start_bb)
if (! dominated_by_p (CDI_DOMINATORS, va_arg_bb, va_start_bb))
return false;
- visited = sbitmap_alloc (last_basic_block_for_fn (cfun));
- bitmap_clear (visited);
+ stack_bitvec visited (last_basic_block_for_fn (cfun));
ret = true;
FOR_EACH_EDGE (e, ei, va_arg_bb->preds)
@@ -119,16 +118,15 @@ reachable_at_most_once (basic_block va_arg_bb, basic_block va_start_bb)
gcc_assert (src != ENTRY_BLOCK_PTR_FOR_FN (cfun));
- if (! bitmap_bit_p (visited, src->index))
+ if (! visited[src->index])
{
- bitmap_set_bit (visited, src->index);
+ visited[src->index] = true;
FOR_EACH_EDGE (e, ei, src->preds)
stack.safe_push (e);
}
}
stack.release ();
- sbitmap_free (visited);
return ret;
}