mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-27 14:58:30 +00:00
Fix warnings
This change fixes Cosmopolitan so it has fewer opinions about compiler warnings. The whole repository had to be cleaned up to be buildable in -Werror -Wall mode. This lets us benefit from things like strict const checking. Some actual bugs might have been caught too.
This commit is contained in:
parent
e2b3c3618e
commit
0d748ad58e
571 changed files with 1306 additions and 1888 deletions
|
@ -31,9 +31,3 @@ TEST(memcasecmp, test) {
|
|||
EXPECT_EQ(0, memcasecmp("\0ELLo\0ELLo", "\0ELLO\0ELLO", 10));
|
||||
EXPECT_NE(0, memcasecmp("\0ELLo\0ELLo", "\0ELL-\0ELL-", 10));
|
||||
}
|
||||
|
||||
BENCH(memcasecmp, bench) {
|
||||
volatile char *copy = gc(strdup(kHyperion));
|
||||
EZBENCH2("memcasecmp", donothing,
|
||||
__expropriate(memcasecmp(kHyperion, copy, kHyperionSize)));
|
||||
}
|
||||
|
|
|
@ -136,30 +136,6 @@ TEST(memcpy, overlapping_isFineIfCopyingBackwards) {
|
|||
}
|
||||
}
|
||||
|
||||
TEST(stpcpy, test) {
|
||||
volatile char *p;
|
||||
volatile char b[16];
|
||||
volatile const char *s1 = "hello";
|
||||
volatile const char *s2 = "there";
|
||||
p = b;
|
||||
p = stpcpy(p, s1);
|
||||
EXPECT_EQ((intptr_t)b + 5, (intptr_t)p);
|
||||
EXPECT_STREQ("hello", b);
|
||||
p = stpcpy(p, s2);
|
||||
EXPECT_EQ((intptr_t)b + 10, (intptr_t)p);
|
||||
EXPECT_STREQ("hellothere", b);
|
||||
}
|
||||
|
||||
TEST(memcpy, testBackwardsOverlap3) {
|
||||
volatile char *c;
|
||||
c = malloc(3);
|
||||
memcpy(c, "\e[C", 3);
|
||||
memcpy(c, c + 1, __veil("r", 3) - 1);
|
||||
EXPECT_EQ('[', c[0]);
|
||||
EXPECT_EQ('C', c[1]);
|
||||
free(c);
|
||||
}
|
||||
|
||||
#define B(F, N) \
|
||||
do { \
|
||||
char *d = rngset(malloc(N), N, _rand64, -1); \
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
void *memmem_naive(const void *haystk, size_t haystklen, //
|
||||
const void *needle, size_t needlelen) {
|
||||
size_t i, j;
|
||||
if (!needlelen) return haystk;
|
||||
if (!needlelen) return (void *)haystk;
|
||||
if (needlelen > haystklen) return 0;
|
||||
for (i = 0; i < haystklen; ++i) {
|
||||
for (j = 0;; ++j) {
|
||||
|
@ -155,7 +155,7 @@ TEST(memmem, testWut) {
|
|||
}
|
||||
|
||||
TEST(memmem, fuzz) {
|
||||
int i, j, k, n, m;
|
||||
int i, n, m;
|
||||
char a[128], b[128], *p, *q;
|
||||
for (i = 0; i < 10000; ++i) {
|
||||
rngset(a, sizeof(a), lemur64, -1);
|
||||
|
|
|
@ -33,8 +33,7 @@
|
|||
|
||||
char *strcasestr_naive(const char *haystack, const char *needle) {
|
||||
size_t i;
|
||||
unsigned k, m;
|
||||
if (haystack == needle || !*needle) return haystack;
|
||||
if (haystack == needle || !*needle) return (void *)haystack;
|
||||
for (;;) {
|
||||
for (i = 0;; ++i) {
|
||||
if (!needle[i]) return (/*unconst*/ char *)haystack;
|
||||
|
|
|
@ -32,8 +32,7 @@
|
|||
|
||||
char *strstr_naive(const char *haystack, const char *needle) {
|
||||
size_t i;
|
||||
unsigned k, m;
|
||||
if (haystack == needle || !*needle) return haystack;
|
||||
if (haystack == needle || !*needle) return (void *)haystack;
|
||||
for (;;) {
|
||||
for (i = 0;; ++i) {
|
||||
if (!needle[i]) return (/*unconst*/ char *)haystack;
|
||||
|
|
|
@ -76,6 +76,5 @@ TEST(strwidth, testTextDelimitingControlCodes_dontHaveSubstance) {
|
|||
}
|
||||
|
||||
BENCH(wcwidth, bench) {
|
||||
volatile int x;
|
||||
EZBENCH2("wcwidth", donothing, x = wcwidth(__veil("r", u'→')));
|
||||
EZBENCH2("wcwidth", donothing, __expropriate(wcwidth(__veil("r", u'→'))));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue