selfhost: structlookup/enumlookup mod-filter (mirror aliaslookup)
Tags structinfo/enumtype with originating module; exact-match first, then split pkg.X and filter by smod/emod. Without this, two modules with same-leaf-name struct/enum types collapsed to whichever entry appeared first in the chain. Wired into 696_modtype_leaf_collision via a wwstage run_pos using ww_ww (negative case omitted: w6c_ww has no checkfile pass). Updated the test's Makefile deps to include the wwstage binaries. Audited the rest of the lookup family — fnretlookup, fnparamslookup, deflookup don't need the same treatment: the parser emits N_DOT.str (call/field name) as the leaf only, and fnparamslookup is only invoked with N_IDENT.str. Dotted module-qualified function calls go through the module-mangling path instead.
This commit is contained in:
1
Makefile
1
Makefile
@@ -356,6 +356,7 @@ $(BIN)/test_match_bind_struct: test/wcc/695_match_bind_struct.c $(BIN)/ww \
|
||||
|
||||
$(BIN)/test_modtype_leaf_collision: test/wcc/696_modtype_leaf_collision.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 $@ $<
|
||||
|
||||
|
||||
Reference in New Issue
Block a user