mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 10:12:06 +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)
|
||||
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
|
||||
-Wuninitialized -Wunknown-pragmas -Wstrict-overflow=5
|
||||
-Wstringop-overflow=4 -Walloc-zero -Wduplicated-cond
|
||||
|
||||
2
Makefile
2
Makefile
@@ -187,7 +187,7 @@ checkpatch:
|
||||
|
||||
develop:
|
||||
$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 \
|
||||
-Wuninitialized -Wunknown-pragmas -Wstrict-overflow=5 \
|
||||
-Wstringop-overflow=4 -Walloc-zero -Wduplicated-cond \
|
||||
|
||||
@@ -897,11 +897,14 @@ void lexer_DumpStringExpansions(void)
|
||||
{
|
||||
if (!lexerState)
|
||||
return;
|
||||
struct Expansion *stack[nMaxRecursionDepth + 1];
|
||||
struct Expansion **stack = malloc(sizeof(*stack) * (nMaxRecursionDepth + 1));
|
||||
struct Expansion *expansion; /* Temp var for `lookupExpansion` */
|
||||
unsigned int depth = 0;
|
||||
size_t distance = lexerState->expansionOfs;
|
||||
|
||||
if (!stack)
|
||||
fatalerror("Failed to alloc string expansion stack: %s\n", strerror(errno));
|
||||
|
||||
#define LOOKUP_PRE_NEST(exp) do { \
|
||||
/* Only register EQUS expansions, not string args */ \
|
||||
if ((exp)->name) \
|
||||
@@ -915,6 +918,7 @@ void lexer_DumpStringExpansions(void)
|
||||
|
||||
while (depth--)
|
||||
fprintf(stderr, "while expanding symbol \"%s\"\n", stack[depth]->name);
|
||||
free(stack);
|
||||
}
|
||||
|
||||
/* Function to discard all of a line's comments */
|
||||
|
||||
Reference in New Issue
Block a user