亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cfeinfo.c

?? Open Watcom 的 C 編譯器源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
    char *                pattern;
    SYM_ENTRY            sym;
    struct aux_info *    inf;
    char *                name;

    inf = FindInfo( &sym, sym_handle );
#ifdef __SEH__
    if( sym_handle == SymTryInit ||
        sym_handle == SymTryFini ||
        sym_handle == SymTryUnwind ||
        sym_handle == SymExcept )
    {
        pattern = "*";
    }
    else
    {
#endif
        inf = LangInfo( sym.attrib, inf );
        if( inf->objname != NULL )
        {
            pattern = inf->objname;
        }
        else if( ! (sym.flags & SYM_FUNCTION) )
        {
            pattern =  "_*";
        }
        else
        {
            pattern =  "*_";     /* for function names */
        }
#ifdef __SEH__
    }       // close that else
#endif
    name = sym.name;
    if( ((sym.flags & SYM_FUNCTION)&&(sym.attrib & FLAG_LANGUAGES) == LANG_STDCALL)
        && CompFlags.use_stdcall_at_number)
    {
        int         total_parm_size = 0;
        int         parm_size;
        TYPEPTR     fn_typ;
        TYPEPTR     *parm;
        TYPEPTR     typ;

        fn_typ = sym.sym_type;
        while( fn_typ->decl_type == TYPE_TYPEDEF )
            fn_typ = fn_typ->object;
        parm = fn_typ->u.parms;
        if( parm != NULL )
        {
            for(; (typ = *parm); ++parm )
            {
                if( typ->decl_type == TYPE_DOT_DOT_DOT )
                {
                    total_parm_size = -1;
                    break;
                }

                while( typ->decl_type == TYPE_TYPEDEF ) typ = typ->object;
                if ( typ->decl_type == TYPE_VOID ) break;

                parm_size = TypeSize( typ );
                parm_size = (parm_size + sizeof(target_int) - 1)  &
                                - sizeof(target_int);
                total_parm_size += parm_size;
            }
        }
        if( total_parm_size != -1 )
        {
            sprintf( Buffer, "%s@%d", name, total_parm_size );
            name = Buffer;
        }
    }
    *pat_ret = pattern; // return pattern string
    return( name );
}

