⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acc_chkr.ch

📁 给程序加密(upx)
💻 CH
字号:
/* ACC -- Automatic Compiler Configuration   Copyright (C) 1996-2004 Markus Franz Xaver Johannes Oberhumer   All Rights Reserved.   This software is a copyrighted work licensed under the terms of   the GNU General Public License. Please consult the file "ACC_LICENSE"   for details.   Markus F.X.J. Oberhumer   <markus@oberhumer.com>   http://www.oberhumer.com/ *//*************************************************************************//**************************************************************************/#if !defined(__ACCCHKR_FUNCNAME)#  define __ACCCHKR_FUNCNAME(f) accchkr_ ## f#endif#if !defined(ACCCHKR_ASSERT)#if 0 || defined(ACCCHKR_CONFIG_DEBUG)#include <stdio.h>static int __ACCCHKR_FUNCNAME(assert_fail)(const char* s, unsigned l){    fprintf(stderr, "ACCCHKR assertion failed in line %u: `%s'\n", l, s);    return 0;}#define ACCCHKR_ASSERT(expr)    ((expr) ? 1 : __ACCCHKR_FUNCNAME(assert_fail)(#expr,__LINE__))#else#define ACCCHKR_ASSERT(expr)    ((expr) ? 1 : 0)#endif#endif/* avoid inlining */static int __ACCCHKR_FUNCNAME(schedule_insns_bug)(void);static int __ACCCHKR_FUNCNAME(strength_reduce_bug)(int*);/*************************************************************************// main entry**************************************************************************/static int __ACCCHKR_FUNCNAME(check)(int r){#if defined(ACC_ENDIAN_BIG_ENDIAN)    {        union { long l; unsigned char c[sizeof(long)]; } u;        u.l = 0; u.c[sizeof(long)-1] = 0x80;        r &= ACCCHKR_ASSERT(u.l == 128);        u.l = 0; u.c[0] = 0x80;        r &= ACCCHKR_ASSERT(u.l < 0);        ACC_UNUSED(u);    }#endif#if defined(ACC_ENDIAN_LITTLE_ENDIAN)    {        union { long l; unsigned char c[sizeof(long)]; } u;        u.l = 0; u.c[0] = 0x80;        r &= ACCCHKR_ASSERT(u.l == 128);        u.l = 0; u.c[sizeof(long)-1] = 0x80;        r &= ACCCHKR_ASSERT(u.l < 0);        ACC_UNUSED(u);    }#endif    /* check for the gcc schedule-insns optimization bug */    if (r == 1)    {        r &= ACCCHKR_ASSERT(!__ACCCHKR_FUNCNAME(schedule_insns_bug()));    }    /* check for the gcc strength-reduce optimization bug */    if (r == 1)    {        static int x[3];        static unsigned xn = 3;        register unsigned j;        for (j = 0; j < xn; j++)            x[j] = (int)j - 3;        r &= ACCCHKR_ASSERT(!__ACCCHKR_FUNCNAME(strength_reduce_bug(x)));    }    return r;}/*************************************************************************//**************************************************************************/static int __ACCCHKR_FUNCNAME(schedule_insns_bug)(void){    const int a[] = {1, 2, 0}; const int* b;    b = a; return (*b) ? 0 : 1;}static int __ACCCHKR_FUNCNAME(strength_reduce_bug)(int* x){#if 0 && (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)    ACC_UNUSED(x); return 0;#else    return x[0] != -3 || x[1] != -2 || x[2] != -1;#endif}/*vi:ts=4:et*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -