aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-07-05 21:59:55 +0000
committerRichard Stallman <rms@gnu.org>1992-07-05 21:59:55 +0000
commit9ab0ddd73b118d0ba6d429dcf2770b889a5972ab (patch)
tree2c1b38896834606232521ff9fad41f0aca9fb013 /gcc
parent1600ec6700767b69c54c4071f6ea9f2392d13670 (diff)
downloadgcc-9ab0ddd73b118d0ba6d429dcf2770b889a5972ab.zip
gcc-9ab0ddd73b118d0ba6d429dcf2770b889a5972ab.tar.gz
gcc-9ab0ddd73b118d0ba6d429dcf2770b889a5972ab.tar.bz2
*** empty log message ***
From-SVN: r1452
Diffstat (limited to 'gcc')
-rw-r--r--gcc/stmt.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c
index a6d98e64..6e55df2 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -3232,6 +3232,9 @@ pushcase (value, label, duplicate)
if (index_type == error_mark_node)
return 0;
+ /* There may be NOP_EXPR around the value if we got it from an enum. */
+ STRIP_NOPS (arg);
+
/* Convert VALUE to the type in which the comparisons are nominally done. */
if (value != 0)
value = convert (nominal_type, value);
@@ -3361,6 +3364,10 @@ pushcase_range (value1, value2, label, duplicate)
}
case_stack->data.case_stmt.seenlabel = 1;
+ /* There may be NOP_EXPR around the value if we got it from an enum. */
+ STRIP_NOPS (value1);
+ STRIP_NOPS (value2);
+
/* Convert VALUEs to type in which the comparisons are nominally done. */
if (value1 == 0) /* Negative infinity. */
value1 = TYPE_MIN_VALUE(index_type);
@@ -3525,7 +3532,7 @@ check_for_full_enumeration_handling (type)
}
/* Terminate a case (Pascal) or switch (C) statement
- in which CASE_INDEX is the expression to be tested.
+ in which ORIG_INDEX is the expression to be tested.
Generate the code to test it and jump to the right place. */
void