summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util/romcc/romcc.c26
1 files changed, 6 insertions, 20 deletions
diff --git a/util/romcc/romcc.c b/util/romcc/romcc.c
index da6eca26a7..c089df7820 100644
--- a/util/romcc/romcc.c
+++ b/util/romcc/romcc.c
@@ -3,7 +3,7 @@
#undef RELEASE_DATE
#undef VERSION
#define VERSION_MAJOR "0"
-#define VERSION_MINOR "65"
+#define VERSION_MINOR "66"
#define RELEASE_DATE "8 November 2004"
#define VERSION VERSION_MAJOR "." VERSION_MINOR
@@ -3994,10 +3994,6 @@ static void raw_next_token(struct compile_state *state,
if (tok == TOK_UNKNOWN) {
error(state, 0, "unterminated comment");
}
- if (state->token_base && (line != file->line)) {
- error(state, 0,
- "multiline comment in preprocessor directive");
- }
file->report_line += line - file->line;
file->line = line;
file->line_start = line_start;
@@ -4033,12 +4029,7 @@ static void raw_next_token(struct compile_state *state,
error(state, 0, "unterminated string constant");
}
if (line != file->line) {
- if (state->token_base) {
- /* Preprocessor directives cannot span lines */
- error(state, 0, "multiline string constant");
- } else {
- warning(state, 0, "multiline string constant");
- }
+ warning(state, 0, "multiline string constant");
}
file->report_line += line - file->line;
file->line = line;
@@ -4078,12 +4069,7 @@ static void raw_next_token(struct compile_state *state,
error(state, 0, "unterminated character constant");
}
if (line != file->line) {
- if (state->token_base) {
- /* Preprocessor directives cannot span lines */
- error(state, 0, "multiline character constant");
- } else {
- warning(state, 0, "multiline character constant");
- }
+ warning(state, 0, "multiline character constant");
}
file->report_line += line - file->line;
file->line = line;
@@ -4831,12 +4817,12 @@ static void token(struct compile_state *state, struct token *tk)
cpp_token(state, tk);
}
}
- /* Eat tokens disabled by the preprocessor */
- else if (if_eat(state)) {
+ /* Eat tokens disabled by the preprocessor (Unless we are parsing a preprocessor directive */
+ else if (if_eat(state) && (state->token_base == 0)) {
cpp_token(state, tk);
rescan = 1;
}
- /* When not in macro context hide EOL */
+ /* Make certain EOL only shows up in preprocessor directives */
else if ((tk->tok == TOK_EOL) && (state->token_base == 0)) {
cpp_token(state, tk);
rescan = 1;