You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
diff -Naur libIDL-0.8.14-original/lexer.l libIDL-0.8.14/lexer.l
|
|
--- libIDL-0.8.14-original/lexer.l 2009-04-18 08:20:37.000000000 -0400
|
|
+++ libIDL-0.8.14/lexer.l 2021-02-03 12:56:01.237822569 -0500
|
|
@@ -269,17 +269,29 @@
|
|
<*>{whitespace} ;
|
|
{b8_int} {
|
|
yylval.integer = 0;
|
|
- sscanf (yytext, "%" IDL_LL "o", &yylval.integer);
|
|
+ {
|
|
+ long long unsigned yyltmp = 0;
|
|
+ sscanf (yytext, "%" IDL_LL "o", &yyltmp);
|
|
+ memmove (&yylval.integer, &yyltmp, sizeof (yylval.integer));
|
|
+ }
|
|
tokreturn (TOK_INTEGER);
|
|
}
|
|
{b10_uint} {
|
|
yylval.integer = 0;
|
|
- sscanf (yytext, "%" IDL_LL "u", &yylval.integer);
|
|
+ {
|
|
+ long long unsigned yyltmp = 0;
|
|
+ sscanf (yytext, "%" IDL_LL "u", &yyltmp);
|
|
+ memmove (&yylval.integer, &yyltmp, sizeof (yylval.integer));
|
|
+ }
|
|
tokreturn (TOK_INTEGER);
|
|
}
|
|
{b16_int} {
|
|
yylval.integer = 0;
|
|
- sscanf (yytext + 2, "%" IDL_LL "x", &yylval.integer);
|
|
+ {
|
|
+ long long unsigned yyltmp = 0;
|
|
+ sscanf (yytext + 2, "%" IDL_LL "x", &yyltmp);
|
|
+ memmove (&yylval.integer, &yyltmp, sizeof (yylval.integer));
|
|
+ }
|
|
tokreturn (TOK_INTEGER);
|
|
}
|
|
{fixed_lit} {
|