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

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

?? cfeinfo.c

?? Open Watcom 的 C 編譯器源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
}

void GetCallClass( SYM_HANDLE sym_handle )
{
    struct aux_info *inf;
    auto SYM_ENTRY sym;

    CallClass = DefaultInfo.class;
    if( sym_handle != 0 )
    {
        inf = FindInfo( &sym, sym_handle );
        if( sym.flags & SYM_FUNCTION )
        {
            switch( sym.attrib & FLAG_LANGUAGES )
            {
            case LANG_CDECL:
                if( inf != &DefaultInfo )
                {
                    CallClass = inf->class;
                }
                else
                {
                    CallClass = CdeclInfo.class;
                }
                #if _CPU == 8086                        /* 18-nov-94 */
                if( TargSys == TS_WINDOWS )
                {
                    CallClass |= FAT_WINDOWS_PROLOG;
                }
                #endif
            break;

            case LANG_PASCAL:
                if( inf != &DefaultInfo )
                {
                    CallClass = inf->class;
                }
                else
                {
                    CallClass = PascalInfo.class;
                }
                #if _CPU == 8086                        /* 21-jan-93 */
                if( TargSys == TS_WINDOWS )
                {       /* 01-mar-91 */
                    CallClass |= FAT_WINDOWS_PROLOG;
                }
                #endif
            break;

            case LANG_FORTRAN:
                CallClass = FortranInfo.class;
            break;

            case LANG_SYSCALL:
                CallClass = SyscallInfo.class;
            break;

            case LANG_STDCALL:
                CallClass = StdcallInfo.class;
            break;

            case LANG_OPTLINK:
                CallClass = OptlinkInfo.class;
            break;

            default:
                CallClass = inf->class;
            }
        #if _MACHINE == _PC
            if( CompFlags.emit_names )
            {
                CallClass |= EMIT_FUNCTION_NAME;
            }
            if( sym.attrib & FLAG_FAR )
            {
                CallClass |= FAR;
                if( sym.attrib & FLAG_NEAR )
                {
                    CallClass |= INTERRUPT;
                }
            }
            else if( sym.attrib & FLAG_NEAR )
            {
                CallClass &= ~ FAR;
            }
        #endif
        #ifdef DLL_EXPORT
            if( sym.attrib & FLAG_EXPORT )
            {                /* 12-mar-90 */
                CallClass |= DLL_EXPORT;
            }
        #endif
        #ifdef LOAD_DS_ON_ENTRY
            if( sym.attrib & FLAG_LOADDS )
            {                /* 26-apr-90 */
                #if 0 /* John - 11-mar-93 */          /* 21-feb-93 */
                if( TargSys == TS_WINDOWS )
                {
                    CallClass |= FAT_WINDOWS_PROLOG;
                }
                else
                {
                    CallClass |= LOAD_DS_ON_ENTRY;
                }
                #else
                CallClass |= LOAD_DS_ON_ENTRY;
                #endif
            }
        #endif
        #ifdef MAKE_CALL_INLINE
            if( IsInLineFunc( sym_handle ) )
            {
                CallClass |= MAKE_CALL_INLINE;
            }
        #endif
        }
        if( /* inf == &DefaultInfo && */  VarFunc( &sym ) )
        {/* 19-dec-88*/
            CallClass |= CALLER_POPS | HAS_VARARGS;
        }
    }
    #ifdef REVERSE
        CallClass &= ~ REVERSE_PARMS;               /* 28-may-89 */
    #endif
    #if _MACHINE == _PC
        if( sym.flags & SYM_FUNC_NEEDS_THUNK )
        {
            CallClass |= THUNK_PROLOG;
        }
    #endif
    #ifdef PROLOG_HOOKS
        if( CompFlags.ep_switch_used != 0 )
        {
            CallClass |= PROLOG_HOOKS;
        }
    #endif
    #ifdef EPILOG_HOOKS
        if( CompFlags.ee_switch_used != 0 )
        {
            CallClass |= EPILOG_HOOKS;
        }
    #endif
    #ifdef GROW_STACK
        if( CompFlags.sg_switch_used )
        {
            CallClass |= GROW_STACK;
        }
    #endif
    #ifdef TOUCH_STACK
        if( CompFlags.st_switch_used )
        {
            CallClass |= TOUCH_STACK;
        }
    #endif
}

static time_t *getFileDepTimeStamp( FNAMEPTR flist )
{
    static time_t            stamp;

#if _MACHINE == _PC && COMP_CFG_COFF == 0
    stamp = _timet2dos( flist->mtime );
#else
    stamp = flist->mtime;
#endif
    return( &stamp );
}

#ifdef __LARGE__
 #define PTR(x) (VOIDPTR)MK_FP((x),0)
#else
 #define PTR(x) (VOIDPTR)(x)
#endif

