static void TestSubroutine( void ) { dw_handle inline_sub; inline_sub = DWBeginSubroutine( Client, DW_SB_NEAR_CALL, ConstCharStar, NULL, NULL, NULL, 0, NULL, "inline_me_baby", 0, DW_FLAG_DECLARATION | DW_FLAG_PROTOTYPED | DW_FLAG_DECLARED_INLINE ); TestTypedef(); DWEndSubroutine( Client ); DWBeginInlineSubroutine( Client, inline_sub, NULL, NULL ); TestArray(); DWEndSubroutine( Client ); }
void BIEndRBorEP( void ) { //=========================== if( _GenerateBrInfo() ) { DWEndSubroutine ( cBIId ); } }
void BIEndSF( sym_id ste_ptr ) { //================================= if( _GenerateBrInfo() ) { DWEndSubroutine ( cBIId ); BIRefSymbol( BIGetHandle( ste_ptr ) ); currState &= ~BI_STATE_IN_STMT_FUNC; } }
void BIEndSubProg( void ) { //====================== if( _GenerateBrInfo() ) { if ( ( SubProgId->u.ns.flags & SY_SUBPROG_TYPE ) == SY_BLOCK_DATA ) { BIEndBlockData(); } else { BIDumpAllEntryPoints( Entries, 0 ); DWEndSubroutine ( cBIId ); } currState &= ~( BI_STATE_IN_SCOPE | BI_STATE_RESOLVED ); } }
static void BIOutDeclareSP( sym_id ste_ptr, long flags ) { //======================================================== // Dump the name of an external or intrinsic function. and its data char name[MAX_SYMLEN+1]; dw_handle handle; if ( ste_ptr == SubProgId ) return; flags |= DW_FLAG_DECLARATION; memset( name, 0, MAX_SYMLEN+1 ); handle = DWBeginSubroutine( cBIId, 0, BIGetSPType( ste_ptr ), justJunk, 0, 0, 0, 0, strncpy( name, ste_ptr->u.ns.name, ste_ptr->u.ns.u2.name_len ), 0, flags ); DWEndSubroutine ( cBIId ); BISetHandle( ste_ptr, handle ); BIRefSymbol( handle ); }