make bytecode compiler less picky about exports

Closes PR 12134
This commit is contained in:
Matthew Flatt 2011-08-28 11:21:15 -06:00
parent 2692d119be
commit 98bc4067c3

View File

@ -3504,7 +3504,11 @@ static void setup_accessible_table(Scheme_Module *m)
if (SCHEME_SYMBOLP(tl)) {
Scheme_Object *v;
v = scheme_hash_get(ht, tl);
if (!v) scheme_signal_error("internal error: defined name inaccessible");
if (!v) {
/* The defined name is inaccessible. The bytecode compiler
won't generate such modules, but synthesized module bytecode
might leave bindings out of the `toplevels' table. */
} else {
if ((SCHEME_VEC_SIZE(form) == 2)
&& scheme_compiled_duplicate_ok(SCHEME_VEC_ELS(form)[0], 1)) {
/* record simple constant from cross-module propagation: */
@ -3513,10 +3517,11 @@ static void setup_accessible_table(Scheme_Module *m)
/* record that it's constant across all instantiations: */
v = scheme_make_pair(v, scheme_constant_key);
} else {
/* record that it's fixed for any given instantiations: */
/* record that it's fixed for any given instantiation: */
v = scheme_make_pair(v, scheme_fixed_key);
}
scheme_hash_set(ht, tl, v);
}
} else
scheme_signal_error("internal error: strange defn target %d", SCHEME_TYPE(tl));
}