aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-04-14 18:52:47 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-04-14 18:52:47 -0400
commit3c46fbf6bf370e7644e63d09e12b84ba56433b82 (patch)
tree4256d8a755b432fb184e472be77f77e7d415abc5
parent700ad580a6b6b3c53d74a03a75ad6b3ce82b0a41 (diff)
downloadgcc-3c46fbf6bf370e7644e63d09e12b84ba56433b82.zip
gcc-3c46fbf6bf370e7644e63d09e12b84ba56433b82.tar.gz
gcc-3c46fbf6bf370e7644e63d09e12b84ba56433b82.tar.bz2
(expand_end_case): Move conversion of case_list before
check_for_full_enumeration_handling. From-SVN: r11769
-rw-r--r--gcc/stmt.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c
index cf37bb7..253d3b3 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -4871,6 +4871,10 @@ expand_end_case (orig_index)
/* An ERROR_MARK occurs for various reasons including invalid data type. */
if (index_type != error_mark_node)
{
+ if (thiscase->data.case_stmt.case_list)
+ thiscase->data.case_stmt.case_list
+ = case_tree2list (thiscase->data.case_stmt.case_list, 0);
+
/* If switch expression was an enumerated type, check that all
enumeration literals are covered by the cases.
No sense trying this if there's a default case, however. */
@@ -4908,10 +4912,6 @@ expand_end_case (orig_index)
before_case = get_last_insn ();
- if (thiscase->data.case_stmt.case_list)
- thiscase->data.case_stmt.case_list
- = case_tree2list(thiscase->data.case_stmt.case_list, 0);
-
/* Simplify the case-list before we count it. */
group_case_nodes (thiscase->data.case_stmt.case_list);