# HG changeset patch # User lost # Date 1237752457 0 # Node ID 7824f94c5786e2c5628e192a300069d4647db482 # Parent 3f9d299d24773b5407c270f10f709c69d6d7d93f take 2: importing undefined exports diff -r 3f9d299d2477 -r 7824f94c5786 lwasm/pseudo.c --- a/lwasm/pseudo.c Sun Mar 22 19:26:26 2009 +0000 +++ b/lwasm/pseudo.c Sun Mar 22 20:07:37 2009 +0000 @@ -1084,18 +1084,15 @@ se = lwasm_find_symbol(as, l -> sym, -1); if (!se && (as -> pragmas & PRAGMA_IMPORTUNDEFEXPORT)) { - // import the symbol - if (as -> csect) - { - register_error(as, l, 1, "Cannot declare external symbols within a section"); - return; - } - + void *p; + p = as -> csect; + as -> csect = NULL; lwasm_register_symbol(as, l, l -> sym, 0, SYMBOL_EXTERN); + as -> csect = p; } else { - if (!se) + if (!se) { register_error(as, l, 2, "Exported symbols must be fully defined within a section"); return;