1
0
mirror of https://git.savannah.gnu.org/git/gperf.git synced 2025-12-02 13:09:22 +00:00

Avoid generating stupid but correct code.

This commit is contained in:
Bruno Haible
2000-08-19 10:53:56 +00:00
parent ab051c5b60
commit 214e2c12b8
2 changed files with 11 additions and 2 deletions

View File

@@ -1,5 +1,8 @@
2000-08-19 Bruno Haible <bruno@linuix.math.u-bordeaux.fr>
* src/key-list.cc (Key_List::output_lookup_function_body): Avoid
outputting a trivially satisfied test for len.
* src/key-list.cc (output_keyword_entry): Avoid outputting a struct
initializer of the form {"key",}.

View File

@@ -1523,8 +1523,14 @@ Key_List::output_lookup_function_body (const Output_Compare& comparison)
{
T (Trace t ("Key_List::output_lookup_function_body");)
printf (" if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)\n"
" {\n"
/* Since `len' is of type `unsigned int', we can avoid comparing it
against zero. */
if (min_key_len == 0)
printf (" if (len <= MAX_WORD_LENGTH)\n");
else
printf (" if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)\n");
printf (" {\n"
" register int key = %s (str, len);\n\n",
option.get_hash_name ());