1
0
mirror of https://git.savannah.gnu.org/git/gperf.git synced 2025-12-02 21:19:24 +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> 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 * src/key-list.cc (output_keyword_entry): Avoid outputting a struct
initializer of the form {"key",}. 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");) T (Trace t ("Key_List::output_lookup_function_body");)
printf (" if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)\n" /* Since `len' is of type `unsigned int', we can avoid comparing it
" {\n" 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", " register int key = %s (str, len);\n\n",
option.get_hash_name ()); option.get_hash_name ());