fix preprocessing *.S with ` ' chars in #comments

with a test program. Problem detected when trying to
    compile linux-2.4.37.9 with tcc.
master
seyko 2016-04-14 21:46:46 +03:00
parent 5fb57bead4
commit 16cbca281f
3 changed files with 17 additions and 1 deletions

View File

@ -796,8 +796,10 @@ redo_start:
in_warn_or_error = 1; in_warn_or_error = 1;
else if (tok == TOK_LINEFEED) else if (tok == TOK_LINEFEED)
goto redo_start; goto redo_start;
else if (parse_flags & PARSE_FLAG_ASM_FILE)
p = parse_line_comment(p);
} else if (parse_flags & PARSE_FLAG_ASM_FILE) } else if (parse_flags & PARSE_FLAG_ASM_FILE)
p = parse_line_comment(p); p = parse_line_comment(p);
break; break;
_default: _default:
default: default:
@ -2743,6 +2745,8 @@ maybe_newline:
p++; p++;
break; break;
default: default:
if (parse_flags & PARSE_FLAG_ASM_FILE)
goto parse_simple;
tcc_error("unrecognized character \\x%02x", c); tcc_error("unrecognized character \\x%02x", c);
break; break;
} }

6
tests/pp/13.S 100644
View File

@ -0,0 +1,6 @@
# `modelist' label. Each video mode record looks like:
#ifdef AAA
# modelist' label. Each video mode record looks like:
#endif
.text
endtext:

View File

@ -0,0 +1,6 @@
# `modelist' label. Each video mode record looks like:
.text
endtext: