Preserve line breaks in comments before test functions

This way line numbers match better in error messages.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
Gilles Peskine 2022-11-29 22:03:32 +01:00
parent 9ac62c3a97
commit d8c0803821
2 changed files with 5 additions and 6 deletions

View file

@ -552,14 +552,12 @@ def skip_comments(line, stream):
pos = closing + 2 pos = closing + 2
# Replace inner comment by spaces. There needs to be at least one space # Replace inner comment by spaces. There needs to be at least one space
# for things like 'int/*ihatespaces*/foo'. Go further and preserve the # for things like 'int/*ihatespaces*/foo'. Go further and preserve the
# width of the comment, this way column positions in error messages # width of the comment and line breaks, this way positions in error
# remain correct. # messages remain correct.
# TODO: It would be better to preserve line breaks, to get accurate
# line numbers if there's something interesting after a comment on
# the same line.
line = (line[:opening.start(0)] + line = (line[:opening.start(0)] +
' ' * (pos - opening.start(0)) + re.sub(r'.', r' ', line[opening.start(0):pos]) +
line[pos:]) line[pos:])
# Strip whitespace at the end of lines (it's irrelevant to error messages).
return re.sub(r' +(\n|\Z)', r'\1', line) return re.sub(r' +(\n|\Z)', r'\1', line)
def parse_function_code(funcs_f, dependencies, suite_dependencies): def parse_function_code(funcs_f, dependencies, suite_dependencies):

View file

@ -766,6 +766,7 @@ exit:
void test_func() void test_func()
{ {
ba ba black sheep ba ba black sheep