/*
//    pass auxiliary information to back end
*/
VOIDPTR FEAuxInfo( CGSYM_HANDLE cgsym_handle, aux_class request )
{
    SYM_HANDLE           sym_handle = cgsym_handle;
    struct aux_info *    inf;
    auto SYM_ENTRY       sym;
    static hw_reg_set    save_set;

    switch( request )
    {
    case SOURCE_LANGUAGE:
        return( "C" );

    case STACK_SIZE_8087:
        return( (VOIDPTR)Stack87 );

    case CODE_GROUP:
        return( (VOIDPTR)GenCodeGroup );

    case DATA_GROUP:
        return( (VOIDPTR)DataSegName );

    case OBJECT_FILE_NAME:
        return( (VOIDPTR)ObjFileName( OBJ_EXT ) );
    case TARGET_FILE_NAME:
        return( (VOIDPTR)ForceSlash( CreateFileName( DependTarget
                                                   , OBJ_EXT, FALSE )
                                   , DependForceSlash ) );
    case DEPEND_FILE_NAME:
        return( (VOIDPTR)DepFileName() );

    case REVISION_NUMBER:
        return( (VOIDPTR)II_REVISION );

    case AUX_LOOKUP:
        return( (VOIDPTR)sym_handle );

    case PROEPI_DATA_SIZE:
        return( (VOIDPTR)ProEpiDataSize );

    case DBG_PREDEF_SYM:
        return( (VOIDPTR)SymDFAbbr );

    case P5_CHIP_BUG_SYM:
        return( (VOIDPTR)SymChipBug ); /* 09-dec-94 */

    case CODE_LABEL_ALIGNMENT:
    {
        static unsigned char Alignment[] = { 2, 1, 1 };

        if( OptSize == 0 )
            Alignment[1] = TARGET_INT;

        return( Alignment );
    }

    case CLASS_NAME:
        return( SegClassName( (unsigned)sym_handle ) );

    case USED_8087:
        CompFlags.pgm_used_8087 = 1;
        return( NULL );

#if _CPU == 386
    case P5_PROF_DATA:
        return( (VOIDPTR)FunctionProfileBlock );

    case P5_PROF_SEG:
        return( (VOIDPTR)FunctionProfileSegment );
#endif

    case SOURCE_NAME:
        if( SrcFName == ModuleName )
        {
            return( FNameFullPath( FNames ) );
        }
        else
        {
            return( ModuleName );
        }

    case CALL_CLASS:
        GetCallClass( sym_handle );
        return( &CallClass );

    case FREE_SEGMENT:
        return( NULL );

    case NEXT_LIBRARY:
    case LIBRARY_NAME:
        return( NextLibrary( (int)sym_handle, request ) );

    case NEXT_IMPORT:
    case IMPORT_NAME:
        return( NextImport( (int)sym_handle, request ) );

    case TEMP_LOC_NAME:
        return( (char *)TEMP_LOC_QUIT );

    case TEMP_LOC_TELL:
        return( NULL );

    case NEXT_DEPENDENCY:                               /* 03-dec-92 */
        return( NextDependency( (FNAMEPTR) cgsym_handle ) );
        break;

    case DEPENDENCY_TIMESTAMP:
        return( getFileDepTimeStamp( (FNAMEPTR) cgsym_handle ) );

    case DEPENDENCY_NAME:
        return( FNameFullPath( (FNAMEPTR) cgsym_handle ) );

    case PEGGED_REGISTER:
        return( SegPeggedReg( (unsigned)cgsym_handle ) );

    default:
        break;
    }

    inf = FindInfo( &sym, sym_handle );
    switch( request )
    {
    case SAVE_REGS:
        if( sym_handle != 0 )
        {
            inf = LangInfo( sym.attrib, inf );
        }
        else
        {
            sym.attrib = 0;
        }
        save_set = inf->save;
        if( sym.attrib & FLAG_SAVEREGS )
        {
            HW_CTurnOn( save_set, HW_SEGS );
        }

        #ifdef __SEH__
        if( sym_handle == SymTryInit )
        {
            HW_CTurnOff( save_set, HW_SP );
        }
        #endif
        return( &save_set );

    case RETURN_REG:
        if( sym_handle != 0 )
        {
            inf = LangInfo( sym.attrib, inf );
        }
        return( &inf->returns );

    case CALL_BYTES:
        return( inf->code );

    case PARM_REGS:
        #ifdef __SEH__
        if( sym_handle == SymTryInit ||
            sym_handle == SymTryFini ||
            sym_handle == SymTryUnwind ||
            sym_handle == SymExcept )
        {
            return( TryParms );
        }
        #endif
        if( sym_handle != 0 )
        {
            inf = LangInfo( sym.attrib, inf );
            if( inf->code == NULL && VarFunc( &sym ) )
            {
                return( DefaultVarParms );
            }
        }
        return( inf->parms );

    case STRETURN_REG:
        if( sym_handle != 0 )
        {
            inf = LangInfo( sym.attrib, inf );
        }
        return( &inf->streturn );

    default:
        break;
    }
    return( NULL );
}

#else

