diff --git a/src/core/heap.c b/src/core/heap.c index f6fe0672..0bdc35bc 100644 --- a/src/core/heap.c +++ b/src/core/heap.c @@ -8,9 +8,9 @@ Value* heap_curr; void heapVerify_checkFn(Value* v) { if (v->refc!=0) { #ifdef OBJ_COUNTER - printf("delta %d for %s, uid "N64d": ", v->refc, type_repr(v->type), v->uid); + printf("delta %d for %s @ %p, uid "N64d": ", v->refc, type_repr(v->type), v, v->uid); #else - printf("delta %d for %s: ", (i32)v->refc, type_repr(v->type)); + printf("delta %d for %s @ %p: ", (i32)v->refc, type_repr(v->type), v); #endif heap_observed = v; print(tag(v,OBJ_TAG)); putchar('\n'); diff --git a/src/h.h b/src/h.h index e080ee55..eb3fced8 100644 --- a/src/h.h +++ b/src/h.h @@ -125,6 +125,7 @@ typedef double f64; #define U8_MAX ((u8 )~(u8 )0) #define U16_MAX ((u16)~(u16)0) #define U32_MAX ((u32)~(u32)0) +#define U64_MAX ((u64)~(u64)0) #define NOINLINE __attribute__((noinline)) #define FORCE_INLINE __attribute__((always_inline)) static inline #define NORETURN __attribute__((noreturn)) diff --git a/src/jit/nvm_x86_64.c b/src/jit/nvm_x86_64.c index c2df2e6c..ebaded48 100644 --- a/src/jit/nvm_x86_64.c +++ b/src/jit/nvm_x86_64.c @@ -389,7 +389,7 @@ static OptRes opt(u32* bc0) { default: defIns:; TSSIZE(stk)-= stackConsumed(sbc); i32 added = stackAdded(sbc); - for (i32 i = 0; i < added; i++) TSADD(stk, SREF(bi_optOut, -1)) + for (i32 i = 0; i < added; i++) TSADD(stk, SREF(bi_optOut, -1)); } #undef S #undef L64 diff --git a/src/utils/talloc.h b/src/utils/talloc.h index a95ee26c..dad9ff42 100644 --- a/src/utils/talloc.h +++ b/src/utils/talloc.h @@ -29,11 +29,11 @@ typedef struct TStack { #define TSALLOC(T,N,I) usz N##_dc=(I); u32 N##_e=sizeof(T); TStack* N##_o = (TStack*)mm_alloc(sizeof(TStack)+N##_e*N##_dc, t_temp); N##_o->size=0; N##_o->cap=N##_dc; T* N = (T*)N##_o->data; #define TSFREE(N) mm_free((Value*)N##_o); #define TSUPD(N,AM) { N##_o = ts_e(N##_o, N##_e, AM); N = (void*)N##_o->data; } -#define TSADD(N,X) { if (N##_o->size==N##_o->cap) TSUPD(N, 1); N[N##_o->size++] = X; } +#define TSADD(N,X) ({ if (N##_o->size==N##_o->cap) TSUPD(N, 1); N[N##_o->size++] = X; }) #define TSADDA(N,P,AM) { u64 n_=(AM); if(N##_o->size+n_>N##_o->cap) TSUPD(N, n_); memcpy(N+N##_o->size,P,n_*N##_e); N##_o->size+= n_; } #define TSADDAU(N,AM) { u64 n_=(AM); if(N##_o->size+n_>N##_o->cap) TSUPD(N, n_); N##_o->size+= n_; } #define TSFREEP(N) mm_free((void*)RFLD(N, TStack, data)); #define TSSIZE(N) (N##_o->size) TStack* ts_e(TStack* o, u32 elsz, u64 am); -#define ARBOBJ(SZ) (TAlloc*)mm_alloc(sizeof(TAlloc)+(SZ), t_arbObj) +#define ARBOBJ(SZ) ((TAlloc*)mm_alloc(sizeof(TAlloc)+(SZ), t_arbObj)) diff --git a/test/ffi/makefile b/test/ffi/makefile index 3fbc6373..c2d2f5bb 100644 --- a/test/ffi/makefile +++ b/test/ffi/makefile @@ -7,7 +7,7 @@ testShared: buildShared @diff --color -su shared.expected shared.got buildShared: - $(CC) sharedTest.c -o sharedTest -L../.. -lcbqn + $(CC) -g sharedTest.c -o sharedTest -L../.. -lcbqn