Enable -Wsign-compare and fix the warnings

This commit is contained in:
ISSOtm
2022-02-05 14:19:25 +01:00
committed by Eldred Habert
parent 72b677a8d7
commit ac59ecf3c0
7 changed files with 11 additions and 15 deletions

View File

@@ -54,7 +54,6 @@ else()
-Wold-style-definition -Wshift-overflow=2 -Wstrict-overflow=5 -Wold-style-definition -Wshift-overflow=2 -Wstrict-overflow=5
-Wstrict-prototypes -Wstringop-overflow=4 -Wundef -Wuninitialized -Wunused -Wstrict-prototypes -Wstringop-overflow=4 -Wundef -Wuninitialized -Wunused
-Wshadow # TODO: -Wshadow=compatible-local ? -Wshadow # TODO: -Wshadow=compatible-local ?
-Wno-sign-compare # TODO: fix those warnings
-Wformat=2 -Wformat-overflow=2 -Wformat-truncation=1 -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=1
-Wno-format-nonliteral # We have a couple of "dynamic" prints -Wno-format-nonliteral # We have a couple of "dynamic" prints
# We do some range checks that are always false on some platforms (GCC, Clang) # We do some range checks that are always false on some platforms (GCC, Clang)

View File

@@ -219,7 +219,6 @@ develop:
-Wstrict-overflow=5 -Wstrict-prototypes -Wundef -Wuninitialized -Wunused \ -Wstrict-overflow=5 -Wstrict-prototypes -Wundef -Wuninitialized -Wunused \
-Wshadow \ -Wshadow \
-Wnull-dereference -Wstringop-overflow=4 \ -Wnull-dereference -Wstringop-overflow=4 \
-Wno-sign-compare \
-Wformat=2 -Wformat-overflow=2 -Wformat-truncation=1 \ -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=1 \
-Wno-format-nonliteral \ -Wno-format-nonliteral \
-Wno-type-limits -Wno-tautological-constant-out-of-range-compare \ -Wno-type-limits -Wno-tautological-constant-out-of-range-compare \

View File

@@ -24,7 +24,7 @@ struct Options {
bool mirror; bool mirror;
bool unique; bool unique;
bool colorcurve; bool colorcurve;
int trim; unsigned int trim;
char *tilemapfile; char *tilemapfile;
bool tilemapout; bool tilemapout;
char *attrmapfile; char *attrmapfile;
@@ -43,7 +43,7 @@ struct RGBColor {
struct ImageOptions { struct ImageOptions {
bool horizontal; bool horizontal;
int trim; unsigned int trim;
char *tilemapfile; char *tilemapfile;
bool tilemapout; bool tilemapout;
char *attrmapfile; char *attrmapfile;

View File

@@ -192,7 +192,7 @@ static uint32_t getsectid(struct Section const *sect)
static uint32_t getSectIDIfAny(struct Section const *sect) static uint32_t getSectIDIfAny(struct Section const *sect)
{ {
return sect ? getsectid(sect) : -1; return sect ? getsectid(sect) : (uint32_t)-1;
} }
/* /*
@@ -200,7 +200,7 @@ static uint32_t getSectIDIfAny(struct Section const *sect)
*/ */
static void writepatch(struct Patch const *patch, FILE *f) static void writepatch(struct Patch const *patch, FILE *f)
{ {
assert(patch->src->ID != -1); assert(patch->src->ID != (uint32_t)-1);
putlong(patch->src->ID, f); putlong(patch->src->ID, f);
putlong(patch->lineNo, f); putlong(patch->lineNo, f);
putlong(patch->offset, f); putlong(patch->offset, f);
@@ -264,7 +264,7 @@ static void writesymbol(struct Symbol const *sym, FILE *f)
if (!sym_IsDefined(sym)) { if (!sym_IsDefined(sym)) {
putc(SYMTYPE_IMPORT, f); putc(SYMTYPE_IMPORT, f);
} else { } else {
assert(sym->src->ID != -1); assert(sym->src->ID != (uint32_t)-1);
putc(sym->isExported ? SYMTYPE_EXPORT : SYMTYPE_LOCAL, f); putc(sym->isExported ? SYMTYPE_EXPORT : SYMTYPE_LOCAL, f);
putlong(sym->src->ID, f); putlong(sym->src->ID, f);
@@ -490,7 +490,7 @@ static void freeassert(struct Assertion *assert)
static void writeFileStackNode(struct FileStackNode const *node, FILE *f) static void writeFileStackNode(struct FileStackNode const *node, FILE *f)
{ {
putlong(node->parent ? node->parent->ID : -1, f); putlong(node->parent ? node->parent->ID : (uint32_t)-1, f);
putlong(node->lineNo, f); putlong(node->lineNo, f);
putc(node->type, f); putc(node->type, f);
if (node->type != NODE_REPT) { if (node->type != NODE_REPT) {

View File

@@ -37,15 +37,14 @@ void transpose_tiles(struct GBImage *gb, int width)
void raw_to_gb(const struct RawIndexedImage *raw_image, struct GBImage *gb) void raw_to_gb(const struct RawIndexedImage *raw_image, struct GBImage *gb)
{ {
int x, y, byte;
uint8_t index; uint8_t index;
for (y = 0; y < raw_image->height; y++) { for (unsigned int y = 0; y < raw_image->height; y++) {
for (x = 0; x < raw_image->width; x++) { for (unsigned int x = 0; x < raw_image->width; x++) {
index = raw_image->data[y][x]; index = raw_image->data[y][x];
index &= (1 << depth) - 1; index &= (1 << depth) - 1;
byte = y * depth unsigned int byte = y * depth
+ x / 8 * raw_image->height / 8 * 8 * depth; + x / 8 * raw_image->height / 8 * 8 * depth;
gb->data[byte] |= (index & 1) << (7 - x % 8); gb->data[byte] |= (index & 1) << (7 - x % 8);
if (depth == 2) { if (depth == 2) {

View File

@@ -142,10 +142,9 @@ void output_png_file(const struct Options *opts,
void destroy_raw_image(struct RawIndexedImage **raw_image_ptr_ptr) void destroy_raw_image(struct RawIndexedImage **raw_image_ptr_ptr)
{ {
int y;
struct RawIndexedImage *raw_image = *raw_image_ptr_ptr; struct RawIndexedImage *raw_image = *raw_image_ptr_ptr;
for (y = 0; y < raw_image->height; y++) for (unsigned int y = 0; y < raw_image->height; y++)
free(raw_image->data[y]); free(raw_image->data[y]);
free(raw_image->data); free(raw_image->data);

View File

@@ -111,7 +111,7 @@ static uint32_t getRPNByte(uint8_t const **expression, int32_t *size,
static struct Symbol const *getSymbol(struct Symbol const * const *symbolList, static struct Symbol const *getSymbol(struct Symbol const * const *symbolList,
uint32_t index) uint32_t index)
{ {
assert(index != -1); /* PC needs to be handled specially, not here */ assert(index != (uint32_t)-1); /* PC needs to be handled specially, not here */
struct Symbol const *symbol = symbolList[index]; struct Symbol const *symbol = symbolList[index];
/* If the symbol is defined elsewhere... */ /* If the symbol is defined elsewhere... */