From 272019beb01a9b7aef57e529e136741c3315dfde Mon Sep 17 00:00:00 2001 From: Rangi <35663410+Rangi42@users.noreply.github.com> Date: Thu, 14 Aug 2025 11:13:50 -0400 Subject: [PATCH] Fix line numbers from nested expansions (#1802) --- src/asm/lexer.cpp | 12 +- test/asm/expansion-diagnostics.asm | 8 ++ test/asm/expansion-diagnostics.err | 14 +++ test/asm/expansion-diagnostics.flags | 1 + test/asm/rept-macro-fstack-trace.err | 168 ++++++++++++++++++++++--- test/asm/rept-macro-fstack-trace.flags | 1 + 6 files changed, 176 insertions(+), 28 deletions(-) create mode 100644 test/asm/expansion-diagnostics.asm create mode 100644 test/asm/expansion-diagnostics.err create mode 100644 test/asm/expansion-diagnostics.flags create mode 100644 test/asm/rept-macro-fstack-trace.flags diff --git a/src/asm/lexer.cpp b/src/asm/lexer.cpp index fa7e6db2..9ef0c895 100644 --- a/src/asm/lexer.cpp +++ b/src/asm/lexer.cpp @@ -278,13 +278,9 @@ void LexerState::clear(uint32_t lineNo_) { } static void nextLine() { - ++lexerState->lineNo; -} - -static void nextLineOutsideExpansion() { // Newlines read within an expansion should not increase the line count if (lexerState->expansions.empty()) { - nextLine(); + ++lexerState->lineNo; } } @@ -872,7 +868,7 @@ static void discardBlockComment() { handleCRLF(c); [[fallthrough]]; case '\n': - nextLineOutsideExpansion(); + nextLine(); continue; case '/': if (peek() == '*') { @@ -903,7 +899,7 @@ static void discardLineContinuation() { } else if (isNewline(c)) { shiftChar(); handleCRLF(c); - nextLineOutsideExpansion(); + nextLine(); break; } else if (c == ';') { discardComment(); @@ -2250,7 +2246,7 @@ yy::parser::symbol_type yylex() { return yy::parser::make_YYEOF(); } if (lexerState->atLineStart) { - nextLineOutsideExpansion(); + nextLine(); } static Token (* const lexerModeFuncs[NB_LEXER_MODES])() = { diff --git a/test/asm/expansion-diagnostics.asm b/test/asm/expansion-diagnostics.asm new file mode 100644 index 00000000..353f9817 --- /dev/null +++ b/test/asm/expansion-diagnostics.asm @@ -0,0 +1,8 @@ +MACRO outer + DEF s EQUS "MACRO inner\nREPT 1\nWARN \"hello\"\nENDR\nENDM\ninner\n" + {s} + PURGE s + inner +ENDM +outer +inner diff --git a/test/asm/expansion-diagnostics.err b/test/asm/expansion-diagnostics.err new file mode 100644 index 00000000..0db4edc3 --- /dev/null +++ b/test/asm/expansion-diagnostics.err @@ -0,0 +1,14 @@ +warning: hello [-Wuser] + at expansion-diagnostics.asm::outer::inner::REPT~1(5) + <- expansion-diagnostics.asm::outer::inner(4) + <- expansion-diagnostics.asm::outer(3) + <- expansion-diagnostics.asm(7) +warning: hello [-Wuser] + at expansion-diagnostics.asm::outer::inner::REPT~1(5) + <- expansion-diagnostics.asm::outer::inner(4) + <- expansion-diagnostics.asm::outer(5) + <- expansion-diagnostics.asm(7) +warning: hello [-Wuser] + at expansion-diagnostics.asm::outer::inner::REPT~1(5) + <- expansion-diagnostics.asm::outer::inner(4) + <- expansion-diagnostics.asm(8) diff --git a/test/asm/expansion-diagnostics.flags b/test/asm/expansion-diagnostics.flags new file mode 100644 index 00000000..95904423 --- /dev/null +++ b/test/asm/expansion-diagnostics.flags @@ -0,0 +1 @@ +-B 0 diff --git a/test/asm/rept-macro-fstack-trace.err b/test/asm/rept-macro-fstack-trace.err index 6d80a172..b74f135d 100644 --- a/test/asm/rept-macro-fstack-trace.err +++ b/test/asm/rept-macro-fstack-trace.err @@ -1,40 +1,168 @@ warning: round 1 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1::REPT~1::REPT~1(13) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1(12) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~1(20) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1::REPT~1::REPT~1(13) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1(12) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~1(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 2 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1::REPT~1::REPT~2(13) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1(12) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~1(20) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1::REPT~1::REPT~2(13) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1(12) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~1(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 3 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2::REPT~2::REPT~1(13) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2(12) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~1(20) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2::REPT~2::REPT~1(13) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2(12) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~1(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 4 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2::REPT~2::REPT~2(13) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2(12) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~1(20) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2::REPT~2::REPT~2(13) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2(12) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~1(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 5 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1::REPT~1::REPT~1(13) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1(12) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~2(13) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1::REPT~1::REPT~1(13) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1(12) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~2(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 6 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1::REPT~1::REPT~2(13) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1(12) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~2(13) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1::REPT~1::REPT~2(13) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~1(12) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~2(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 7 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2::REPT~2::REPT~1(13) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2(12) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~2(13) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2::REPT~2::REPT~1(13) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2(12) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~2(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 8 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2::REPT~2::REPT~2(13) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2(12) <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~2(13) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2::REPT~2::REPT~2(13) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner::REPT~2(12) + <- rept-macro-fstack-trace.asm::outer::REPT~1::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~2(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 9 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1::REPT~1::REPT~1(13) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1(12) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~3(20) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1::REPT~1::REPT~1(13) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1(12) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~3(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 10 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1::REPT~1::REPT~2(13) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1(12) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~3(20) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1::REPT~1::REPT~2(13) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1(12) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~3(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 11 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2::REPT~2::REPT~1(13) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2(12) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~3(20) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2::REPT~2::REPT~1(13) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2(12) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~3(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 12 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2::REPT~2::REPT~2(13) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2(12) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~3(20) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2::REPT~2::REPT~2(13) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2(12) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~3(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 13 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1::REPT~1::REPT~1(13) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1(12) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~4(13) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1::REPT~1::REPT~1(13) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1(12) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~4(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 14 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1::REPT~1::REPT~2(13) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1(12) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~4(13) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1::REPT~1::REPT~2(13) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~1(12) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~4(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 15 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2::REPT~2::REPT~1(13) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2(12) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~4(13) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2::REPT~2::REPT~1(13) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2(12) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~4(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 16 [-Wuser] - at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2::REPT~2::REPT~2(13) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2(12) <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) <- rept-macro-fstack-trace.asm::outer::REPT~4(13) <- rept-macro-fstack-trace.asm::outer(4) <- rept-macro-fstack-trace.asm::REPT~1(18) <- rept-macro-fstack-trace.asm(17) + at rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2::REPT~2::REPT~2(13) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner::REPT~2(12) + <- rept-macro-fstack-trace.asm::outer::REPT~3::inner(11) + <- rept-macro-fstack-trace.asm::outer::REPT~4(13) + <- rept-macro-fstack-trace.asm::outer(4) + <- rept-macro-fstack-trace.asm::REPT~1(18) + <- rept-macro-fstack-trace.asm(17) warning: round 17 [-Wuser] - at rept-macro-fstack-trace.asm::foo::REPT~1::REPT~1::REPT~1(24) <- rept-macro-fstack-trace.asm::foo::REPT~1(23) <- rept-macro-fstack-trace.asm::foo(22) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~1::REPT~1::REPT~1(34) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~1(33) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar(32) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::REPT~1(38) <- rept-macro-fstack-trace.asm::REPT~1(30) <- rept-macro-fstack-trace.asm(29) + at rept-macro-fstack-trace.asm::foo::REPT~1::REPT~1::REPT~1(24) + <- rept-macro-fstack-trace.asm::foo::REPT~1(23) + <- rept-macro-fstack-trace.asm::foo(22) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~1::REPT~1::REPT~1(34) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~1(33) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar(32) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::REPT~1(38) + <- rept-macro-fstack-trace.asm::REPT~1(30) + <- rept-macro-fstack-trace.asm(29) warning: round 18 [-Wuser] - at rept-macro-fstack-trace.asm::foo::REPT~1::REPT~1::REPT~1(24) <- rept-macro-fstack-trace.asm::foo::REPT~1(23) <- rept-macro-fstack-trace.asm::foo(22) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~1::REPT~1::REPT~2(34) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~1(33) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar(32) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::REPT~1(38) <- rept-macro-fstack-trace.asm::REPT~1(30) <- rept-macro-fstack-trace.asm(29) + at rept-macro-fstack-trace.asm::foo::REPT~1::REPT~1::REPT~1(24) + <- rept-macro-fstack-trace.asm::foo::REPT~1(23) + <- rept-macro-fstack-trace.asm::foo(22) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~1::REPT~1::REPT~2(34) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~1(33) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar(32) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::REPT~1(38) + <- rept-macro-fstack-trace.asm::REPT~1(30) + <- rept-macro-fstack-trace.asm(29) warning: round 19 [-Wuser] - at rept-macro-fstack-trace.asm::foo::REPT~1::REPT~1::REPT~1(24) <- rept-macro-fstack-trace.asm::foo::REPT~1(23) <- rept-macro-fstack-trace.asm::foo(22) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~2::REPT~2::REPT~1(34) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~2(33) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar(32) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::REPT~1(38) <- rept-macro-fstack-trace.asm::REPT~1(30) <- rept-macro-fstack-trace.asm(29) + at rept-macro-fstack-trace.asm::foo::REPT~1::REPT~1::REPT~1(24) + <- rept-macro-fstack-trace.asm::foo::REPT~1(23) + <- rept-macro-fstack-trace.asm::foo(22) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~2::REPT~2::REPT~1(34) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~2(33) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar(32) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::REPT~1(38) + <- rept-macro-fstack-trace.asm::REPT~1(30) + <- rept-macro-fstack-trace.asm(29) warning: round 20 [-Wuser] - at rept-macro-fstack-trace.asm::foo::REPT~1::REPT~1::REPT~1(24) <- rept-macro-fstack-trace.asm::foo::REPT~1(23) <- rept-macro-fstack-trace.asm::foo(22) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~2::REPT~2::REPT~2(34) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~2(33) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar(32) <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::REPT~1(38) <- rept-macro-fstack-trace.asm::REPT~1(30) <- rept-macro-fstack-trace.asm(29) + at rept-macro-fstack-trace.asm::foo::REPT~1::REPT~1::REPT~1(24) + <- rept-macro-fstack-trace.asm::foo::REPT~1(23) + <- rept-macro-fstack-trace.asm::foo(22) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~2::REPT~2::REPT~2(34) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar::REPT~2(33) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::bar(32) + <- rept-macro-fstack-trace.asm::REPT~1::REPT~1::REPT~1(38) + <- rept-macro-fstack-trace.asm::REPT~1(30) + <- rept-macro-fstack-trace.asm(29) diff --git a/test/asm/rept-macro-fstack-trace.flags b/test/asm/rept-macro-fstack-trace.flags new file mode 100644 index 00000000..95904423 --- /dev/null +++ b/test/asm/rept-macro-fstack-trace.flags @@ -0,0 +1 @@ +-B 0