wcc/check: GAP-A .cap-on-array loud-reject; .ptr-on-array ratified valid (#12)
.cap on a fixed-size array is invalid (Hare has no capacity-read; arrays can't grow) -> both stages now loud-reject at the checker. wwstage was silently returning frame garbage for a local array's .cap; cstage typed it then vaguely rejected at use. Unified to one early checker reject with an identical diagnostic both stages. .ptr on a fixed-size array is ratified VALID: array.ptr is &A[0], a sanctioned ww spelling divergence from Hare; see task #13. The toolchain already relies on it in 14 backing-pointer sites. WHY-doc added at both checker .ptr-on-array sites. The def-global .ptr cgen base-selection bug (#11) is a separate following commit. Valid-program asm unchanged (byte-id 990-997 8/8); w6c/w6c_ww binaries move (checker code changed). test/wcc/817 table-driven, model 684.
This commit is contained in:
7
Makefile
7
Makefile
@@ -243,6 +243,7 @@ TESTS = $(BIN)/test_smoke $(BIN)/test_lex $(BIN)/test_parse $(BIN)/test_check \
|
||||
$(BIN)/test_arr_strslice_elem \
|
||||
$(BIN)/test_arr_tagged_elem \
|
||||
$(BIN)/test_arr_infer_len \
|
||||
$(BIN)/test_arr_cap_reject \
|
||||
$(BIN)/test_def_arr_infer_len \
|
||||
$(BIN)/test_def_arr_len \
|
||||
$(BIN)/test_slice_str_global_zero \
|
||||
@@ -635,6 +636,12 @@ $(BIN)/test_arr_infer_len: test/wcc/684_arr_infer_len.c $(BIN)/ww \
|
||||
$(LIB)/libwwrt.a | $(BIN)
|
||||
$(CC) $(CFLAGS) -o $@ $<
|
||||
|
||||
$(BIN)/test_arr_cap_reject: test/wcc/817_arr_cap_reject.c $(BIN)/ww \
|
||||
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
||||
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
||||
$(LIB)/libwwrt.a | $(BIN)
|
||||
$(CC) $(CFLAGS) -o $@ $<
|
||||
|
||||
$(BIN)/test_def_arr_infer_len: test/wcc/814_def_arr_infer_len.c $(BIN)/ww \
|
||||
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
|
||||
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
|
||||
|
||||
Reference in New Issue
Block a user