static FNAMEPTR NextDependency( FNAMEPTR curr )
{
    if( !CompFlags.emit_dependencies ) {
        return( NULL );
    }
    if( curr == NULL ) {
        curr = FNames;
    } else {
        curr = curr->next;
    }
    while( curr != NULL ) {
        if( curr->rwflag && !SrcFileInRDir( curr ) )
            break;
        curr = curr->next;
    }
    return( curr );
}

/*
//    NextLibrary
//        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 libraries
//        request
//            NEXT_LIBRARY
//                examines the current flags to see if any libraries should be
//                automagically referenced and returns the relevant index if so.
//            LIBRARY_NAME
//                returns the requested name.
//
*/
static VOIDPTR NextLibrary( int index, aux_class request )
{
    struct library_list *liblist;
    char                *name = NULL;
    int                 i;

    i = 0;
    if( request == NEXT_LIBRARY )
        ++index;

    for( liblist = HeadLibs; liblist; liblist = liblist->next )
    {
        name = &liblist->prio;
        ++i;
        if( i == index )
            break;
    }
    if( liblist == NULL )
    {
        switch( index - i )
        {
        case 1: /* return 1 for CLIB */
            name = CLIB_Name;
            if( CompFlags.emit_library_any )
                break;
            if( CompFlags.emit_library_with_main )
            {
                if( CompFlags.has_main )
                    break;
                if( CompFlags.has_winmain )
                    break;
                if( CompFlags.bd_switch_used )
                    break;
                if( CompFlags.has_libmain )
                    break;
                if( CompFlags.bm_switch_used )
                    break;  /* JBS */
                ++index;
            }
            else
            {
                name = NULL;
                index = 0;              // indicate all done
            }
        break;

        /*
        //    MATHLIB is always referenced as a default library because
        //    the linker wont include anything without a 'real' referenced
        //    symbol
        */
        case 2: /* return 2 for MATHLIB */
            name = MATHLIB_Name;
        break;

        case 3: /* return 3 for EMULIB */
            name = EmuLib_Name;
            if( EmuLib_Name != NULL )
                break;
            ++index;

        case 4: /* return 4 for PCODE */
            #ifdef __PCODE__
            name = PcodeLib_Name;
            if( CompFlags.pcode_generated )
                break;
            #endif
            name = NULL;
            index = 0;                  // indicate all done
        }
    }
    /*
    //    return library name, or
    */
    if( request == LIBRARY_NAME )
        return( name );
    /*
    //    library index
    */
    return( (char *)index );
}

#if _MACHINE == _PC
/*
//    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(!CompFlags.emit_targimp_symbols)
        return (NULL);

    if( request == NEXT_IMPORT )
        ++index;

    switch( index )
    {
    /*-----------------------------------------------------------------------
    //    handle entry points
    -----------------------------------------------------------------------*/
    case 1:
        /* wide char or MBCS entry */
        if( CompFlags.has_wchar_entry )
        {
            name = "__DLLstartw_";
        }
        else
        {
            name = "__DLLstart_";
        }
        if( CompFlags.bd_switch_used )        /* build target == DLL ? */
            break;
        if( CompFlags.has_libmain )            /* object has defined symbol (w)LibMain/(w)DllMain */
        {    /* build target == console or gui application ? */
            if( !(CompFlags.bc_switch_used || CompFlags.bg_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 )
        {
            /* gui application */
            if( CompFlags.bg_switch_used  )
                break;
            /* target == DLL or target == console*/
            if( !(CompFlags.bd_switch_used || CompFlags.bc_switch_used ) )
                break;
        }
    #if _CPU == 8086
        /* is target windows AND symbol (w)main is defined */
        if( TargetSwitches & WINDOWS && CompFlags.has_main )
            break;
    #endif
        /* wide char or MBCS entry */
        if( CompFlags.has_wchar_entry )
        {
            name = "_cstartw_";
        }
        else
        {
            name = "_cstart_";
        }
        /* is symbol (w)main is defined ? */
        if( CompFlags.has_main )
        {
            /* build target == console ? */
            if( CompFlags.bc_switch_used  )
                break;
            /* target == DLL or target = GUI app ? */
            if( !(CompFlags.bd_switch_used || CompFlags.bg_switch_used ) )
                break;
        }
        ++index;

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

    /*-----------------------------------------------------------------------
    //    handle code model library support
    -----------------------------------------------------------------------*/
    case 3:
        #if _CPU == 8086
        name = "_small_code_";
        if( TargetSwitches & BIG_CODE )            /* big code model ? */
        {
            name = "_big_code_";
        }
        if( CompFlags.emit_library_with_main    /* emit default library info? */
         || CompFlags.emit_library_any )        /* -zlf emit all library info? */
        {            /* 12-mar-90 */
            if( FirstStmt != 0 )
                break;
        }
        #endif
        ++index;

    /*-----------------------------------------------------------------------
    //    handle floating point emulator
    -----------------------------------------------------------------------*/
    case 4:
        /* generating FPU instructions OR this object used floats ?*/
        if( CompFlags.pgm_used_8087  || CompFlags.float_used )
        {
            #if _CPU == 386
                name = "__init_387_emulator";
            #else
                name = "__init_87_emulator";
            #endif
            if( GET_FPU( ProcRevision ) & FPU_EMU )    /* using emulated FPU code? */
                break;
        }
        ++index;

    /*-----------------------------------------------------------------------
    //    handle FPU requirement
    -----------------------------------------------------------------------*/
    case 5:
        /* (emit default library info OR -zlf emit all library info) AND use backward compatible FPU code? */
        if( (CompFlags.emit_library_with_main || CompFlags.emit_library_any )
          &&  Stack87 == 4 )
        {
            name = "__old_8087";
        }
        else
        {
            name = "__8087";
        }
        /* generating FPU instructions OR this object used floats? */
        if( CompFlags.pgm_used_8087 || CompFlags.float_used )
        {
            if( GET_FPU(ProcRevision) > FPU_NONE )
                break;
        }
        ++index;

    /*-----------------------------------------------------------------------
    //    handle entry point arg passing
    -----------------------------------------------------------------------*/
    case 6:
        /* wide char or MBCS entry */
        if( CompFlags.has_wchar_entry )
        {
            name = "__wargc";
        }
        else
        {
            name = "__argc";
        }
    #if _CPU == 386
        /* NOT using register convention arg passing? */
        if( ! CompFlags.register_conventions )
        {
            ++name;  // change from __wargc , __argc to _wargc..
        }
    #endif
        /* does (w)main have any arguments (NOT int main(void)) */
        if( CompFlags.main_has_parms )
            break;
        ++index;

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

    /*-----------------------------------------------------------------------
    //    handle NetWare
    -----------------------------------------------------------------------*/
    case 8:
        /* is target NETWARE or NETWARE5? */
        name = "__WATCOM_Prelude";
        if( TargSys == TS_NETWARE )
            break;
        if( TargSys == TS_NETWARE5 )
            break;
        ++index;

    /*-----------------------------------------------------------------------
    //    handle 'old' profiling
    -----------------------------------------------------------------------*/
    case 9:
        /* is profiling enabled (-et)? */
        name = "__p5_profile";
        if( TargetSwitches & P5_PROFILING )
            break;

    /*-----------------------------------------------------------------------
    //    handle 'new' profiling
    -----------------------------------------------------------------------*/
    case 10:
        /* is profiling enabled (-etp)? */
        name = "__new_p5_profile";
        if( TargetSwitches & NEW_P5_PROFILING )
            break;

    /*-----------------------------------------------------------------------
    //    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 )
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久这里只精品最新地址| 成人黄页毛片网站| 亚洲已满18点击进入久久| 亚洲国产精品ⅴa在线观看| 精品国产伦一区二区三区观看体验| 欧美精品久久久久久久久老牛影院 | 国产精品久久一级| 国产精品国产自产拍高清av| 国产欧美一区二区在线| 国产女主播一区| 国产精品嫩草影院av蜜臀| 国产精品人妖ts系列视频| 亚洲三级电影网站| 亚洲国产精品尤物yw在线观看| 亚洲国产成人tv| 日韩av电影天堂| 久久国产精品免费| 国产成人在线色| 99精品欧美一区二区三区综合在线| av一区二区三区在线| 在线一区二区三区做爰视频网站| 欧美午夜寂寞影院| 欧美一区二区性放荡片| 国产日韩欧美不卡| 亚洲自拍都市欧美小说| 免费xxxx性欧美18vr| 成人蜜臀av电影| 欧美久久久久免费| 日本一区二区三区久久久久久久久不 | 国产精品国产精品国产专区不片| 亚洲色图20p| 美女精品自拍一二三四| 国产精品一区二区黑丝| 色94色欧美sute亚洲线路一久| 欧美精品精品一区| 国产女人aaa级久久久级| 亚洲国产另类av| 国产91精品一区二区麻豆网站| 色综合中文字幕| 2023国产精品| 亚洲成人黄色影院| 丁香婷婷综合网| 日韩一二三四区| 一区二区不卡在线视频 午夜欧美不卡在| 蜜臀国产一区二区三区在线播放| 国产高清在线观看免费不卡| 欧美老年两性高潮| 中文字幕制服丝袜一区二区三区| 蜜桃av噜噜一区| 欧美日韩不卡一区二区| 亚洲免费观看高清完整版在线| 激情久久久久久久久久久久久久久久 | 国产一区二区中文字幕| 欧美手机在线视频| 国产精品国产自产拍高清av王其| 精彩视频一区二区三区| 欧美日韩电影一区| 一区二区在线电影| av高清久久久| 国产精品沙发午睡系列990531| 另类小说图片综合网| 欧美撒尿777hd撒尿| 亚洲另类春色国产| va亚洲va日韩不卡在线观看| 亚洲精品一区二区在线观看| 免费一级欧美片在线观看| 欧美日韩亚洲综合| 一区二区三区高清在线| 91美女在线观看| 成人免费在线视频| 91色在线porny| 国产精品二三区| 99久久精品免费| 国产精品护士白丝一区av| 不卡一区在线观看| 最新国产成人在线观看| 色婷婷综合视频在线观看| 亚洲视频每日更新| 91色.com| 亚洲动漫第一页| 欧美一区二区久久| 麻豆成人av在线| 国产午夜精品一区二区| 岛国av在线一区| 18成人在线视频| 日本精品一级二级| 性做久久久久久| 精品国产乱码久久久久久蜜臀| 激情图片小说一区| 中文字幕在线观看不卡视频| 91老师国产黑色丝袜在线| 亚洲伊人色欲综合网| 91精品婷婷国产综合久久 | 亚洲国产成人在线| 成人深夜在线观看| 一区二区三区免费网站| 欧美日韩精品欧美日韩精品一 | 国产精品综合二区| 国产精品成人在线观看| 欧美午夜精品一区二区蜜桃| 蜜臀av一区二区在线免费观看 | 91麻豆精品一区二区三区| 亚洲一区二区精品视频| 精品国精品国产尤物美女| 成人爱爱电影网址| 午夜精品久久久久久久99樱桃| 日韩一区二区三区电影 | 欧美日韩国产三级| 国产一区二区三区久久久| 亚洲视频一二三区| 欧美一级欧美三级在线观看| 成人做爰69片免费看网站| 亚洲国产精品自拍| 中日韩av电影| 欧美一区永久视频免费观看| 成人黄色软件下载| 奇米888四色在线精品| 日韩码欧中文字| 日韩欧美在线网站| 日本精品裸体写真集在线观看| 精一区二区三区| 婷婷成人综合网| 亚洲柠檬福利资源导航| 久久蜜臀精品av| 7777精品伊人久久久大香线蕉超级流畅| 国产精品一区二区男女羞羞无遮挡| 亚洲国产视频在线| 国产精品久久久久久久午夜片| 日韩精品一区二区三区老鸭窝| 在线看日本不卡| 成人免费av网站| 国产精品一区二区久久不卡| 美国三级日本三级久久99| 亚洲一区二区在线播放相泽| 中文字幕一区二区三区精华液 | 日本不卡高清视频| 一区二区三区四区高清精品免费观看 | 成人综合在线网站| 精一区二区三区| 欧美96一区二区免费视频| 一区二区三区自拍| 亚洲色图一区二区三区| 亚洲欧洲精品一区二区三区不卡| 久久中文字幕电影| 欧美精品一区二区三区蜜桃| 日韩免费观看2025年上映的电影| 欧美日韩的一区二区| 欧美日韩国产首页在线观看| 欧美网站大全在线观看| 欧美熟乱第一页| 欧美日韩一级黄| 欧美麻豆精品久久久久久| 欧美色网一区二区| 欧美日韩在线不卡| 宅男在线国产精品| 欧美变态凌虐bdsm| 久久久一区二区三区| 久久精品人人爽人人爽| 久久精品免视看| 欧美激情在线一区二区三区| 欧美极品少妇xxxxⅹ高跟鞋| 国产精品人成在线观看免费 | 捆绑调教美女网站视频一区| 日本亚洲视频在线| 国模套图日韩精品一区二区| 国产成人免费网站| www.色综合.com| 欧美性淫爽ww久久久久无| 欧美日韩大陆一区二区| 日韩亚洲欧美中文三级| 国产日韩欧美不卡在线| 亚洲男人电影天堂| 日日骚欧美日韩| 国产成人日日夜夜| 在线日韩国产精品| 日韩一级片网站| 中文字幕高清一区| 一区二区三区视频在线观看| 日韩精品免费视频人成| 国产风韵犹存在线视精品| 99热精品国产| 日韩欧美三级在线| 国产精品第五页| 免费在线观看视频一区| 成人av免费在线观看| 欧美日本一区二区三区四区| 欧美精品一区二区三区高清aⅴ| 国产精品家庭影院| 免费在线欧美视频| 色吧成人激情小说| 久久久久久久久久电影| 亚洲自拍偷拍av| 国产在线精品一区二区不卡了 | 国产宾馆实践打屁股91| 欧美性xxxxx极品少妇| 亚洲精品一线二线三线| 亚洲地区一二三色| www.亚洲免费av| 久久久精品免费观看| 亚洲一区二区三区视频在线|