diff --git a/lib/libc/string/strcspn.c b/lib/libc/string/strcspn.c --- a/lib/libc/string/strcspn.c +++ b/lib/libc/string/strcspn.c @@ -34,40 +34,24 @@ #include #define IDX(c) ((u_char)(c) / LONG_BIT) -#define BIT(c) ((u_long)1 << ((u_char)(c) % LONG_BIT)) +#define BIT(c) (1UL << ((u_char)(c) % LONG_BIT)) size_t strcspn(const char *s, const char *charset) { - /* - * NB: idx and bit are temporaries whose use causes gcc 3.4.2 to - * generate better code. Without them, gcc gets a little confused. - */ const char *s1; - u_long bit; - u_long tbl[(UCHAR_MAX + 1) / LONG_BIT]; - int idx; - if(*s == '\0') + if (*s == '\0') return (0); -#if LONG_BIT == 64 /* always better to unroll on 64-bit architectures */ - tbl[0] = 1; - tbl[3] = tbl[2] = tbl[1] = 0; -#else - for (tbl[0] = idx = 1; idx < sizeof(tbl) / sizeof(tbl[0]); idx++) - tbl[idx] = 0; -#endif + u_long tbl[(UCHAR_MAX + 1) / LONG_BIT] = {1}; // Rest of array is 0s + for (; *charset != '\0'; charset++) { - idx = IDX(*charset); - bit = BIT(*charset); - tbl[idx] |= bit; + tbl[IDX(*charset)] |= BIT(*charset); } - for(s1 = s; ; s1++) { - idx = IDX(*s1); - bit = BIT(*s1); - if ((tbl[idx] & bit) != 0) + for (s1 = s; ; s1++) { + if ((tbl[IDX(*s1)] & BIT(*s1)) != 0) break; } return (s1 - s); diff --git a/lib/libc/string/strspn.c b/lib/libc/string/strspn.c --- a/lib/libc/string/strspn.c +++ b/lib/libc/string/strspn.c @@ -34,39 +34,24 @@ #include #define IDX(c) ((u_char)(c) / LONG_BIT) -#define BIT(c) ((u_long)1 << ((u_char)(c) % LONG_BIT)) +#define BIT(c) (1UL << ((u_char)(c) % LONG_BIT)) size_t strspn(const char *s, const char *charset) { - /* - * NB: idx and bit are temporaries whose use causes gcc 3.4.2 to - * generate better code. Without them, gcc gets a little confused. - */ const char *s1; - u_long bit; - u_long tbl[(UCHAR_MAX + 1) / LONG_BIT]; - int idx; - if(*s == '\0') + if (*s == '\0') return (0); -#if LONG_BIT == 64 /* always better to unroll on 64-bit architectures */ - tbl[3] = tbl[2] = tbl[1] = tbl[0] = 0; -#else - for (idx = 0; idx < sizeof(tbl) / sizeof(tbl[0]); idx++) - tbl[idx] = 0; -#endif + u_long tbl[(UCHAR_MAX + 1) / LONG_BIT] = {0}; + for (; *charset != '\0'; charset++) { - idx = IDX(*charset); - bit = BIT(*charset); - tbl[idx] |= bit; + tbl[IDX(*charset)] |= BIT(*charset); } - for(s1 = s; ; s1++) { - idx = IDX(*s1); - bit = BIT(*s1); - if ((tbl[idx] & bit) == 0) + for (s1 = s; ; s1++) { + if ((tbl[IDX(*s1)] & BIT(*s1)) == 0) break; } return (s1 - s); diff --git a/sys/libkern/fnmatch.c b/sys/libkern/fnmatch.c --- a/sys/libkern/fnmatch.c +++ b/sys/libkern/fnmatch.c @@ -50,21 +50,22 @@ #define RANGE_NOMATCH 0 #define RANGE_ERROR (-1) -static int rangematch(const char *, char, int, char **); +static int rangematch(const char *, char, const int, const char **); int fnmatch(const char *pattern, const char *string, int flags) { const char *stringstart; - char *newp; + const char *newp; char c, test; for (stringstart = string;;) switch (c = *pattern++) { case EOS: - if ((flags & FNM_LEADING_DIR) && *string == '/') + if (*string == EOS || (*string == '/' && + (flags & FNM_LEADING_DIR))) return (0); - return (*string == EOS ? 0 : FNM_NOMATCH); + return (FNM_NOMATCH); case '?': if (*string == EOS) return (FNM_NOMATCH); @@ -88,26 +89,27 @@ return (FNM_NOMATCH); /* Optimize for pattern with * at end or before /. */ - if (c == EOS) + if (c == EOS) { if (flags & FNM_PATHNAME) return ((flags & FNM_LEADING_DIR) || strchr(string, '/') == NULL ? 0 : FNM_NOMATCH); - else - return (0); - else if (c == '/' && flags & FNM_PATHNAME) { + + return (0); + } + + if (c == '/' && flags & FNM_PATHNAME) { if ((string = strchr(string, '/')) == NULL) return (FNM_NOMATCH); break; } /* General case, use recursion. */ - while ((test = *string) != EOS) { + for (; (test = *string) != EOS; ++string) { if (!fnmatch(pattern, string, flags & ~FNM_PERIOD)) return (0); - if (test == '/' && flags & FNM_PATHNAME) + if (test == '/' && (flags & FNM_PATHNAME)) break; - ++string; } return (FNM_NOMATCH); case '[': @@ -133,9 +135,10 @@ break; case '\\': if (!(flags & FNM_NOESCAPE)) { - if ((c = *pattern++) == EOS) { + if ((c = *pattern) == EOS) { c = '\\'; - --pattern; + } else { + ++pattern; } } /* FALLTHROUGH */ @@ -149,14 +152,14 @@ ; else return (FNM_NOMATCH); - string++; + ++string; break; } /* NOTREACHED */ } static int -rangematch(const char *pattern, char test, int flags, char **newp) +rangematch(const char *pattern, char test, const int flags, const char **newp) { int negate, ok; char c, c2; @@ -210,6 +213,6 @@ ok = 1; } while ((c = *pattern++) != ']'); - *newp = (char *)(uintptr_t)pattern; + *newp = pattern; return (ok == negate ? RANGE_NOMATCH : RANGE_MATCH); } diff --git a/sys/libkern/strcspn.c b/sys/libkern/strcspn.c --- a/sys/libkern/strcspn.c +++ b/sys/libkern/strcspn.c @@ -34,40 +34,23 @@ #include #define IDX(c) ((u_char)(c) / LONG_BIT) -#define BIT(c) ((u_long)1 << ((u_char)(c) % LONG_BIT)) +#define BIT(c) (1UL << ((u_char)(c) % LONG_BIT)) size_t strcspn(const char *s, const char *charset) { - /* - * NB: idx and bit are temporaries whose use causes gcc 3.4.2 to - * generate better code. Without them, gcc gets a little confused. - */ const char *s1; - u_long bit; - u_long tbl[(UCHAR_MAX + 1) / LONG_BIT]; - int idx; - if(*s == '\0') + if (*s == '\0') return (0); -#if LONG_BIT == 64 /* always better to unroll on 64-bit architectures */ - tbl[0] = 1; - tbl[3] = tbl[2] = tbl[1] = 0; -#else - for (tbl[0] = idx = 1; idx < sizeof(tbl) / sizeof(tbl[0]); idx++) - tbl[idx] = 0; -#endif + u_long tbl[(UCHAR_MAX + 1) / LONG_BIT] = {1}; // Rest of array is zeroes for (; *charset != '\0'; charset++) { - idx = IDX(*charset); - bit = BIT(*charset); - tbl[idx] |= bit; + tbl[IDX(*charset)] |= BIT(*charset); } for(s1 = s; ; s1++) { - idx = IDX(*s1); - bit = BIT(*s1); - if ((tbl[idx] & bit) != 0) + if ((tbl[IDX(*s1)] & BIT(*s1)) != 0) break; } return (s1 - s); diff --git a/sys/libkern/strspn.c b/sys/libkern/strspn.c --- a/sys/libkern/strspn.c +++ b/sys/libkern/strspn.c @@ -34,39 +34,24 @@ #include #define IDX(c) ((u_char)(c) / LONG_BIT) -#define BIT(c) ((u_long)1 << ((u_char)(c) % LONG_BIT)) +#define BIT(c) (1UL << ((u_char)(c) % LONG_BIT)) size_t strspn(const char *s, const char *charset) { - /* - * NB: idx and bit are temporaries whose use causes gcc 3.4.2 to - * generate better code. Without them, gcc gets a little confused. - */ const char *s1; - u_long bit; - u_long tbl[(UCHAR_MAX + 1) / LONG_BIT]; - int idx; - if(*s == '\0') + if (*s == '\0') return (0); -#if LONG_BIT == 64 /* always better to unroll on 64-bit architectures */ - tbl[3] = tbl[2] = tbl[1] = tbl[0] = 0; -#else - for (idx = 0; idx < sizeof(tbl) / sizeof(tbl[0]); idx++) - tbl[idx] = 0; -#endif + u_long tbl[(UCHAR_MAX + 1) / LONG_BIT] = {0}; + for (; *charset != '\0'; charset++) { - idx = IDX(*charset); - bit = BIT(*charset); - tbl[idx] |= bit; + tbl[IDX(*charset)] |= BIT(*charset); } - for(s1 = s; ; s1++) { - idx = IDX(*s1); - bit = BIT(*s1); - if ((tbl[idx] & bit) == 0) + for (s1 = s; ; s1++) { + if ((tbl[IDX(*s1)] & BIT(*s1)) == 0) break; } return (s1 - s); diff --git a/sys/netgraph/ng_socket.c b/sys/netgraph/ng_socket.c --- a/sys/netgraph/ng_socket.c +++ b/sys/netgraph/ng_socket.c @@ -428,7 +428,7 @@ } if (sap == NULL) { - len = 0; /* Make compiler happy. */ + goto noaddress; } else { if (sap->sg_len > NG_NODESIZ + offsetof(struct sockaddr_ng, sg_data)) { @@ -442,7 +442,8 @@ * If the user used any of these ways to not specify an address * then handle specially. */ - if ((sap == NULL) || (len <= 0) || (*sap->sg_data == '\0')) { + if ((len <= 0) || (*sap->sg_data == '\0')) { +noaddress: if (NG_NODE_NUMHOOKS(pcbp->sockdata->node) != 1) { error = EDESTADDRREQ; goto release; diff --git a/sys/netinet/tcp_lro.c b/sys/netinet/tcp_lro.c --- a/sys/netinet/tcp_lro.c +++ b/sys/netinet/tcp_lro.c @@ -524,9 +524,8 @@ uint16_t len; csum = -th->th_sum; /* exclude checksum field */ - len = th->th_off; ptr = (const uint16_t *)th; - while (len--) { + for (len = th->th_off; len != 0; len--) { csum += *ptr; ptr++; csum += *ptr; @@ -708,7 +707,7 @@ { uint32_t csum; uint16_t tlen; - uint16_t temp[5] = {}; + uint16_t temp[5] = {0}; switch (pa->data.lro_type) { case LRO_TYPE_IPV4_TCP: @@ -1418,58 +1417,57 @@ uint32_t x; uint32_t y; -repeat: - /* for small arrays insertion sort is faster */ - if (size <= 12) { - for (x = 1; x < size; x++) { - temp = parray[x]; - for (y = x; y > 0 && temp.seq < parray[y - 1].seq; y--) - parray[y] = parray[y - 1]; - parray[y] = temp; + for (;;) { + /* for small arrays insertion sort is faster */ + if (size <= 12) { + for (x = 1; x < size; x++) { + temp = parray[x]; + for (y = x; y > 0 && temp.seq < parray[y - 1].seq; y--) + parray[y] = parray[y - 1]; + parray[y] = temp; + } + return; } - return; - } - /* compute sequence bits which are constant */ - ones = 0; - zeros = 0; - for (x = 0; x != size; x++) { - ones |= parray[x].seq; - zeros |= ~parray[x].seq; - } + /* compute sequence bits which are constant */ + ones = 0; + zeros = 0; + for (x = 0; x != size; x++) { + ones |= parray[x].seq; + zeros |= ~parray[x].seq; + } - /* compute bits which are not constant into "ones" */ - ones &= zeros; - if (ones == 0) - return; + /* compute bits which are not constant into "ones" */ + ones &= zeros; + if (ones == 0) + return; - /* pick the most significant bit which is not constant */ - ones = tcp_lro_msb_64(ones); + /* pick the most significant bit which is not constant */ + ones = tcp_lro_msb_64(ones); - /* - * Move entries having cleared sequence bits to the beginning - * of the array: - */ - for (x = y = 0; y != size; y++) { - /* skip set bits */ - if (parray[y].seq & ones) - continue; - /* swap entries */ - temp = parray[x]; - parray[x] = parray[y]; - parray[y] = temp; - x++; - } + /* + * Move entries having cleared sequence bits to the beginning + * of the array: + */ + for (x = y = 0; y != size; x++, y++) { + /* skip set bits */ + if (parray[y].seq & ones) + continue; + /* swap entries */ + temp = parray[x]; + parray[x] = parray[y]; + parray[y] = temp; + } - KASSERT(x != 0 && x != size, ("Memory is corrupted\n")); + KASSERT(x != 0 && x != size, ("Memory is corrupted\n")); - /* sort zeros */ - tcp_lro_sort(parray, x); + /* sort zeros */ + tcp_lro_sort(parray, x); - /* sort ones */ - parray += x; - size -= x; - goto repeat; + /* sort ones */ + parray += x; + size -= x; + } } void diff --git a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c --- a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c +++ b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c @@ -503,14 +503,15 @@ if (snmptoolctx == NULL || snmptoolctx->mappings == NULL || entry == NULL) - return(-1); + return (-1); if ((prev = SLIST_FIRST(&snmptoolctx->snmp_tablelist)) == NULL || asn_compare_oid(&(entry->var), &(prev->var)) < 0) { SLIST_INSERT_HEAD(&snmptoolctx->snmp_tablelist, entry, link); return (1); - } else - rc = -1; /* Make the compiler happy. */ + } + + rc = -1; SLIST_FOREACH(temp, &snmptoolctx->snmp_tablelist, link) { if ((rc = asn_compare_oid(&(entry->var), &(temp->var))) <= 0)