Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1--- a/src/frontc/clexer.mll 2+++ b/src/frontc/clexer.mll 3@@ -134,9 +134,11 @@ let init_lexicon _ = 4 (* WW: see /usr/include/sys/cdefs.h for why __signed and __volatile 5 * are accepted GCC-isms *) 6 ("_Bool", fun loc -> BOOL loc); 7+ ("_Complex", fun loc -> COMPLEX loc); 8 ("char", fun loc -> CHAR loc); 9 ("int", fun loc -> INT loc); 10 ("float", fun loc -> FLOAT loc); 11+ ("__float128", fun loc -> FLOAT128 loc); 12 ("double", fun loc -> DOUBLE loc); 13 ("void", fun loc -> VOID loc); 14 ("enum", fun loc -> ENUM loc); 15--- a/src/frontc/cparser.mly 16+++ b/src/frontc/cparser.mly 17@@ -269,6 +269,8 @@ let oblivState (s:statement): statement = 18 %token<Cabs.cabsloc> VOLATILE EXTERN STATIC CONST RESTRICT AUTO REGISTER FROZEN 19 %token<Cabs.cabsloc> THREAD 20 21+%token<Cabs.cabsloc> COMPLEX FLOAT128 22+ 23 %token<Cabs.cabsloc> SIZEOF ALIGNOF 24 25 %token EQ PLUS_EQ MINUS_EQ STAR_EQ SLASH_EQ PERCENT_EQ 26@@ -1002,7 +1004,11 @@ type_spec: /* ISO 6.7.2 */ 27 | LONG { Tlong, $1 } 28 | INT64 { Tint64, $1 } 29 | FLOAT { Tfloat, $1 } 30+| FLOAT128 { Tfloat, $1 } 31 | DOUBLE { Tdouble, $1 } 32+| COMPLEX FLOAT { Tfloat, $2 } 33+| COMPLEX FLOAT128{ Tfloat, $2 } 34+| COMPLEX DOUBLE { Tdouble, $2 } 35 | SIGNED { Tsigned, $1 } 36 | UNSIGNED { Tunsigned, $1 } 37 | STRUCT id_or_typename