w6a/ww: DATAR naming an undefined slot is a loud reject
A DATAR relocation against an undefined data slot was silently dropped — the relocation vanished from the object. Reject loudly, matching the cstage single-pass resolution behavior.
This commit is contained in:
9
Makefile
9
Makefile
@@ -264,6 +264,7 @@ TESTS = $(BIN)/test_smoke $(BIN)/test_lex $(BIN)/test_parse $(BIN)/test_check \
|
||||
$(BIN)/test_loopcap_run \
|
||||
$(BIN)/test_enumcap_run \
|
||||
$(BIN)/test_wwdumpgate_run \
|
||||
$(BIN)/test_datargate_run \
|
||||
$(BIN)/test_ampfncollide_run \
|
||||
$(BIN)/test_trycallcollide_run \
|
||||
$(BIN)/test_gunsigned_run \
|
||||
@@ -837,6 +838,14 @@ $(BIN)/test_wwdumpgate_run: test/wcc/989_wwdumpgate_run.c \
|
||||
$(BIN)/wwdump $(BIN)/wwdump_ww | $(BIN)
|
||||
$(CC) $(CFLAGS) -o $@ $<
|
||||
|
||||
# 989_datargate_run (#59, F15 c5): w6a loud-rejects a DATAR relocation whose
|
||||
# slot was never defined by a prior DATAW instead of silently dropping the
|
||||
# reloc (zero-filled pointer slot in the .o). Runs w6a + w6a_ww directly and
|
||||
# asserts a byte-identical .o on the healthy path (rule-10). See the header.
|
||||
$(BIN)/test_datargate_run: test/wcc/989_datargate_run.c \
|
||||
$(BIN)/w6a $(BIN)/w6a_ww | $(BIN)
|
||||
$(CC) $(CFLAGS) -o $@ $<
|
||||
|
||||
# 989_ampfncollide_run (#4, c2): `&fn` synthesis (unoptype TK_AMP +
|
||||
# assignableaddrfn) prefers the current module's fn when a same-leaf fn is
|
||||
# declared in a later module. Builds/rejects on BOTH driver twins (rule-10).
|
||||
|
||||
Reference in New Issue
Block a user