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;
openSUSE Build Service is sponsored by