allow assemblers' yylex to work for 64-bit decimal values when yylval is vlong, but act as before for 32-bit targets; and skip any trailing Us and LLs as might be used in mem.h to define addresses usable by C. Reference: /n/sources/patch/applied/as-quad Date: Tue Sep 20 12:19:59 CES 2005 --- /sys/src/cmd/cc/lexbody Tue Sep 20 11:42:15 2005 +++ /sys/src/cmd/cc/lexbody Tue Sep 20 11:42:12 2005 @@ -342,9 +342,14 @@ if(c == 'e' || c == 'E') goto casee; *cp = 0; - yylval.lval = atol(symb); + if(sizeof(yylval.lval) == sizeof(vlong)) + yylval.lval = strtoll(symb, nil, 10); + else + yylval.lval = strtol(symb, nil, 10); ncu: + while(c == 'U' || c == 'u' || c == 'l' || c == 'L') + c = GETC(); peekc = c; return LCONST;