#include <stdio.h>
#include <ctype.h>
-
#define GMQCC_VERSION_MAJOR 0
#define GMQCC_VERSION_MINOR 1
#define GMQCC_VERSION_PATCH 0
* fail. There is no valid way to get a 64bit type at this point
* without making assumptions of too many things.
*/
- typedef char int64_t;
- typedef char uint64_t;
+ typedef struct { char _fail : 0; } int64_t;
+ typedef struct { char _fail : 0; } uint64_t;
# endif
#endif
#ifdef _LP64 /* long pointer == 64 */
#endif
/* Ensure type sizes are correct: */
typedef char uint8_size_is_correct [sizeof(uint8_t) == 1?1:-1];
-typedef char uint16_size_if_correct [sizeof(uint16_t) == 2?1:-1];
+typedef char uint16_size_is_correct [sizeof(uint16_t) == 2?1:-1];
typedef char uint32_size_is_correct [sizeof(uint32_t) == 4?1:-1];
typedef char uint64_size_is_correct [sizeof(uint64_t) == 8?1:-1];
typedef char int16_size_if_correct [sizeof(int16_t) == 2?1:-1];
/*===================================================================*/
/*=========================== code.c ================================*/
/*===================================================================*/
+
+/* Note: if you change the order, fix type_sizeof in ir.c */
enum {
TYPE_VOID ,
TYPE_STRING ,
TYPE_FUNCTION ,
TYPE_POINTER ,
/* TYPE_INTEGER , */
- TYPE_VARIANT
+ TYPE_VARIANT ,
+
+ TYPE_COUNT
};
+extern size_t type_sizeof[TYPE_COUNT];
+
/*
* Each paramater incerements by 3 since vector types hold
* 3 components (x,y,z).