diff options
author | Steven Bosscher <steven@gcc.gnu.org> | 2012-07-09 18:53:35 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2012-07-09 18:53:35 +0000 |
commit | 238065a73bd2bab6c3eb69e6d43cd8115a5b4245 (patch) | |
tree | d7f84fe48d87db0df890f2f77c86736581a54e5d /gcc/tree-cfg.c | |
parent | 06e3e32bcd55600300f4a393a77bb582ff68cdf9 (diff) | |
download | gcc-238065a73bd2bab6c3eb69e6d43cd8115a5b4245.zip gcc-238065a73bd2bab6c3eb69e6d43cd8115a5b4245.tar.gz gcc-238065a73bd2bab6c3eb69e6d43cd8115a5b4245.tar.bz2 |
re PR middle-end/53887 (ICE in hoist_edge_and_branch_if_true, at tree-switch-conversion.c:79)
gcc/
PR tree-optimization/53887
* tree-cfg.c (group_case_labels_stmt): Make non-static.
* tree-flow.h (group_case_labels_stmt): Add prototype.
* tree-switch-conversion.c (process_switch): Use group_case_labels_stmt
to pre-process every switch.
testsuite/
PR tree-optimization/53887
* gcc.dg/pr53887.c: New test.
From-SVN: r189389
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index dd47609..bdcf7c3 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -125,7 +125,6 @@ static edge find_taken_edge_computed_goto (basic_block, tree); static edge find_taken_edge_cond_expr (basic_block, tree); static edge find_taken_edge_switch_expr (basic_block, tree); static tree find_case_label_for_value (gimple, tree); -static void group_case_labels_stmt (gimple); void init_empty_tree_cfg_for_function (struct function *fn) @@ -1331,7 +1330,7 @@ cleanup_dead_labels (void) the ones jumping to the same label. Eg. three separate entries 1: 2: 3: become one entry 1..3: */ -static void +void group_case_labels_stmt (gimple stmt) { int old_size = gimple_switch_num_labels (stmt); |