diff --git a/Changes b/Changes index a2b96cf76..64c4f6832 100644 --- a/Changes +++ b/Changes @@ -33,6 +33,7 @@ Verilator 5.017 devel * Fix 'this' in a constructor (#4533). [Ryszard Rozak, Antmicro Ltd.] * Fix stream shift operator of 32 bits (#4536). [Julien Faucher] * Fix inlining of real functions miscasting (#4543). [Andrew Nolte] +* Fix preprocessor to show `line 2 on resumed file. Verilator 5.016 2023-09-16 diff --git a/src/V3PreLex.l b/src/V3PreLex.l index 9c84b9ed5..3209aa8bf 100644 --- a/src/V3PreLex.l +++ b/src/V3PreLex.l @@ -583,7 +583,7 @@ string V3PreLex::endOfStream(bool& againr) { } else if (curStreamp()->m_termState == 2) { // Now ending `line curStreamp()->m_termState = 3; - return curFilelinep()->lineDirectiveStrg(2); // Exit old file + return curFilelinep()->lineDirectiveStrg(0); // THe "2" exit is below } else { // Final shutdown phase for a stream, we can finally change the // current fileline to the new stream @@ -603,7 +603,7 @@ string V3PreLex::endOfStream(bool& againr) { if (curStreamp()->m_eof) { return ""; } else { - return curFilelinep()->lineDirectiveStrg(0); // Reenter resumed file + return curFilelinep()->lineDirectiveStrg(2); // Reenter resumed file } } } diff --git a/test_regress/t/t_lint_eofline.out b/test_regress/t/t_lint_eofline.out index d4f4a5251..3de26aff4 100644 --- a/test_regress/t/t_lint_eofline.out +++ b/test_regress/t/t_lint_eofline.out @@ -1,3 +1,3 @@ `line 1 "obj_vlt/t_lint_eofline/t_lint_eofline_bad.v" 1 -`line 2 "obj_vlt/t_lint_eofline/t_lint_eofline_bad.v" 2 +`line 2 "obj_vlt/t_lint_eofline/t_lint_eofline_bad.v" 0 diff --git a/test_regress/t/t_pipe_filter.out b/test_regress/t/t_pipe_filter.out index 60d00f061..77571bb19 100644 --- a/test_regress/t/t_pipe_filter.out +++ b/test_regress/t/t_pipe_filter.out @@ -35,8 +35,8 @@ inc line 7; inc line 8; inc line 9; -`line 14 "t/t_pipe_filter_inc.vh" 2 -`line 14 "t/t_pipe_filter.v" 0 +`line 14 "t/t_pipe_filter_inc.vh" 0 +`line 14 "t/t_pipe_filter.v" 2 `line 15 "t/t_pipe_filter.v" 0 @@ -59,12 +59,12 @@ inc line 7; inc line 8; inc line 9; -`line 14 "t/t_pipe_filter_inc.vh" 2 -`line 16 "t/t_pipe_filter.v" 0 +`line 14 "t/t_pipe_filter_inc.vh" 0 +`line 16 "t/t_pipe_filter.v" 2 `line 18 "t/t_pipe_filter.v" 0 example line 15; example line 16; -`line 21 "t/t_pipe_filter.v" 2 +`line 21 "t/t_pipe_filter.v" 0 diff --git a/test_regress/t/t_pp_pragma_bad.out b/test_regress/t/t_pp_pragma_bad.out index 713607531..7e36d642b 100644 --- a/test_regress/t/t_pp_pragma_bad.out +++ b/test_regress/t/t_pp_pragma_bad.out @@ -13,5 +13,5 @@ `line 7 "t/t_pp_pragma_bad.v" 0 `pragma -`line 9 "t/t_pp_pragma_bad.v" 2 +`line 9 "t/t_pp_pragma_bad.v" 0 %Error: Exiting due to diff --git a/test_regress/t/t_preproc.out b/test_regress/t/t_preproc.out index 6e09e8fcd..83cefad3a 100644 --- a/test_regress/t/t_preproc.out +++ b/test_regress/t/t_preproc.out @@ -50,12 +50,12 @@ At file "t/t_preproc_inc2.vh" line 5 -`line 110 "inc3_a_filename_from_line_directive" 2 -`line 7 "t/t_preproc_inc2.vh" 0 +`line 110 "inc3_a_filename_from_line_directive" 0 +`line 7 "t/t_preproc_inc2.vh" 2 -`line 9 "t/t_preproc_inc2.vh" 2 -`line 10 "t/t_preproc.v" 0 +`line 9 "t/t_preproc_inc2.vh" 0 +`line 10 "t/t_preproc.v" 2 `line 12 "t/t_preproc.v" 0 @@ -372,8 +372,8 @@ begin addr <= ({regs[6], regs[7]}); wdata <= (rdata); wr <= 1; end more `line 6 "t/t_preproc_inc4.vh" 0 -`line 8 "t/t_preproc_inc4.vh" 2 -`line 236 "t/t_preproc.v" 0 +`line 8 "t/t_preproc_inc4.vh" 0 +`line 236 "t/t_preproc.v" 2 `line 237 "t/t_preproc.v" 0 @@ -701,8 +701,8 @@ hello4hello4hello4hello4 `line 6 "t/t_preproc_inc4.vh" 0 -`line 8 "t/t_preproc_inc4.vh" 2 -`line 444 "t/t_preproc.v" 0 +`line 8 "t/t_preproc_inc4.vh" 0 +`line 444 "t/t_preproc.v" 2 `line 445 "t/t_preproc.v" 0 @@ -1045,4 +1045,4 @@ predef 2 2 -`line 729 "t/t_preproc.v" 2 +`line 729 "t/t_preproc.v" 0 diff --git a/test_regress/t/t_preproc_comments.out b/test_regress/t/t_preproc_comments.out index ba69fa2c0..8b01ff8bf 100644 --- a/test_regress/t/t_preproc_comments.out +++ b/test_regress/t/t_preproc_comments.out @@ -50,12 +50,12 @@ At file "t/t_preproc_inc2.vh" line 5 -`line 110 "inc3_a_filename_from_line_directive" 2 -`line 7 "t/t_preproc_inc2.vh" 0 +`line 110 "inc3_a_filename_from_line_directive" 0 +`line 7 "t/t_preproc_inc2.vh" 2 -`line 9 "t/t_preproc_inc2.vh" 2 -`line 10 "t/t_preproc.v" 0 +`line 9 "t/t_preproc_inc2.vh" 0 +`line 10 "t/t_preproc.v" 2 `line 12 "t/t_preproc.v" 0 @@ -372,8 +372,8 @@ begin addr <= ({regs[6], regs[7]}); wdata <= (rdata); wr <= 1; end more `line 6 "t/t_preproc_inc4.vh" 0 -`line 8 "t/t_preproc_inc4.vh" 2 -`line 236 "t/t_preproc.v" 0 +`line 8 "t/t_preproc_inc4.vh" 0 +`line 236 "t/t_preproc.v" 2 `line 237 "t/t_preproc.v" 0 @@ -706,8 +706,8 @@ hello4hello4hello4hello4 `line 6 "t/t_preproc_inc4.vh" 0 -`line 8 "t/t_preproc_inc4.vh" 2 -`line 444 "t/t_preproc.v" 0 +`line 8 "t/t_preproc_inc4.vh" 0 +`line 444 "t/t_preproc.v" 2 `line 445 "t/t_preproc.v" 0 @@ -1050,4 +1050,4 @@ predef 2 2 // After `undefineall above, for testing --dump-defines -`line 729 "t/t_preproc.v" 2 +`line 729 "t/t_preproc.v" 0 diff --git a/test_regress/t/t_preproc_def09.out b/test_regress/t/t_preproc_def09.out index 1958e614e..f6abcc305 100644 --- a/test_regress/t/t_preproc_def09.out +++ b/test_regress/t/t_preproc_def09.out @@ -84,4 +84,4 @@ HERE-72 - Line71 `line 74 "t/t_preproc_def09.v" 0 -`line 76 "t/t_preproc_def09.v" 2 +`line 76 "t/t_preproc_def09.v" 0