#define CF_INT 0x0001 /* Operation on ints */
#define CF_PTR CF_INT /* Alias for readability */
#define CF_LONG 0x0000 /* Operation on longs */
+#define CF_FLOAT 0x0004 /* Operation on a float */
#define CF_NOKEEP 0x0008 /* Value may get destroyed when storing */
case T_ULONG:
return CF_LONG | CF_UNSIGNED;
+ case T_FLOAT:
+ case T_DOUBLE:
+ /* These two are identical in the backend */
+ return CF_FLOAT;
+
case T_FUNC:
F = DecodePtr (T+1);
return (F->Flags & FD_VARIADIC)? 0 : CF_FIXARGC;
optionalsigned ();
optionalint ();
D->Type[0] = T_SHORT;
- D->Type[1] = T_END;
+ D->Type[1] = T_END;
}
break;
NextToken ();
/* FALL THROUGH */
- default:
+ default:
D->Type[0] = T_INT;
D->Type[1] = T_END;
break;
}
break;
+ case TOK_FLOAT:
+ NextToken ();
+ D->Type[0] = T_FLOAT;
+ D->Type[1] = T_END;
+ break;
+
+ case TOK_DOUBLE:
+ NextToken ();
+ D->Type[0] = T_DOUBLE;
+ D->Type[1] = T_END;
+ break;
+
case TOK_STRUCT:
case TOK_UNION:
StructType = (CurTok.Tok == TOK_STRUCT)? T_STRUCT : T_UNION;