/*
//    This section is NOT _MACHINE==_PC, i.e.,
//        _ALPHA
//        _PPC
//
//    NextImport
//        Called (indirectly) from the code generator to inject automagically defined symbols.
//    Inputs:
//        index    (n-1)
//            Usually called from a loop until we return 0/NULL to show no more symbols
//            are required.
//        request
//            NEXT_IMPORT
//                examines the current flags to see if any symbols should be
//                automagically inserted and returns the relevant index if so.
//            IMPORT_NAME
//                returns the requested name. if we have returned an index for
//                the current compiler settings we should be called with a valid
//                index but we still perform exactly the same checks as this is
//                good practise.
//
*/
static VOIDPTR NextImport( int index, aux_class request )
{
    char        *name;

    if( request == NEXT_IMPORT )
        ++index;
    /*-----------------------------------------------------------------------
    //    handle entry points
    -----------------------------------------------------------------------*/
    switch( index )
    {
    case 1:
        /* wide char or MBCS entry */
        if( CompFlags.has_wchar_entry )
        {
            name = "__DLLstartw_";
        }
        else
        {
            name = "__DLLstart_";
        }
        /* object has defined symbol (w)LibMain/(w)DllMain  OR buildtarget == DLL*/
        if( CompFlags.has_libmain || CompFlags.bd_switch_used )
            break;

        /* wide char or MBCS entry */
        if( CompFlags.has_wchar_entry )
        {
            name = "_wstartw_";
        }
        else
        {
            name = "_wstart_";
        }
        /* symbol (w)WinMain defined */
        if( CompFlags.has_winmain )
            break;
        /* wide char or MBCS entry */
        if( CompFlags.has_wchar_entry )
        {
            name = "_cstartw_";
        }
        else
        {
            name = "_cstart_";
        }
        /* symbol (w)main defined */
        if( CompFlags.has_main )
            break;
        ++index;

    /*-----------------------------------------------------------------------
    //    handle floating point support
    -----------------------------------------------------------------------*/
    case 2:
        name = "_fltused_";
        /* emit default library info OR -zlf emit all library info */
        if( CompFlags.emit_library_with_main
         || CompFlags.emit_library_any )
        {            /* 12-mar-90 */
            if( CompFlags.float_used )
                break;
        }
        ++index;

    /*-----------------------------------------------------------------------
    //    handle entry point arg passing
    -----------------------------------------------------------------------*/
    case 3:
        name = "_argc";
        /* does (w)main have any arguments (NOT int main(void)) */
        if( CompFlags.main_has_parms )
            break;
        ++index;

    /*-----------------------------------------------------------------------
    //    handle default windowing app
    -----------------------------------------------------------------------*/
    case 4:
        /* is target default windowing application? */
        name = "__init_default_win";
        if( CompFlags.bw_switch_used )
            break;
        ++index;

    /*-----------------------------------------------------------------------
    //    unknown / fallthrough
    -----------------------------------------------------------------------*/
    default:
        index = 0;                              // indicate no more
        name = NULL;
    }
    /*
    //    return the import name, or
    */
    if( request == IMPORT_NAME )
        return( name );

    /*
    //    return the index
    */
    return( (char *)index );
}

/*
//    Return external name of symbol plus a pattern manipulator string
*/
extern char *FEExtName( CGSYM_HANDLE sym_handle, char **pat_ret )
{
    char *                pattern;
    SYM_ENTRY            sym;
    struct aux_info *    inf;
    char *                name;

    inf = FindInfo( &sym, sym_handle );
#ifdef __SEH__
    if( sym_handle == SymTryInit ||
        sym_handle == SymTryFini ||
        sym_handle == SymTryUnwind ||
        sym_handle == SymExcept )
    {
        pattern = "*";
    }
    else
    {
#endif
        inf = LangInfo( sym.attrib, inf );
        if( inf->objname != NULL )
        {
            pattern = inf->objname;
        }
        else
        {
            pattern =  "*";
        }
#ifdef __SEH__
    }       // close that else
#endif
    name = sym.name;
    *pat_ret = pattern; // return pattern string
    return( name );
}

