mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 20:33:03 +00:00
With input such as
%token<fl> yVL_CLOCK "/*verilator sc_clock*/"
we generate
yVL_CLOCK = 610, /* "/*verilator sc_clock*/" */
which is invalid since the comment will actually be closed on the
first "*/". Let's turn "*/" into "*\/" to avoid this. But GCC will
also warn about "/*" inside a comment, so let's "escape" it too.
Reported by Huang Rui.
https://github.com/akimd/bison/issues/38
* data/skeletons/c-like.m4 (_b4_comment): Escape comment delimiters in
comments.
* tests/input.at (Torturing the Scanner): Check thes cases.
* tests/m4.at: New.
47 lines
1.2 KiB
Plaintext
47 lines
1.2 KiB
Plaintext
# Basic m4 macros. -*- Autotest -*-
|
|
|
|
# Copyright (C) 2020 Free Software Foundation, Inc.
|
|
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
AT_BANNER([[M4 Macros.]])
|
|
|
|
|
|
AT_SETUP([Generating Comments])
|
|
|
|
AT_DATA([input.y],
|
|
[%%
|
|
exp:
|
|
])
|
|
|
|
AT_DATA([input.m4],
|
|
[[m4@&t@_include(b4_skeletonsdir/[c.m4])
|
|
|
|
b4_output_begin([output.txt])
|
|
b4_comment([["/* () */"]])
|
|
b4_comment([["/* ( */"]])
|
|
b4_comment([["/* ) */"]])
|
|
b4_output_end([output.txt])
|
|
]])
|
|
|
|
AT_BISON_CHECK([-S ./input.m4 input.y])
|
|
|
|
AT_CHECK([cat output.txt], [],
|
|
[/* "/\* () *\/" */
|
|
/* "/\* ( *\/" */
|
|
/* "/\* ) *\/" */
|
|
])
|
|
|
|
AT_CLEANUP
|