on master help sign in
force tag_arity and ty to be uint32_t instead of system dependent int sizes.
48aa599stepcut
rts/idris_rts.h+5−2
@@ -24,7 +24,7 @@ typedef enum {
24typedef struct Closure *VAL;
24typedef struct Closure *VAL;
25
25
26typedef struct {
26typedef struct {
27− int tag_arity;
27+ uint32_t tag_arity;
28 VAL args[];
28 VAL args[];
29} con;
29} con;
30
30
@@ -50,7 +50,10 @@ typedef struct {
50typedef struct Closure {
50typedef struct Closure {
51// Use top 16 bits of ty for saying which heap value is in
51// Use top 16 bits of ty for saying which heap value is in
52// Bottom 16 bits for closure type
52// Bottom 16 bits for closure type
53− ClosureType ty;
53+//
54+// NOTE: ty can not have type ClosureType because ty must be a
55+// uint32_t but enum is platform dependent
56+ uint32_t ty;
54 union {
57 union {
55 con c;
58 con c;
56 int i;
59 int i;