/*
//    pass auxiliary information to back end
*/
VOIDPTR FEAuxInfo( CGSYM_HANDLE cgsym_handle, aux_class request )
{
    SYM_HANDLE            sym_handle = cgsym_handle;
    struct aux_info *    inf;
    auto SYM_ENTRY        sym;
    static hw_reg_set    save_set;

    switch( request )
    {
    case SOURCE_LANGUAGE:
        return( "C" );

    case OBJECT_FILE_NAME:
        return( (VOIDPTR)ObjFileName( OBJ_EXT ) );

    case REVISION_NUMBER:
        return( (VOIDPTR)II_REVISION );

    case AUX_LOOKUP:
        return( (VOIDPTR)sym_handle );

    case SOURCE_NAME:
        if( SrcFName == ModuleName )
        {
            return( FNameFullPath( FNames ) );
        }
        else
        {
            return( ModuleName );
        }

    case CALL_CLASS:
        GetCallClass( sym_handle );
        return( &CallClass );

    case NEXT_LIBRARY:
    case LIBRARY_NAME:
        return( NextLibrary( (int)sym_handle, request ) );

    case NEXT_IMPORT:
    case IMPORT_NAME:
        return( NextImport( (int)sym_handle, request ) );

    case FREE_SEGMENT:
        return( NULL );

    case TEMP_LOC_NAME:
        return( (char *)TEMP_LOC_QUIT );

    case TEMP_LOC_TELL:
        return( NULL );

    case NEXT_DEPENDENCY:                               /* 03-dec-92 */
        return( NextDependency( (FNAMEPTR) cgsym_handle ) );
        break;

    case DEPENDENCY_TIMESTAMP:
        return( getFileDepTimeStamp( (FNAMEPTR) cgsym_handle ) );

    case DEPENDENCY_NAME:
        return( FNameFullPath( (FNAMEPTR) cgsym_handle ) );
    }

    inf = FindInfo( &sym, sym_handle );
    switch( request )
    {
    case SAVE_REGS:
        if( sym_handle != 0 )
        {
            inf = LangInfo( sym.attrib, inf );
        }
        else
        {
            sym.attrib = 0;
        }
        save_set = inf->save;
        return( &save_set );

    case RETURN_REG:
        if( sym_handle != 0 )
        {
            inf = LangInfo( sym.attrib, inf );
        }
        return( &inf->returns );

    case CALL_BYTES:
        return( inf->code );

    case PARM_REGS:
        if( sym_handle != 0 )
        {
            inf = LangInfo( sym.attrib, inf );
            if( inf->code == NULL && VarFunc( &sym ) )
            {
                return( DefaultVarParms );
            }
        }
        return( inf->parms );
    }
    return( NULL );
}
#endif

