From: Richard Stallman Date: Tue, 23 Jun 1992 02:19:48 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1ddde1cde5a6be92c007fe24fe598215dce7cfd7;p=gcc.git *** empty log message *** From-SVN: r1239 --- diff --git a/gcc/stmt.c b/gcc/stmt.c index 11c122b2b34..b7bf2f2ae6d 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -3444,10 +3444,10 @@ check_for_full_enumeration_handling (type) n = n->right) ; - if (!(n && tree_int_cst_equal (n->low, TREE_VALUE (chain)))) + if (!n || tree_int_cst_lt (TREE_VALUE (chain), n->low)) { if (warn_switch) - warning ("enumerated value `%s' not handled in switch", + warning ("enumeration value `%s' not handled in switch", IDENTIFIER_POINTER (TREE_PURPOSE (chain))); all_values = 0; } @@ -3473,6 +3473,21 @@ check_for_full_enumeration_handling (type) == IDENTIFIER_NODE) ? TYPE_NAME (type) : DECL_NAME (TYPE_NAME (type)))); + if (!tree_int_cst_equal (n->low, n->high)) + { + for (chain = TYPE_VALUES (type); + chain && !tree_int_cst_equal (n->high, TREE_VALUE (chain)); + chain = TREE_CHAIN (chain)) + ; + + if (!chain) + warning ("case value `%d' not in enumerated type `%s'", + TREE_INT_CST_LOW (n->high), + IDENTIFIER_POINTER ((TREE_CODE (TYPE_NAME (type)) + == IDENTIFIER_NODE) + ? TYPE_NAME (type) + : DECL_NAME (TYPE_NAME (type)))); + } } /* If all values were found as case labels, make one of them the default