From 20c18256edba3086c17875f7e6ef7774504e2103 Mon Sep 17 00:00:00 2001 From: Rangi <35663410+Rangi42@users.noreply.github.com> Date: Sat, 25 Jan 2025 12:38:17 -0500 Subject: [PATCH] Avoid errors after missing `INCLUDE` with `-MG` (#1627) --- src/asm/main.cpp | 14 ++++++++------ test/asm/errors-after-missing-include.asm | 10 ++++++++++ test/asm/errors-after-missing-include.flags | 1 + 3 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 test/asm/errors-after-missing-include.asm create mode 100644 test/asm/errors-after-missing-include.flags diff --git a/src/asm/main.cpp b/src/asm/main.cpp index 66713a1c..2be5ab74 100644 --- a/src/asm/main.cpp +++ b/src/asm/main.cpp @@ -385,13 +385,15 @@ int main(int argc, char *argv[]) { if (yy::parser parser; parser.parse() != 0 && nbErrors == 0) nbErrors = 1; - sect_CheckUnionClosed(); - sect_CheckLoadClosed(); - sect_CheckSizes(); + if (!failedOnMissingInclude) { + sect_CheckUnionClosed(); + sect_CheckLoadClosed(); + sect_CheckSizes(); - charmap_CheckStack(); - opt_CheckStack(); - sect_CheckStack(); + charmap_CheckStack(); + opt_CheckStack(); + sect_CheckStack(); + } if (nbErrors != 0) errx("Assembly aborted (%u error%s)!", nbErrors, nbErrors == 1 ? "" : "s"); diff --git a/test/asm/errors-after-missing-include.asm b/test/asm/errors-after-missing-include.asm new file mode 100644 index 00000000..fae85b9e --- /dev/null +++ b/test/asm/errors-after-missing-include.asm @@ -0,0 +1,10 @@ +PUSHC +PUSHO +PUSHS +SECTION "test", WRAM0 +UNION +INCLUDE "does not exist" +ENDU +POPS +POPO +POPC diff --git a/test/asm/errors-after-missing-include.flags b/test/asm/errors-after-missing-include.flags new file mode 100644 index 00000000..171d03a2 --- /dev/null +++ b/test/asm/errors-after-missing-include.flags @@ -0,0 +1 @@ +-Weverything -M /dev/null -MG