static void GetTrueEntry( stack_entry *entry ) { addr_off near_off; type_modifier mod; for( ;; ) { mod = entry->info.modifier; if( !(mod & TM_FLAG_DEREF) ) break; DoAPoints( entry, TK_NONE ); if( entry->info.kind == TK_VOID ) Error( ERR_NONE, LIT( ERR_VOID_BASE ) ); switch( mod & TM_MOD_MASK ) { case TM_NEAR: if( entry->info.kind == TK_FUNCTION ) { near_off = entry->v.loc.e[0].u.addr.mach.offset; entry->v.loc.e[0].u.addr = Context.execution; entry->v.loc.e[0].u.addr.mach.offset = near_off; } break; } } }
void DoPoints( type_kind def ) { DoAPoints( ExprSP, def ); }