|
| 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 |
1 commit comments
ngrevatt commentedon Jun 7, 2018
Does this patch fix Obliv-C functionality for glibc 2.27 as well?