extern char *SrcFullPath( char *buff, char const *name, unsigned max )
{
    return _getFilenameFullPath( buff, name, max );
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品欧美在线| 91首页免费视频| 色婷婷综合在线| 久久久精品一品道一区| 亚洲成人免费看| jvid福利写真一区二区三区| 日韩一卡二卡三卡国产欧美| 一区二区三区91| 成人精品一区二区三区中文字幕| 日韩美女一区二区三区| 亚洲综合自拍偷拍| 99精品在线观看视频| 国产午夜三级一区二区三| 视频一区国产视频| 欧美日韩一区二区三区不卡| 亚洲视频资源在线| 成人av电影在线网| 精品久久久久av影院| 三级不卡在线观看| 精品视频在线看| 亚洲午夜精品网| 在线视频观看一区| 亚洲精选一二三| 91久久一区二区| 一区二区三区欧美久久| 欧美日韩国产色站一区二区三区| 亚洲天堂福利av| 99这里只有久久精品视频| 国产精品理伦片| 一本色道a无线码一区v| 亚洲激情自拍视频| 欧美亚洲图片小说| 亚洲成av人片一区二区梦乃| 欧美午夜不卡在线观看免费| 五月婷婷色综合| 日韩一区二区三区av| 激情五月激情综合网| 久久精品亚洲麻豆av一区二区| 国产一区日韩二区欧美三区| 国产欧美日韩精品在线| 成人精品gif动图一区| 国产精品久久久久久久久免费丝袜| 成人激情图片网| 亚洲欧美另类久久久精品2019| 99久久精品情趣| 亚洲国产视频网站| 91精品国产一区二区三区蜜臀| 老色鬼精品视频在线观看播放| 久久久不卡影院| 99精品在线观看视频| 亚洲观看高清完整版在线观看| 欧美一级精品大片| 成人免费毛片aaaaa**| 亚洲影院在线观看| 日韩亚洲欧美中文三级| 粉嫩在线一区二区三区视频| 一区二区在线免费| 精品国产百合女同互慰| 99热国产精品| 免费久久精品视频| 国产精品二三区| 欧美人与禽zozo性伦| 国产裸体歌舞团一区二区| 亚洲免费资源在线播放| 欧美成人精品福利| 91久久精品国产91性色tv| 老司机午夜精品| 亚洲乱码国产乱码精品精的特点 | 国产精品女主播在线观看| 91福利视频久久久久| 精品一区二区精品| 亚洲免费大片在线观看| 26uuu久久综合| 在线观看国产日韩| 国产98色在线|日韩| 日韩国产欧美三级| 亚洲激情图片一区| 久久免费精品国产久精品久久久久| 色综合中文综合网| 亚洲一区在线看| 国产日韩欧美精品在线| 91精品免费在线| 成人18视频日本| 国产自产高清不卡| 午夜精品久久一牛影视| 亚洲婷婷在线视频| 国产午夜久久久久| 欧美成人午夜电影| 欧美精品乱码久久久久久按摩| 成+人+亚洲+综合天堂| 国产麻豆91精品| 久久精品99国产国产精| 调教+趴+乳夹+国产+精品| 亚洲视频一区在线观看| 国产亚洲一二三区| 精品国产乱码久久久久久久| 欧美精品第一页| 欧美日韩国产区一| 欧美性一级生活| 在线一区二区观看| 91热门视频在线观看| 成人国产精品免费观看| 国产乱人伦偷精品视频免下载| 日本aⅴ亚洲精品中文乱码| 亚洲电影一级黄| 亚洲va欧美va人人爽| 亚洲成av人片观看| 天天操天天色综合| 日本麻豆一区二区三区视频| 日韩精品久久理论片| 午夜精品一区在线观看| 亚洲成人你懂的| 肉色丝袜一区二区| 日本一不卡视频| 久久99久久精品| 加勒比av一区二区| 国产精品18久久久| 成人av在线播放网站| 97久久久精品综合88久久| 色哟哟一区二区在线观看| 色妹子一区二区| 欧美日韩在线播放三区| 日韩一区二区麻豆国产| 日韩欧美色综合网站| 久久久亚洲午夜电影| 国产精品久久久久久妇女6080| 中文字幕一区二区在线观看| 亚洲人精品午夜| 午夜欧美2019年伦理| 久久er精品视频| 国产成人精品网址| 91麻豆.com| 日韩视频免费观看高清完整版在线观看| 欧美一区二区日韩| 中文字幕国产一区二区| 亚洲一级片在线观看| 麻豆一区二区三| av资源网一区| 欧美另类久久久品| 国产三级精品三级| 一区二区高清在线| 国产在线精品视频| 91精彩视频在线观看| 精品日韩在线观看| 亚洲精品国产成人久久av盗摄| 青草av.久久免费一区| 成人精品高清在线| 91精品国产综合久久香蕉的特点 | 欧美成人三级电影在线| 国产精品麻豆视频| 五月激情综合色| 9i在线看片成人免费| 日韩欧美中文一区二区| 亚洲视频综合在线| 国内精品视频666| 欧美偷拍一区二区| 中文字幕乱码亚洲精品一区| 日韩高清电影一区| 成人久久久精品乱码一区二区三区| 欧美群妇大交群的观看方式| 国产亚洲成av人在线观看导航| 亚洲一线二线三线久久久| 国产一区二区女| 91精品国产综合久久婷婷香蕉| 国产精品久久久久久久久果冻传媒 | 亚洲女同一区二区| 韩国精品主播一区二区在线观看| 欧美午夜寂寞影院| 亚洲私人黄色宅男| 国产经典欧美精品| 日韩欧美一级精品久久| 一区二区三区鲁丝不卡| 成人免费视频一区| 久久精品夜夜夜夜久久| 另类小说视频一区二区| 欧美精品1区2区| 一区二区三区在线免费视频| 成人黄色电影在线| 国产亚洲成aⅴ人片在线观看| 麻豆久久一区二区| 欧美一级在线视频| 天天免费综合色| 欧美视频在线观看一区| 亚洲精品乱码久久久久久黑人| 成人av网站免费观看| 国产三级欧美三级日产三级99 | 丝袜a∨在线一区二区三区不卡| 91玉足脚交白嫩脚丫在线播放| 中文字幕av在线一区二区三区| 国产一区二区三区国产| 久久综合色8888| 国产在线看一区| 国产亚洲视频系列| 国产精品一二三在| 久久精品网站免费观看| 福利一区二区在线| 国产精品二区一区二区aⅴ污介绍| 成人午夜电影久久影院| 亚洲国产高清aⅴ视频| 成人午夜免费av|