mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
Avoid using VLA in EQUS dumping
MSVC does not support those... Also add a `develop` warning about VLAs, to avoid future incidents
This commit is contained in:
@@ -45,7 +45,7 @@ else()
|
|||||||
|
|
||||||
if(MORE_WARNINGS)
|
if(MORE_WARNINGS)
|
||||||
add_compile_options(-Werror -Wextra -Wno-type-limits
|
add_compile_options(-Werror -Wextra -Wno-type-limits
|
||||||
-Wno-sign-compare -Wformat -Wformat-security -Wformat-overflow=2
|
-Wno-sign-compare -Wvla -Wformat -Wformat-security -Wformat-overflow=2
|
||||||
-Wformat-truncation=1 -Wformat-y2k -Wswitch-enum -Wunused
|
-Wformat-truncation=1 -Wformat-y2k -Wswitch-enum -Wunused
|
||||||
-Wuninitialized -Wunknown-pragmas -Wstrict-overflow=5
|
-Wuninitialized -Wunknown-pragmas -Wstrict-overflow=5
|
||||||
-Wstringop-overflow=4 -Walloc-zero -Wduplicated-cond
|
-Wstringop-overflow=4 -Walloc-zero -Wduplicated-cond
|
||||||
|
|||||||
2
Makefile
2
Makefile
@@ -187,7 +187,7 @@ checkpatch:
|
|||||||
|
|
||||||
develop:
|
develop:
|
||||||
$Qenv $(MAKE) -j WARNFLAGS="-Werror -Wall -Wextra -Wpedantic -Wno-type-limits \
|
$Qenv $(MAKE) -j WARNFLAGS="-Werror -Wall -Wextra -Wpedantic -Wno-type-limits \
|
||||||
-Wno-sign-compare -Wformat -Wformat-security -Wformat-overflow=2 \
|
-Wno-sign-compare -Wvla -Wformat -Wformat-security -Wformat-overflow=2 \
|
||||||
-Wformat-truncation=1 -Wformat-y2k -Wswitch-enum -Wunused \
|
-Wformat-truncation=1 -Wformat-y2k -Wswitch-enum -Wunused \
|
||||||
-Wuninitialized -Wunknown-pragmas -Wstrict-overflow=5 \
|
-Wuninitialized -Wunknown-pragmas -Wstrict-overflow=5 \
|
||||||
-Wstringop-overflow=4 -Walloc-zero -Wduplicated-cond \
|
-Wstringop-overflow=4 -Walloc-zero -Wduplicated-cond \
|
||||||
|
|||||||
@@ -897,11 +897,14 @@ void lexer_DumpStringExpansions(void)
|
|||||||
{
|
{
|
||||||
if (!lexerState)
|
if (!lexerState)
|
||||||
return;
|
return;
|
||||||
struct Expansion *stack[nMaxRecursionDepth + 1];
|
struct Expansion **stack = malloc(sizeof(*stack) * (nMaxRecursionDepth + 1));
|
||||||
struct Expansion *expansion; /* Temp var for `lookupExpansion` */
|
struct Expansion *expansion; /* Temp var for `lookupExpansion` */
|
||||||
unsigned int depth = 0;
|
unsigned int depth = 0;
|
||||||
size_t distance = lexerState->expansionOfs;
|
size_t distance = lexerState->expansionOfs;
|
||||||
|
|
||||||
|
if (!stack)
|
||||||
|
fatalerror("Failed to alloc string expansion stack: %s\n", strerror(errno));
|
||||||
|
|
||||||
#define LOOKUP_PRE_NEST(exp) do { \
|
#define LOOKUP_PRE_NEST(exp) do { \
|
||||||
/* Only register EQUS expansions, not string args */ \
|
/* Only register EQUS expansions, not string args */ \
|
||||||
if ((exp)->name) \
|
if ((exp)->name) \
|
||||||
@@ -915,6 +918,7 @@ void lexer_DumpStringExpansions(void)
|
|||||||
|
|
||||||
while (depth--)
|
while (depth--)
|
||||||
fprintf(stderr, "while expanding symbol \"%s\"\n", stack[depth]->name);
|
fprintf(stderr, "while expanding symbol \"%s\"\n", stack[depth]->name);
|
||||||
|
free(stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Function to discard all of a line's comments */
|
/* Function to discard all of a line's comments */
|
||||||
|
|||||||
Reference in New Issue
Block a user