mirror of
https://github.com/janet-lang/janet
synced 2024-09-30 16:00:40 +00:00
Fix BSD builds.
Try to silence some more undefined C warnings with -fsanitize=undefined.
This commit is contained in:
parent
b07adce2b9
commit
8d37e544ab
5
Makefile
5
Makefile
@ -44,11 +44,8 @@ ifeq ($(UNAME), Darwin)
|
|||||||
CLIBS:=$(CLIBS) -ldl
|
CLIBS:=$(CLIBS) -ldl
|
||||||
else ifeq ($(UNAME), Linux)
|
else ifeq ($(UNAME), Linux)
|
||||||
CLIBS:=$(CLIBS) -lrt -ldl
|
CLIBS:=$(CLIBS) -lrt -ldl
|
||||||
else ifeq ($(UNAME), FreeBSD)
|
|
||||||
CLIBS:=$(CLIBS) -ldl
|
|
||||||
else ifeq ($(UNAME), OpenBSD)
|
|
||||||
CLIBS:=$(CLIBS) -ldl
|
|
||||||
endif
|
endif
|
||||||
|
# For other unix likes, add flags here!
|
||||||
|
|
||||||
$(shell mkdir -p build/core build/mainclient build/webclient build/boot)
|
$(shell mkdir -p build/core build/mainclient build/webclient build/boot)
|
||||||
|
|
||||||
|
@ -86,8 +86,10 @@ static void janetc_loadconst(JanetCompiler *c, Janet k, int32_t reg) {
|
|||||||
break;
|
break;
|
||||||
case JANET_NUMBER: {
|
case JANET_NUMBER: {
|
||||||
double dval = janet_unwrap_number(k);
|
double dval = janet_unwrap_number(k);
|
||||||
|
if (dval < INT16_MIN || dval > INT16_MAX)
|
||||||
|
goto do_constant;
|
||||||
int32_t i = (int32_t) dval;
|
int32_t i = (int32_t) dval;
|
||||||
if (dval != i || !(dval >= INT16_MIN && dval <= INT16_MAX))
|
if (dval != i)
|
||||||
goto do_constant;
|
goto do_constant;
|
||||||
uint32_t iu = (uint32_t)i;
|
uint32_t iu = (uint32_t)i;
|
||||||
janetc_emit(c,
|
janetc_emit(c,
|
||||||
@ -251,7 +253,7 @@ void janetc_copy(
|
|||||||
static int32_t emit1s(JanetCompiler *c, uint8_t op, JanetSlot s, int32_t rest, int wr) {
|
static int32_t emit1s(JanetCompiler *c, uint8_t op, JanetSlot s, int32_t rest, int wr) {
|
||||||
int32_t reg = janetc_regnear(c, s, JANETC_REGTEMP_0);
|
int32_t reg = janetc_regnear(c, s, JANETC_REGTEMP_0);
|
||||||
int32_t label = janet_v_count(c->buffer);
|
int32_t label = janet_v_count(c->buffer);
|
||||||
janetc_emit(c, op | (reg << 8) | (rest << 16));
|
janetc_emit(c, op | (reg << 8) | ((uint32_t)rest << 16));
|
||||||
if (wr)
|
if (wr)
|
||||||
janetc_moveback(c, s, reg);
|
janetc_moveback(c, s, reg);
|
||||||
janetc_free_regnear(c, s, reg, JANETC_REGTEMP_0);
|
janetc_free_regnear(c, s, reg, JANETC_REGTEMP_0);
|
||||||
@ -293,7 +295,7 @@ static int32_t emit2s(JanetCompiler *c, uint8_t op, JanetSlot s1, JanetSlot s2,
|
|||||||
int32_t reg1 = janetc_regnear(c, s1, JANETC_REGTEMP_0);
|
int32_t reg1 = janetc_regnear(c, s1, JANETC_REGTEMP_0);
|
||||||
int32_t reg2 = janetc_regnear(c, s2, JANETC_REGTEMP_1);
|
int32_t reg2 = janetc_regnear(c, s2, JANETC_REGTEMP_1);
|
||||||
int32_t label = janet_v_count(c->buffer);
|
int32_t label = janet_v_count(c->buffer);
|
||||||
janetc_emit(c, op | (reg1 << 8) | (reg2 << 16) | (rest << 24));
|
janetc_emit(c, op | (reg1 << 8) | (reg2 << 16) | ((uint32_t)rest << 24));
|
||||||
janetc_free_regnear(c, s2, reg2, JANETC_REGTEMP_1);
|
janetc_free_regnear(c, s2, reg2, JANETC_REGTEMP_1);
|
||||||
if (wr)
|
if (wr)
|
||||||
janetc_moveback(c, s1, reg1);
|
janetc_moveback(c, s1, reg1);
|
||||||
@ -326,7 +328,7 @@ int32_t janetc_emit_sss(JanetCompiler *c, uint8_t op, JanetSlot s1, JanetSlot s2
|
|||||||
int32_t reg2 = janetc_regnear(c, s2, JANETC_REGTEMP_1);
|
int32_t reg2 = janetc_regnear(c, s2, JANETC_REGTEMP_1);
|
||||||
int32_t reg3 = janetc_regnear(c, s3, JANETC_REGTEMP_2);
|
int32_t reg3 = janetc_regnear(c, s3, JANETC_REGTEMP_2);
|
||||||
int32_t label = janet_v_count(c->buffer);
|
int32_t label = janet_v_count(c->buffer);
|
||||||
janetc_emit(c, op | (reg1 << 8) | (reg2 << 16) | (reg3 << 24));
|
janetc_emit(c, op | (reg1 << 8) | (reg2 << 16) | ((uint32_t)reg3 << 24));
|
||||||
janetc_free_regnear(c, s2, reg2, JANETC_REGTEMP_1);
|
janetc_free_regnear(c, s2, reg2, JANETC_REGTEMP_1);
|
||||||
janetc_free_regnear(c, s3, reg3, JANETC_REGTEMP_2);
|
janetc_free_regnear(c, s3, reg3, JANETC_REGTEMP_2);
|
||||||
if (wr)
|
if (wr)
|
||||||
|
Loading…
Reference in New Issue
Block a user