1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fsplit-paths -fdump-tree-split-paths-details -w" } */
4 typedef struct bitmap_head_def
*bitmap
;
5 extern void vec_assert_fail (const char *, const char *, const char *file_
,
6 unsigned line_
, const char *function_
)
7 __attribute__ ((__noreturn__
));
8 typedef struct VEC_int_base
16 VEC_int_base_space (VEC_int_base
* vec_
, int alloc_
, const char *file_
,
17 unsigned line_
, const char *function_
)
19 return vec_
? vec_
->alloc
- vec_
->num
>= (unsigned) alloc_
: !alloc_
;
22 static __inline__
int *
23 VEC_int_base_quick_push (VEC_int_base
* vec_
, int obj_
, const char *file_
,
24 unsigned line_
, const char *function_
)
27 vec_
->alloc
) ? 0 : (vec_assert_fail ("push", "VEC(int,base)",
28 file_
, line_
, function_
), 0));
31 typedef struct VEC_int_heap
37 VEC_int_heap_reserve (VEC_int_heap
** vec_
, int alloc_
, const char *file_
,
38 unsigned line_
, const char *function_
)
41 !VEC_int_base_space (((*vec_
) ? &(*vec_
)->base
: 0), alloc_
, file_
, line_
,
45 (VEC_int_heap
*) vec_heap_o_reserve (*vec_
, alloc_
,
46 __builtin_offsetof (VEC_int_heap
,
51 static __inline__
int *
52 VEC_int_heap_safe_push (VEC_int_heap
** vec_
, const int obj_
,
53 const char *file_
, unsigned line_
,
54 const char *function_
)
56 VEC_int_heap_reserve (vec_
, 1, file_
, line_
, function_
);
57 return VEC_int_base_quick_push (((*vec_
) ? &(*vec_
)->base
: 0), obj_
, file_
,
61 typedef struct bitmap_head_def
70 compute_idf (bitmap_head
* dfs
)
74 VEC_int_heap
*work_stack
;
75 bitmap phi_insertion_points
;
76 while ((VEC_int_base_length (((work_stack
) ? &(work_stack
)->base
: 0))) > 0)
78 for (bmp_iter_and_compl_init
79 (&(bi
), (&dfs
[bb_index
]), (phi_insertion_points
), (0), &(i
));
80 bmp_iter_and_compl (&(bi
), &(i
)); bmp_iter_next (&(bi
), &(i
)))
82 (VEC_int_heap_safe_push
83 (&(work_stack
), i
, "/home/gcc/virgin-gcc/gcc/cfganal.c", 1349,
87 (VEC_int_heap_free (&work_stack
));
90 /* { dg-final { scan-tree-dump-not "Duplicating join block" "split-paths" } } */