diff --git a/7.3.740 b/7.3.740 new file mode 100644 index 0000000..80c7609 --- /dev/null +++ b/7.3.740 @@ -0,0 +1,168 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.740 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.740 +Problem: IOC tool complains about undefined behavior for int. +Solution: Change to unsigned int. (Dominique Pelle) +Files: src/hashtab.c, src/misc2.c + + +*** ../vim-7.3.739/src/hashtab.c 2010-08-15 21:57:25.000000000 +0200 +--- src/hashtab.c 2012-11-28 18:27:46.000000000 +0100 +*************** +*** 138,144 **** + hash_T perturb; + hashitem_T *freeitem; + hashitem_T *hi; +! int idx; + + #ifdef HT_DEBUG + ++hash_count_lookup; +--- 138,144 ---- + hash_T perturb; + hashitem_T *freeitem; + hashitem_T *hi; +! unsigned idx; + + #ifdef HT_DEBUG + ++hash_count_lookup; +*************** +*** 150,156 **** + * - skip over a removed item + * - return if the item matches + */ +! idx = (int)(hash & ht->ht_mask); + hi = &ht->ht_array[idx]; + + if (hi->hi_key == NULL) +--- 150,156 ---- + * - skip over a removed item + * - return if the item matches + */ +! idx = (unsigned)(hash & ht->ht_mask); + hi = &ht->ht_array[idx]; + + if (hi->hi_key == NULL) +*************** +*** 176,182 **** + #ifdef HT_DEBUG + ++hash_count_perturb; /* count a "miss" for hashtab lookup */ + #endif +! idx = (int)((idx << 2) + idx + perturb + 1); + hi = &ht->ht_array[idx & ht->ht_mask]; + if (hi->hi_key == NULL) + return freeitem == NULL ? hi : freeitem; +--- 176,182 ---- + #ifdef HT_DEBUG + ++hash_count_perturb; /* count a "miss" for hashtab lookup */ + #endif +! idx = (unsigned)((idx << 2U) + idx + perturb + 1U); + hi = &ht->ht_array[idx & ht->ht_mask]; + if (hi->hi_key == NULL) + return freeitem == NULL ? hi : freeitem; +*************** +*** 342,348 **** + hashitem_T temparray[HT_INIT_SIZE]; + hashitem_T *oldarray, *newarray; + hashitem_T *olditem, *newitem; +! int newi; + int todo; + long_u oldsize, newsize; + long_u minsize; +--- 342,348 ---- + hashitem_T temparray[HT_INIT_SIZE]; + hashitem_T *oldarray, *newarray; + hashitem_T *olditem, *newitem; +! unsigned newi; + int todo; + long_u oldsize, newsize; + long_u minsize; +*************** +*** 448,460 **** + * the algorithm to find an item in hash_lookup(). But we only + * need to search for a NULL key, thus it's simpler. + */ +! newi = (int)(olditem->hi_hash & newmask); + newitem = &newarray[newi]; + + if (newitem->hi_key != NULL) + for (perturb = olditem->hi_hash; ; perturb >>= PERTURB_SHIFT) + { +! newi = (int)((newi << 2) + newi + perturb + 1); + newitem = &newarray[newi & newmask]; + if (newitem->hi_key == NULL) + break; +--- 448,460 ---- + * the algorithm to find an item in hash_lookup(). But we only + * need to search for a NULL key, thus it's simpler. + */ +! newi = (unsigned)(olditem->hi_hash & newmask); + newitem = &newarray[newi]; + + if (newitem->hi_key != NULL) + for (perturb = olditem->hi_hash; ; perturb >>= PERTURB_SHIFT) + { +! newi = (unsigned)((newi << 2U) + newi + perturb + 1U); + newitem = &newarray[newi & newmask]; + if (newitem->hi_key == NULL) + break; +*** ../vim-7.3.739/src/misc2.c 2012-08-15 16:20:59.000000000 +0200 +--- src/misc2.c 2012-11-28 18:27:46.000000000 +0100 +*************** +*** 3860,3866 **** + ush temp; \ + \ + temp = (ush)keys[2] | 2; \ +! t = (int)(((unsigned)(temp * (temp ^ 1)) >> 8) & 0xff); \ + } + + /* +--- 3860,3866 ---- + ush temp; \ + \ + temp = (ush)keys[2] | 2; \ +! t = (int)(((unsigned)(temp * (temp ^ 1U)) >> 8) & 0xff); \ + } + + /* +*************** +*** 4002,4008 **** + ush temp; + + temp = (ush)keys[2] | 2; +! temp = (int)(((unsigned)(temp * (temp ^ 1)) >> 8) & 0xff); + UPDATE_KEYS_ZIP(*p ^= temp); + } + else +--- 4002,4008 ---- + ush temp; + + temp = (ush)keys[2] | 2; +! temp = (int)(((unsigned)(temp * (temp ^ 1U)) >> 8) & 0xff); + UPDATE_KEYS_ZIP(*p ^= temp); + } + else +*** ../vim-7.3.739/src/version.c 2012-11-28 18:22:04.000000000 +0100 +--- src/version.c 2012-11-28 18:28:00.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 740, + /**/ + +-- +From "know your smileys": + ~#:-( I just washed my hair, and I can't do nuthin' with it. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///