projects
/
cparser
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Overhaul for_statement_to_firm() so it is more friendly towards SSA construction...
[cparser]
/
lexer.c
diff --git
a/lexer.c
b/lexer.c
index
15c12a0
..
8e0567e
100644
(file)
--- a/
lexer.c
+++ b/
lexer.c
@@
-87,7
+87,9
@@
static size_t read_block(unsigned char *const read_buf, size_t const n)
{
size_t const s = fread(read_buf, 1, n, input);
if (s == 0) {
{
size_t const s = fread(read_buf, 1, n, input);
if (s == 0) {
- if (ferror(input))
+ /* on OS/X ferror appears to return true on eof as well when running
+ * the application in gdb... */
+ if (!feof(input) && ferror(input))
parse_error("read from input failed");
buf[MAX_PUTBACK] = EOF;
bufpos = buf + MAX_PUTBACK;
parse_error("read from input failed");
buf[MAX_PUTBACK] = EOF;
bufpos = buf + MAX_PUTBACK;
@@
-768,7
+770,7
@@
static void parse_number(void)
/* check for invalid octal digits */
for (size_t i= 0; i < size; ++i) {
char t = string[i];
/* check for invalid octal digits */
for (size_t i= 0; i < size; ++i) {
char t = string[i];
- if (t
== '8' || t == '9
')
+ if (t
>= '8
')
errorf(&lexer_token.source_position,
"invalid digit '%c' in octal number", t);
}
errorf(&lexer_token.source_position,
"invalid digit '%c' in octal number", t);
}