Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F143125790
D31666.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
11 KB
Referenced Files
None
Subscribers
None
D31666.diff
View Options
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 <string.h>
#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 <string.h>
#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 <sys/limits.h>
#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 <sys/types.h>
#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)
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Jan 27, 7:26 AM (9 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28036878
Default Alt Text
D31666.diff (11 KB)
Attached To
Mode
D31666: Remove compiler hacks
Attached
Detach File
Event Timeline
Log In to Comment