wcc/ww: cgtypeassert gains the nullable arm

'as' on a nullable value compared the pointer itself to a tag (the
missing arm). Mirror cgtypetest's nullable fold and the cstage twin
(cgen.c:10694). Review item #17.
This commit is contained in:
2026-06-12 19:22:51 +09:00
parent 6f3c896fea
commit 02eb867036
5 changed files with 324 additions and 3 deletions

View File

@@ -321,6 +321,7 @@ TESTS = $(BIN)/test_smoke $(BIN)/test_lex $(BIN)/test_parse $(BIN)/test_check \
$(BIN)/test_tagged_call_arg_run \
$(BIN)/test_tryprop_tag_remap_run \
$(BIN)/test_nullable_try_run \
$(BIN)/test_nullable_assert_run \
$(BIN)/test_nested_union_widen_run \
$(BIN)/test_sret_struct_return \
$(BIN)/test_sret_struct_return_run \
@@ -1771,6 +1772,12 @@ $(BIN)/test_nullable_try_run: test/wcc/949_nullable_try_run.c \
$(LIB)/libwwrt.a | $(BIN)
$(CC) $(CFLAGS) -o $@ $<
$(BIN)/test_nullable_assert_run: test/wcc/949_nullable_assert_run.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_sret_struct_return: test/wcc/721_sret_struct_return.c \
$(BIN)/w6c $(BIN)/w6c_ww | $(BIN)
$(CC) $(CFLAGS) -o $@ $<