File cxref-new_float_types.patch of Package cxref
From amb@gedanken.org.uk Wed Sep 6 19:22:09 2017
From: "Andrew M. Bishop" <amb@gedanken.org.uk>
To: Philipp Thomas <pth@suse.de>
Subject: Re: cxref and __Float128
Looking at https://gcc.gnu.org/onlinedocs/gcc/Floating-Types.html it
seems that there are a few new floating point options.
The patch needs to modify more than one file so I thought it easier to
offer you a patch to test (I don't have glibc 2.26) than to try to
make up a test case myself.
--- src/parse.l (revision 661)
+++ src/parse.l (working copy)
@@ -319,6 +319,12 @@
"_Complex" { }
"_Bool" { yylval="_Bool"; return(BOOL); }
+ /* ISO/IEC TS 18661-3:2015 */
+
+"_Float128" { yylval="_Float128"; return(FLOAT_EXTENSION); }
+"_Float80" { yylval="_Float80" ; return(FLOAT_EXTENSION); }
+"_Float64x" { yylval="_Float64x"; return(FLOAT_EXTENSION); }
+
/* C language keywords. */
"auto" { yylval="auto" ; return(AUTO); }
--- src/parse.y (revision 661)
+++ src/parse.y (working copy)
@@ -152,7 +152,7 @@
%token LEFT_SHIFT RIGHT_SHIFT
%token SIZEOF
%token TYPEDEF EXTERN STATIC AUTO REGISTER CONST VOLATILE VOID INLINE
-%token CHAR SHORT INT LONG SIGNED UNSIGNED FLOAT DOUBLE BOOL
+%token CHAR SHORT INT LONG SIGNED UNSIGNED FLOAT DOUBLE BOOL FLOAT_EXTENSION
%token STRUCT UNION ENUM
%token CASE DEFAULT IF ELSE SWITCH WHILE DO FOR GOTO CONTINUE BREAK RETURN
%token ASM
@@ -448,6 +448,7 @@
floating_type_specifier
: FLOAT
| DOUBLE
+ | FLOAT_EXTENSION
| DOUBLE LONG
{ $$=ConcatStrings(3,$1," ",$2); }
| LONG DOUBLE
@@ -1424,7 +1425,7 @@
last_yyl==GOTO ||
last_yyl==CHAR || last_yyl==SHORT || last_yyl==INT || last_yyl==LONG ||
last_yyl==SIGNED || last_yyl==UNSIGNED ||
- last_yyl==FLOAT || last_yyl==DOUBLE ||
+ last_yyl==FLOAT || last_yyl==DOUBLE || last_yyl==FLOAT_EXTENSION ||
last_yyl==BOOL)
yyl=IDENTIFIER;