1 // { dg-do compile } 2 // { dg-options "-foptimize-sibling-calls -fcompare-debug -Wno-return-type" } 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 }; gsi_start_1(gimple stmt)17static 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); gimple_try_catch_may_fallthru(gimple stmt)24static 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 } gimple_stmt_may_fallthru(gimple stmt,bool x)33bool 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 } 40