From d308aeaf53b7324af98dfa949a747526c241ef30 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 19 Aug 2013 12:35:03 +0200 Subject: Store Nix integers as longs So on 64-bit systems, integers are now 64-bit. Fixes #158. --- src/libexpr/lexer.l | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/libexpr/lexer.l') diff --git a/src/libexpr/lexer.l b/src/libexpr/lexer.l index 3b7c6bb57a06..76cd372013a5 100644 --- a/src/libexpr/lexer.l +++ b/src/libexpr/lexer.l @@ -110,8 +110,10 @@ or { return OR_KW; } \+\+ { return CONCAT; } {ID} { yylval->id = strdup(yytext); return ID; } -{INT} { int n = atoi(yytext); /* !!! overflow */ - yylval->n = n; +{INT} { errno = 0; + yylval->n = strtol(yytext, 0, 10); + if (errno != 0) + throw ParseError(format("invalid integer `%1%'") % yytext); return INT; } -- cgit 1.4.1