types: add SIZE/UINTPTR limit constants
Faithful port of ref/hare/types/arch+x86_64.ha:16-26. SIZE_MAX is the no-cast `def SIZE_MAX: size = U64_MAX;` — size is in the unsigned class and 8B on amd64, so the u64->size init coerces without a cast (#113); UINTPTR_MAX keeps Hare's explicit `U64_MAX: uintptr` since uintptr is outside the unsigned class. Probe 958_types_sizelim_run asserts MIN==0, MAX==U64_MAX, and arithmetic usability for both types. INT_MIN/MAX + UINT_MIN/MAX deferred to #114 (ww int=8B vs Hare 4B on amd64 leaves the value open); RUNE_MAX deferred to #112 (no \U lexer). combined.ww regenerated for all 5 selfhost tools + smoke.combined.ww (all embed lib/types).
This commit is contained in:
5
Makefile
5
Makefile
@@ -335,6 +335,7 @@ TESTS = $(BIN)/test_smoke $(BIN)/test_lex $(BIN)/test_parse $(BIN)/test_check \
|
||||
$(BIN)/test_tuprecv_f64_run \
|
||||
$(BIN)/test_floats_run \
|
||||
$(BIN)/test_size_type_run \
|
||||
$(BIN)/test_types_sizelim_run \
|
||||
$(BIN)/test_bufio_run $(BIN)/test_random_run
|
||||
|
||||
$(BIN)/test_smoke: test/wcc/000_smoke.c $(LIB)/libwcc.a | $(BIN)
|
||||
@@ -1086,6 +1087,10 @@ $(BIN)/test_size_type_run: test/wcc/957_size_type_run.c $(BIN)/ww $(BIN)/w6c \
|
||||
$(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
||||
$(CC) $(CFLAGS) -o $@ $<
|
||||
|
||||
$(BIN)/test_types_sizelim_run: test/wcc/958_types_sizelim_run.c $(BIN)/ww \
|
||||
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l $(LIB)/libwwrt.a | $(BIN)
|
||||
$(CC) $(CFLAGS) -o $@ $<
|
||||
|
||||
$(BIN)/test_f64crossmod_run: test/wcc/953_f64crossmod_run.c $(BIN)/ww \
|
||||
$(BIN)/w6c $(BIN)/w6c_ww $(BIN)/w6a $(BIN)/w6l \
|
||||
$(LIB)/libwwrt.a | $(BIN)
|
||||
|
||||
Reference in New Issue
Block a user