249 lines
7.4 KiB
C
249 lines
7.4 KiB
C
![]() |
#include <stdio.h>
|
||
|
int print_hash_value = 1;
|
||
|
static void platform_main_begin(void)
|
||
|
{
|
||
|
}
|
||
|
static unsigned crc32_tab[256];
|
||
|
static unsigned crc32_context = 0xFFFFFFFFUL;
|
||
|
static void
|
||
|
crc32_gentab (void)
|
||
|
{
|
||
|
unsigned crc;
|
||
|
unsigned poly = 0xEDB88320UL;
|
||
|
int i, j;
|
||
|
for (i = 0; i < 256; i++) {
|
||
|
crc = i;
|
||
|
for (j = 8; j > 0; j--) {
|
||
|
if (crc & 1) {
|
||
|
crc = (crc >> 1) ^ poly;
|
||
|
} else {
|
||
|
crc >>= 1;
|
||
|
}
|
||
|
}
|
||
|
crc32_tab[i] = crc;
|
||
|
}
|
||
|
}
|
||
|
static void
|
||
|
crc32_byte (unsigned char b) {
|
||
|
crc32_context =
|
||
|
((crc32_context >> 8) & 0x00FFFFFF) ^
|
||
|
crc32_tab[(crc32_context ^ b) & 0xFF];
|
||
|
}
|
||
|
extern int strcmp ( char *, char *);
|
||
|
static void
|
||
|
crc32_8bytes (unsigned val)
|
||
|
{
|
||
|
crc32_byte ((val>>0) & 0xff);
|
||
|
crc32_byte ((val>>8) & 0xff);
|
||
|
crc32_byte ((val>>16) & 0xff);
|
||
|
crc32_byte ((val>>24) & 0xff);
|
||
|
}
|
||
|
static void
|
||
|
transparent_crc (unsigned val, char* vname, int flag)
|
||
|
{
|
||
|
crc32_8bytes(val);
|
||
|
if (flag) {
|
||
|
printf("...checksum after hashing %s : %X\n", vname, crc32_context ^ 0xFFFFFFFFU);
|
||
|
}
|
||
|
}
|
||
|
static void
|
||
|
platform_main_end (int x, int flag)
|
||
|
{
|
||
|
if (!flag) printf ("checksum = %x\n", x);
|
||
|
}
|
||
|
static long __undefined;
|
||
|
void csmith_compute_hash(void);
|
||
|
void step_hash(int stmt_id);
|
||
|
static unsigned char g_9 = 0xAAL;
|
||
|
static int g_63 = 0x8400B8F3L;
|
||
|
static int *g_62 = &g_63;
|
||
|
static int **g_154 = &g_62;
|
||
|
static int ***g_153 = &g_154;
|
||
|
static int g_232 = 0x812E1121L;
|
||
|
static short func_1(void);
|
||
|
static short func_4(unsigned char p_5, short p_6, signed char p_7, int p_8);
|
||
|
static signed char func_12(unsigned p_13, unsigned short p_14, int p_15);
|
||
|
static unsigned func_20(unsigned char p_21, unsigned char p_22, int p_23, unsigned char p_24);
|
||
|
static unsigned func_25(unsigned short p_26, signed char p_27, unsigned p_28, unsigned p_29);
|
||
|
static unsigned short func_32(unsigned short p_33);
|
||
|
static unsigned short func_38(unsigned short p_39, unsigned p_40, unsigned p_41, int p_42);
|
||
|
static int func_45(int p_46, int p_47, unsigned p_48, unsigned p_49);
|
||
|
static unsigned func_51(short p_52, short p_53);
|
||
|
static short func_56(int p_57, unsigned short p_58);
|
||
|
static short func_1(void)
|
||
|
{
|
||
|
unsigned char l_16 = 0x7CL;
|
||
|
int ***l_227 = &g_154;
|
||
|
unsigned l_228 = 4UL;
|
||
|
unsigned char l_229 = 0UL;
|
||
|
short l_230 = 0xDE1BL;
|
||
|
int *l_231 = &g_232;
|
||
|
step_hash(113);
|
||
|
l_229 &= ((0UL && ((((signed char)(func_4(g_9, ((signed char)func_12(g_9, l_16, g_9) * (signed char)g_9), ((((void*)0 != l_227) <= l_16) != l_16), l_228) & g_9) << (signed char)g_9) | 0xADL) >= 0xB327L)) < l_228);
|
||
|
step_hash(114);
|
||
|
(*l_231) ^= (((((g_63 >= g_63) & 0x74C3L) >= ((((void*)0 == (*g_154)) >= func_32(func_20(g_63, func_32(g_9), l_230, g_9))) < (-1L))) & (***l_227)) > 9UL);
|
||
|
step_hash(115);
|
||
|
return g_232;
|
||
|
}
|
||
|
static short func_4(unsigned char p_5, short p_6, signed char p_7, int p_8)
|
||
|
{
|
||
|
step_hash(110);
|
||
|
(*g_154) = (**g_153);
|
||
|
step_hash(111);
|
||
|
(***g_153) &= 0xB0F42965L;
|
||
|
step_hash(112);
|
||
|
return g_9;
|
||
|
}
|
||
|
static signed char func_12(unsigned p_13, unsigned short p_14, int p_15)
|
||
|
{
|
||
|
signed char l_17 = 0x6EL;
|
||
|
int *l_207 = &g_63;
|
||
|
step_hash(107);
|
||
|
if (((l_17 < ((int)0x3051EBF0L % (int)func_20((func_25(((unsigned short)func_32(g_9) + (unsigned short)((short)(~((((unsigned char)(func_38(p_15, ((short)g_9 >> (short)(l_17 & 0x1718BC69L)), g_9, l_17) ^ p_13) / (unsigned char)0xA5L) && l_17) <= 0x74ABL)) * (short)0x1B3DL)), l_17, p_13, l_17) < 0x7F559297L), g_9, l_17, p_13))) < p_15))
|
||
|
{
|
||
|
int ***l_205 = &g_154;
|
||
|
int l_206 = 4L;
|
||
|
step_hash(95);
|
||
|
(**g_154) = p_14;
|
||
|
step_hash(96);
|
||
|
l_206 &= (((short)0L % (short)g_63) != ((void*)0 == l_205));
|
||
|
step_hash(97);
|
||
|
l_207 = (**g_153);
|
||
|
step_hash(98);
|
||
|
(*l_207) = (p_13 >= ((unsigned short)p_13 + (unsigned short)((*l_207) == ((unsigned short)((int)((short)((unsigned short)(((-1L) && (*l_207)) && 1UL) << (unsigned short)((((unsigned char)((int)(((0x53C7L == 0xA15FL) != ((signed char)0x1AL - (signed char)(***l_205))) && (***l_205)) - (int)0L) * (unsigned char)8L) & 0UL) | g_63)) % (short)p_14) - (int)g_9) / (unsigned short)g_9))));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
int l_224 = 3L;
|
||
|
int l_225 = 0x5B180E96L;
|
||
|
step_hash(100);
|
||
|
l_225 = (l_224 || p_13);
|
||
|
step_hash(106);
|
||
|
if (l_224)
|
||
|
{
|
||
|
short l_226 = (-1L);
|
||
|
step_hash(102);
|
||
|
(*l_207) = l_226;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
step_hash(104);
|
||
|
(*g_62) = (p_15 & p_15);
|
||
|
step_hash(105);
|
||
|
return g_9;
|
||
|
}
|
||
|
}
|
||
|
step_hash(108);
|
||
|
return (*l_207);
|
||
|
}
|
||
|
static unsigned func_20(unsigned char p_21, unsigned char p_22, int p_23, unsigned char p_24)
|
||
|
{
|
||
|
int l_98 = 0x56207CCBL;
|
||
|
step_hash(92);
|
||
|
for (p_24 = (-10); (p_24 <= 50); p_24 += 9)
|
||
|
{
|
||
|
unsigned short l_97 = 4UL;
|
||
|
int **l_102 = &g_62;
|
||
|
int ***l_101 = &l_102;
|
||
|
unsigned short l_141 = 0x77CCL;
|
||
|
int l_155 = 0x3AF947C6L;
|
||
|
}
|
||
|
step_hash(93);
|
||
|
return l_98;
|
||
|
}
|
||
|
static unsigned func_25(unsigned short p_26, signed char p_27, unsigned p_28, unsigned p_29)
|
||
|
{
|
||
|
int *l_86 = &g_63;
|
||
|
int **l_88 = &l_86;
|
||
|
int ***l_87 = &l_88;
|
||
|
step_hash(23);
|
||
|
l_86 = &g_63;
|
||
|
step_hash(24);
|
||
|
(*l_87) = &l_86;
|
||
|
step_hash(25);
|
||
|
return (*l_86);
|
||
|
}
|
||
|
static unsigned short func_32(unsigned short p_33)
|
||
|
{
|
||
|
step_hash(3);
|
||
|
return g_9;
|
||
|
}
|
||
|
static unsigned short func_38(unsigned short p_39, unsigned p_40, unsigned p_41, int p_42)
|
||
|
{
|
||
|
short l_50 = (-7L);
|
||
|
unsigned l_61 = 0x4F509E13L;
|
||
|
int l_82 = 0x75E0AD58L;
|
||
|
int **l_83 = (void*)0;
|
||
|
int **l_84 = (void*)0;
|
||
|
int *l_85 = &g_63;
|
||
|
step_hash(18);
|
||
|
l_82 &= func_45(func_32(l_50), l_50, l_50, func_51(p_39, ((signed char)(0x8FC7L <= func_56(g_9, ((g_9 | ((unsigned short)p_41 / (unsigned short)l_61)) < g_9))) / (signed char)(-5L))));
|
||
|
step_hash(19);
|
||
|
l_85 = &l_82;
|
||
|
step_hash(20);
|
||
|
(*l_85) &= (*g_62);
|
||
|
step_hash(21);
|
||
|
return p_39;
|
||
|
}
|
||
|
static int func_45(int p_46, int p_47, unsigned p_48, unsigned p_49)
|
||
|
{
|
||
|
int **l_76 = &g_62;
|
||
|
short l_79 = (-2L);
|
||
|
step_hash(14);
|
||
|
(*l_76) = &g_63;
|
||
|
step_hash(15);
|
||
|
(*l_76) = &g_63;
|
||
|
step_hash(16);
|
||
|
(**l_76) = ((signed char)l_79 * (signed char)(+((short)(**l_76) << (short)10)));
|
||
|
step_hash(17);
|
||
|
return p_46;
|
||
|
}
|
||
|
static unsigned func_51(short p_52, short p_53)
|
||
|
{
|
||
|
int *l_65 = (void*)0;
|
||
|
int l_75 = 0x07F7A796L;
|
||
|
step_hash(9);
|
||
|
l_65 = &g_63;
|
||
|
step_hash(10);
|
||
|
(*l_65) ^= p_53;
|
||
|
step_hash(11);
|
||
|
l_75 &= ((-(signed char)((signed char)((unsigned char)func_32(p_52) + (unsigned char)((((unsigned)0xBA832A49L % (unsigned)0x64ADB5D2L) > ((unsigned short)((&g_63 == l_65) < ((0x2A1DD6B9L <= (*g_62)) ^ func_32(p_52))) % (unsigned short)(*l_65))) & p_53)) << (signed char)g_63)) < (*l_65));
|
||
|
step_hash(12);
|
||
|
return g_63;
|
||
|
}
|
||
|
static short func_56(int p_57, unsigned short p_58)
|
||
|
{
|
||
|
int **l_64 = &g_62;
|
||
|
step_hash(6);
|
||
|
(*l_64) = g_62;
|
||
|
step_hash(7);
|
||
|
return g_63;
|
||
|
}
|
||
|
void csmith_compute_hash(void)
|
||
|
{
|
||
|
transparent_crc(g_9, "g_9", print_hash_value);
|
||
|
transparent_crc(g_63, "g_63", print_hash_value);
|
||
|
transparent_crc(g_232, "g_232", print_hash_value);
|
||
|
}
|
||
|
void step_hash(int stmt_id)
|
||
|
{
|
||
|
int i = 0;
|
||
|
csmith_compute_hash();
|
||
|
printf("before stmt(%d): checksum = %X\n", stmt_id, crc32_context ^ 0xFFFFFFFFUL);
|
||
|
crc32_context = 0xFFFFFFFFUL;
|
||
|
for (i = 0; i < 256; i++) {
|
||
|
crc32_tab[i] = 0;
|
||
|
}
|
||
|
crc32_gentab();
|
||
|
}
|
||
|
int main (void)
|
||
|
{
|
||
|
int print_hash_value = 0;
|
||
|
platform_main_begin();
|
||
|
crc32_gentab();
|
||
|
func_1();
|
||
|
csmith_compute_hash();
|
||
|
platform_main_end(crc32_context ^ 0xFFFFFFFFUL, print_hash_value);
|
||
|
return 0;
|
||
|
}
|