commit 2edbdb8b2a7914d14f1b080179a057879144378e
parent 664e782912da639d082308433dd7dddfcf9922ce
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Thu, 7 May 2015 15:18:13 +0200
Add newline()
This function increment the current line number and check
if the file is too long (more of 65536 lines).
Diffstat:
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/cc1/lex.c b/cc1/lex.c
@@ -64,6 +64,13 @@ fileline(void)
return input->nline;
}
+static void
+newline(void)
+{
+ if (++input->nline == 0)
+ die("input file too long");
+}
+
static uint8_t
integer(char *s, char base)
{
@@ -181,7 +188,7 @@ repeat:
warn("character constant out of range");
break;
case '\n':
- ++input->nline;
+ newline();
if ((c = getchar()) == '\\')
goto repeat;
break;
@@ -403,7 +410,7 @@ skipspaces(void)
while (isspace(c = getchar())) {
if (c == '\n')
- ++input->nline;
+ newline();
}
return c;
}