111
|
1 // { dg-do compile }
|
131
|
2 // { dg-options "-foptimize-sibling-calls -fcompare-debug -Wno-return-type" }
|
111
|
3
|
|
4 typedef union gimple_statement_d *gimple;
|
|
5 typedef gimple gimple_seq_node;
|
|
6 typedef struct {
|
|
7 gimple_seq_node ptr;
|
|
8 void *seq;
|
|
9 void *bb;
|
|
10 } gimple_stmt_iterator;
|
|
11 struct gimple_statement_base {
|
|
12 gimple next;
|
|
13 };
|
|
14 union gimple_statement_d {
|
|
15 struct gimple_statement_base gsbase;
|
|
16 };
|
|
17 static inline gimple_stmt_iterator gsi_start_1 (gimple stmt)
|
|
18 {
|
|
19 gimple_stmt_iterator i;
|
|
20 i.ptr = stmt;
|
|
21 return i;
|
|
22 }
|
|
23 bool gimple_may_fallthru (gimple);
|
|
24 static bool gimple_try_catch_may_fallthru (gimple stmt)
|
|
25 {
|
|
26 gimple_stmt_iterator i = gsi_start_1 (stmt);
|
|
27 for (; i.ptr; i.ptr = i.ptr->gsbase.next)
|
|
28 {
|
|
29 if (gimple_may_fallthru (i.ptr))
|
|
30 return true;
|
|
31 }
|
|
32 }
|
|
33 bool gimple_stmt_may_fallthru (gimple stmt, bool x)
|
|
34 {
|
|
35 if (x)
|
|
36 return gimple_may_fallthru (stmt);
|
|
37 else
|
|
38 return gimple_try_catch_may_fallthru (stmt);
|
|
39 }
|