Commit c32c3f88 authored by Ondřej Zajíček's avatar Ondřej Zajíček

Fixes parsing larger numbers on 64bit platforms.

parent be4cd99a
......@@ -129,10 +129,10 @@ include ^{WHITE}*include{WHITE}*\".*\"{WHITE}*;
0x{XIGIT}+ {
char *e;
long int l;
unsigned long int l;
errno = 0;
l = strtoul(yytext+2, &e, 16);
if (e && *e || errno == ERANGE || (long int)(int) l != l)
if (e && *e || errno == ERANGE || (unsigned long int)(unsigned int) l != l)
cf_error("Number out of range");
cf_lval.i = l;
return NUM;
......@@ -140,10 +140,10 @@ include ^{WHITE}*include{WHITE}*\".*\"{WHITE}*;
{DIGIT}+ {
char *e;
long int l;
unsigned long int l;
errno = 0;
l = strtoul(yytext, &e, 10);
if (e && *e || errno == ERANGE || (long int)(int) l != l)
if (e && *e || errno == ERANGE || (unsigned long int)(unsigned int) l != l)
cf_error("Number out of range");
cf_lval.i = l;
return NUM;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment