[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[csmith-bugs] accessing partially initialized union member in ea4762b



Hello.

In the following generated program,
local l_12 is initialized through member f0 (int16_t)
and then, at line 88, accessed through
member f3 (int32_t).

Pascal

/*                                                                                                                                                 
 * This is a RANDOMLY GENERATED PROGRAM.                                                                                                           
 *                                                                                                                                                 
 * Generator: csmith 2.1.0                                                                                                                         
 * Git version: ea4762b                                                                                                                            
 * Options:   --max-pointer-depth 2 --max-funcs 2 --max-array-dim 2 --max-array-len-per-dim 4 --max-struct-fields 33 --no-volatiles --bitfields --\
no-argc --unions --seed 1543508199                                                                                                                 
 * Seed:      1543508199                                                                                                                           
 */

#include "csmith.h"


static long __undefined;

/* --- Struct/Union Declarations --- */
union U0 {
   const int16_t  f0;
   const unsigned f1 : 1;
   unsigned : 0;
   const uint16_t  f2;
   int32_t  f3;
};
...

/*
 * This is a RANDOMLY GENERATED PROGRAM.
 *
 * Generator: csmith 2.1.0
 * Git version: ea4762b
 * Options:   --max-pointer-depth 2 --max-funcs 2 --max-array-dim 2 --max-array-len-per-dim 4 --max-struct-fields 33 --no-volatiles --bitfields --no-argc --unions --seed 1543508199
 * Seed:      1543508199
 */

#include "csmith.h"


static long __undefined;

/* --- Struct/Union Declarations --- */
union U0 {
   const int16_t  f0;
   const unsigned f1 : 1;
   unsigned : 0;
   const uint16_t  f2;
   int32_t  f3;
};

/* --- GLOBAL VARIABLES --- */
static uint8_t g_11 = 255UL;
static uint32_t g_13[3][3] = {{0x3880E033L, 7UL, 0x3880E033L}, {0x3880E033L, 7UL, 0x3880E033L}, {0x3880E033L, 7UL, 0x3880E033L}};
static uint32_t g_24 = 0xBB75DA2CL;
static uint8_t g_28 = 1UL;
static int64_t g_53 = 1L;
static uint16_t g_68 = 65534UL;
static uint16_t g_71 = 65535UL;
static uint8_t *g_88 = &g_11;
static uint64_t g_93[4][2] = {{0xA36CEB12FA99DB6ALL, 0xA36CEB12FA99DB6ALL}, {0xA36CEB12FA99DB6ALL, 0xA36CEB12FA99DB6ALL}, {0xA36CEB12FA99DB6ALL, 0xA36CEB12FA99DB6ALL}, {0xA36CEB12FA99DB6ALL, 0xA36CEB12FA99DB6ALL}};
static int32_t g_109 = 0x5197363DL;
static uint16_t *g_119 = (void*)0;
static uint16_t **g_118 = &g_119;
static int16_t g_147 = 0xE60DL;
static uint32_t g_148 = 4294967295UL;
static uint16_t g_154 = 0xB946L;
static union U0 g_184 = {0x3F10L};
static union U0 *g_183 = &g_184;
static union U0 **g_182[4][3] = {{(void*)0, (void*)0, (void*)0}, {(void*)0, (void*)0, (void*)0}, {(void*)0, (void*)0, (void*)0}, {(void*)0, (void*)0, (void*)0}};
static int32_t g_209 = 0x950A55D3L;
static uint64_t g_219 = 18446744073709551609UL;
static uint32_t g_237 = 1UL;
static int32_t g_275 = 8L;
static int8_t g_276 = (-7L);
static const union U0 g_280 = {0xA62BL};
static uint8_t g_300 = 4UL;
static const union U0 g_337 = {0xC6D7L};
static const union U0 *g_336 = &g_337;
static uint32_t g_344 = 0UL;
static uint64_t g_385 = 4UL;
static int32_t g_390[2] = {0x4DD9D578L, 0x4DD9D578L};
static uint8_t **g_404 = (void*)0;
static int32_t *g_408[1] = {&g_390[0]};
static int32_t g_467[1] = {(-1L)};


/* --- FORWARD DECLARATIONS --- */
static const uint8_t  func_1(void);
static uint8_t  func_4(int64_t  p_5);


/* --- FUNCTIONS --- */
/* ------------------------------------------ */
/* 
 * reads : g_13 g_24 g_28 g_53 g_11 g_93 g_71 g_88 g_109 g_68 g_118 g_119 g_148 g_154 g_147 g_182 g_219 g_237 g_275 g_209 g_300 g_184 g_276 g_344 g_184.f0 g_280.f0 g_385 g_467 g_390
 * writes: g_11 g_24 g_68 g_71 g_88 g_93 g_109 g_53 g_28 g_148 g_154 g_209 g_219 g_237 g_182 g_275 g_276 g_300 g_336 g_344 g_147 g_385 g_118 g_390
 */
static const uint8_t  func_1(void)
{ /* block id: 0 */
    uint8_t *l_10 = &g_11;
    union U0 l_12 = {0x2A82L};
    uint64_t l_22[3][2];
    uint64_t *l_23[3];
    uint8_t *l_27 = &g_28;
    int32_t *l_468 = &g_390[0];
    uint16_t l_469[4] = {0UL, 65530UL, 0UL, 65530UL};
    int i, j;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 2; j++)
            l_22[i][j] = 0x0CF8651162F63069LL;
    }
    for (i = 0; i < 3; i++)
        l_23[i] = &l_22[2][1];
    (*l_468) &= (safe_sub_func_int64_t_s_s((func_4((((*l_10) = (safe_rshift_func_int16_t_s_s(0x1BABL, 9))) < ((l_12 , ((1L != g_13[2][0]) || ((((l_12.f0 , (safe_mod_func_uint16_t_u_u((safe_mul_func_int16_t_s_s((safe_add_func_int16_t_s_s((safe_add_func_int32_t_s_s(((l_22[1][1] || (++g_24)) > ((l_27 = l_10) != ((4UL >= (safe_mod_func_int32_t_s_s((((g_13[1][1] ^ l_12.f3) && g_28) && 0x52A2C7A2L), g_13[2][0]))) , l_10))), l_22[0][1])), g_28)), l_12.f3)), g_13[2][0]))) < g_13[2][0]) , l_22[2][0]) , 0x18DE0F4C9FF7503ALL))) == 0x0FL))) < 0x23L), l_12.f3));
    (*l_468) = l_469[0];
    return (*g_88);
}


/* ------------------------------------------ */
/* 
 * reads : g_28 g_13 g_53 g_11 g_93 g_71 g_88 g_109 g_68 g_118 g_119 g_148 g_154 g_147 g_182 g_219 g_237 g_275 g_209 g_300 g_184 g_24 g_276 g_344 g_184.f0 g_280.f0 g_385 g_467
 * writes: g_68 g_71 g_88 g_93 g_109 g_53 g_28 g_148 g_154 g_11 g_209 g_219 g_24 g_237 g_182 g_275 g_276 g_300 g_336 g_344 g_147 g_385 g_118
 */
static uint8_t  func_4(int64_t  p_5)
{ /* block id: 4 */
    int32_t l_37 = (-1L);
    int8_t l_47 = 1L;
    uint8_t * const l_55[2] = {&g_11, &g_11};
    uint16_t l_134 = 0x3A23L;
    int32_t l_216[3];
    const union U0 *l_278 = &g_184;
    uint32_t l_291 = 0x8194AD0AL;
    uint16_t ***l_315 = &g_118;
    uint32_t *l_355 = &g_344;
    int16_t l_426 = 9L;
    uint32_t l_463 = 0xF4E8CB38L;
    int32_t *l_466 = &g_275;
    int i;
    for (i = 0; i < 3; i++)
        l_216[i] = 0x739BA65EL;
lbl_432:
    for (p_5 = 0; (p_5 >= (-4)); p_5--)
    { /* block id: 7 */
        uint8_t l_42 = 0x6FL;
        int64_t *l_52[3][2] = {{&g_53, (void*)0}, {&g_53, (void*)0}, {&g_53, (void*)0}};
        int8_t l_54 = 0x8FL;
        int32_t l_89 = 0x6E20FE2CL;
        uint16_t l_106[4];
        int32_t l_217 = 0x6A3A7D8DL;
        uint16_t l_267 = 1UL;
        union U0 *l_277 = &g_184;
        const union U0 *l_279 = &g_280;
        int32_t l_290 = 0xB31DF0D9L;
        int32_t *l_294 = &l_216[0];
        int32_t *l_295 = (void*)0;
        int32_t *l_296 = &l_216[0];
        int32_t *l_297 = &l_37;
        int32_t *l_298 = &l_37;
        int32_t *l_299[3][2] = {{&l_37, &g_275}, {&l_37, &g_275}, {&l_37, &g_275}};
        int i, j;
        for (i = 0; i < 4; i++)
            l_106[i] = 0xD27EL;
        if ((safe_div_func_int16_t_s_s((((((((safe_lshift_func_uint16_t_u_u((l_37 || p_5), (safe_rshift_func_int16_t_s_s((safe_div_func_uint16_t_u_u(l_42, g_28)), (safe_rshift_func_uint16_t_u_s(((18446744073709551615UL <= (l_54 = (g_13[2][0] && (safe_sub_func_int16_t_s_s(l_47, (safe_mod_func_uint64_t_u_u((safe_mod_func_int8_t_s_s((-6L), ((((l_47 && g_28) > p_5) && p_5) || 0UL))), l_47))))))) > 0x691445A1L), 11)))))) , p_5) >= 0x0C330E0EL) || (-2L)) , l_55[1]) == (void*)0) , g_13[2][1]), 0x8E03L)))
        { /* block id: 9 */
            uint16_t *l_66 = (void*)0;
            uint16_t *l_67 = &g_68;
            int32_t l_69 = 0x5F054F52L;
            uint16_t *l_70 = &g_71;
            int32_t l_78 = 0x3CFF8552L;
            int32_t l_79 = 0x129DC063L;
            uint16_t **l_81 = &l_70;
            uint16_t ***l_80 = &l_81;
            int32_t *l_90 = (void*)0;
            int32_t *l_91 = &l_37;
            l_79 &= (((p_5 < (safe_lshift_func_uint8_t_u_u(((safe_rshift_func_uint16_t_u_u(0xB237L, (safe_mul_func_int16_t_s_s((((((((p_5 < (safe_mul_func_uint8_t_u_u((((*l_70) = (safe_add_func_uint16_t_u_u((l_69 = ((*l_67) = g_28)), l_54))) | g_53), (safe_sub_func_int16_t_s_s((safe_lshift_func_uint8_t_u_u((safe_rshift_func_uint16_t_u_u(0x20F5L, 15)), 3)), p_5))))) != g_28) == p_5) == g_53) && p_5) , l_47) & p_5), g_11)))) && g_13[2][2]), l_78))) <= 0x7F45EA77L) , l_47);
            (*l_80) = &l_66;
            (*l_91) = (~((l_37 == (((p_5 >= (safe_mod_func_int32_t_s_s(((safe_lshift_func_uint16_t_u_s((l_89 = ((*l_67) = ((((safe_add_func_int8_t_s_s(((((g_88 = &g_11) == (void*)0) >= (((-1L) <= g_13[2][2]) || g_13[1][1])) >= 18446744073709551615UL), ((0x7F0EF7C8L > 0L) | p_5))) <= 4UL) , l_42) >= g_28))), 10)) && p_5), l_47))) > g_28) | g_11)) && g_11));
        }
        else
        { /* block id: 19 */
            int32_t *l_92 = &l_37;
            g_93[0][1]++;
            if (g_11)
            { /* block id: 21 */
                uint64_t *l_97 = &g_93[1][0];
                const int32_t l_107 = (-6L);
                int32_t *l_108 = &l_89;
                for (l_89 = 2; (l_89 >= 0); l_89 -= 1)
                { /* block id: 24 */
                    uint64_t *l_96 = &g_93[0][1];
                    int32_t l_102[1];
                    int i;
                    for (i = 0; i < 1; i++)
                        l_102[i] = 1L;
                    (*l_92) = (l_96 == l_97);
                    (*l_92) &= ((&g_53 == &p_5) == 0UL);
                    for (l_42 = 0; (l_42 <= 2); l_42 += 1)
                    { /* block id: 29 */
                        uint16_t *l_103 = &g_71;
                        int i, j;
                        (*l_92) = (safe_mod_func_int16_t_s_s(((l_102[0] = g_13[l_89][l_42]) || 0x2A02F9331570527DLL), ((*l_103)++)));
                        if (g_13[l_89][l_42])
                            break;
                    }
                }
                (*l_108) = ((*l_92) = (l_106[1] != (l_107 & p_5)));
            }
            else
            { /* block id: 38 */
                g_109 = (*l_92);
                return p_5;
            }
            return (*g_88);
        }
        if (p_5)
        { /* block id: 44 */
            int32_t *l_110 = &g_109;
            for (l_54 = 1; (l_54 >= 0); l_54 -= 1)
            { /* block id: 47 */
                if (l_54)
                    break;
            }
            (*l_110) ^= p_5;
        }
        else
        { /* block id: 51 */
            int32_t l_111 = (-1L);
            const union U0 l_123 = {0x2134L};
            int8_t l_128 = 0x55L;
            int32_t l_152 = 7L;
            int32_t l_215[2][3] = {{0x0974D9EFL, 0x0974D9EFL, 0x6DE6BA9EL}, {0x0974D9EFL, 0x0974D9EFL, 0x6DE6BA9EL}};
            int i, j;
            if (l_111)
                break;
            if (g_93[3][1])
                continue;
            for (g_53 = 22; (g_53 < 6); g_53--)
            { /* block id: 56 */
                union U0 l_114 = {0x01ADL};
                int32_t l_131 = 0x4A5BE0B3L;
                int32_t *l_151 = &l_37;
                int32_t l_153 = (-10L);
                int32_t *l_181 = &l_111;
                if ((g_93[0][1] , l_111))
                { /* block id: 57 */
                    uint16_t *l_116 = (void*)0;
                    uint16_t ** const l_115 = &l_116;
                    int32_t l_117 = 0x3F0C8908L;
                    if (g_68)
                    { /* block id: 58 */
                        int32_t *l_120 = &l_117;
                        g_109 &= ((l_114 , l_115) == ((255UL >= l_117) , g_118));
                        if (l_111)
                            continue;
                        (*l_120) ^= p_5;
                        if (p_5)
                            continue;
                    }
                    else
                    { /* block id: 63 */
                        uint16_t *l_138 = (void*)0;
                        uint16_t *l_139 = &g_68;
                        uint16_t *l_140 = (void*)0;
                        uint16_t *l_141[3][1];
                        int32_t l_144 = 0x613B7DAFL;
                        int32_t *l_145 = &l_117;
                        int32_t *l_146[4][3] = {{&g_109, &l_89, &g_109}, {&g_109, &l_89, &g_109}, {&g_109, &l_89, &g_109}, {&g_109, &l_89, &g_109}};
                        int i, j;
                        for (i = 0; i < 3; i++)
                        {
                            for (j = 0; j < 1; j++)
                                l_141[i][j] = &g_71;
                        }
                        (*l_145) = (safe_div_func_int8_t_s_s((l_123 , (safe_mul_func_uint8_t_u_u((*g_88), p_5))), (((safe_lshift_func_int16_t_s_s((((l_131 |= (--g_28)) >= (safe_sub_func_int64_t_s_s(l_134, (safe_mul_func_int16_t_s_s((safe_unary_minus_func_uint16_t_u((l_37 = ((*l_139) = 0x7635L)))), (((safe_div_func_int8_t_s_s(g_53, (0x8BL & ((*g_118) != (*g_118))))) != 0x2412L) , 65529UL)))))) < (*g_88)), l_144)) , p_5) || 0xEB02B935C2CC3DE6LL)));
                        ++g_148;
                        l_151 = &l_117;
                        --g_154;
                    }
                }
                else
                { /* block id: 73 */
                    int32_t *l_159 = &l_111;
                    int32_t *l_160 = &l_131;
                    (*l_160) ^= ((*l_159) = ((*l_151) = (safe_lshift_func_uint16_t_u_u(p_5, 2))));
                }
                if (l_89)
                { /* block id: 78 */
                    const union U0 *l_162 = &l_114;
                    const union U0 **l_161 = &l_162;
                    int32_t *l_177 = &l_37;
                    (*l_161) = &l_123;
                    if (p_5)
                        break;
                    (*l_177) &= ((safe_sub_func_int64_t_s_s(((l_42 != p_5) < ((safe_lshift_func_int16_t_s_s(((safe_rshift_func_uint8_t_u_s((p_5 != (!(safe_lshift_func_int8_t_s_s(((*g_88) , (+(safe_add_func_int16_t_s_s(p_5, (((0x68D1CA076940D3DBLL || (safe_mod_func_int16_t_s_s((l_111 & 1UL), (-1L)))) == g_11) != p_5))))), 7)))), g_147)) & g_11), 5)) >= g_109)), 0L)) < g_13[2][0]);
                    if (p_5)
                    { /* block id: 82 */
                        int32_t **l_178 = &l_151;
                        (*l_177) ^= (-3L);
                        (*l_178) = (void*)0;
                    }
                    else
                    { /* block id: 85 */
                        int32_t *l_179 = &l_111;
                        int32_t **l_180 = &l_177;
                        (*l_180) = (l_179 = &l_131);
                    }
                }
                else
                { /* block id: 89 */
                    l_89 &= p_5;
                }
                if (((*l_181) = p_5))
                { /* block id: 93 */
                    if ((g_71 ^ (g_182[2][0] == &g_183)))
                    { /* block id: 94 */
                        return p_5;
                    }
                    else
                    { /* block id: 96 */
                        int32_t **l_185 = &l_151;
                        (*l_185) = &l_89;
                        (*l_185) = &l_131;
                    }
                    return (*g_88);
                }
                else
                { /* block id: 101 */
                    uint32_t l_204 = 1UL;
                    for (g_68 = 0; (g_68 <= 1); g_68 += 1)
                    { /* block id: 104 */
                        int i, j;
                        if (g_93[(g_68 + 2)][g_68])
                            break;
                    }
                    if ((safe_mul_func_int16_t_s_s(p_5, g_11)))
                    { /* block id: 107 */
                        return p_5;
                    }
                    else
                    { /* block id: 109 */
                        uint32_t l_197 = 18446744073709551611UL;
                        int32_t * const l_205[2][3] = {{&l_111, &l_111, &l_131}, {&l_111, &l_111, &l_131}};
                        int32_t **l_206[2][1];
                        int32_t **l_207 = &l_181;
                        int i, j;
                        for (i = 0; i < 2; i++)
                        {
                            for (j = 0; j < 1; j++)
                                l_206[i][j] = &l_181;
                        }
                        (*l_181) |= (((safe_div_func_int16_t_s_s((safe_add_func_int32_t_s_s(p_5, (l_37 = (safe_unary_minus_func_uint8_t_u((g_28 = ((*g_88) = ((safe_sub_func_int16_t_s_s(((l_128 == 18446744073709551606UL) , (safe_div_func_int16_t_s_s(l_197, 0xA01DL))), (safe_rshift_func_uint16_t_u_s((safe_mul_func_int8_t_s_s((((l_152 < 0x36ED2B4DL) > p_5) <= (!(safe_mul_func_int16_t_s_s(g_53, l_204)))), 0x37L)), 6)))) , l_204)))))))), l_47)) | l_152) ^ l_123.f0);
                        (*l_207) = l_205[0][1];
                    }
                    (*l_181) ^= l_106[2];
                }
                for (g_68 = 0; (g_68 <= 3); g_68 += 1)
                { /* block id: 120 */
                    int32_t l_208 = 0x27D90806L;
                    int32_t l_218 = (-7L);
                    int32_t *l_222[2][1];
                    int i, j;
                    for (i = 0; i < 2; i++)
                    {
                        for (j = 0; j < 1; j++)
                            l_222[i][j] = &l_217;
                    }
                    if (((g_209 = l_208) , ((g_147 && 0xD5C3D96CL) > (safe_mul_func_uint16_t_u_u(l_208, 1UL)))))
                    { /* block id: 122 */
                        uint32_t l_212 = 0xD58AA3BBL;
                        return l_212;
                    }
                    else
                    { /* block id: 124 */
                        int32_t *l_213 = &l_111;
                        int32_t *l_214[2];
                        int i;
                        for (i = 0; i < 2; i++)
                            l_214[i] = &l_208;
                        g_219--;
                        (*l_181) ^= (p_5 & g_93[0][1]);
                        (*l_213) &= l_217;
                        (*l_181) |= ((void*)0 != &g_118);
                    }
                    (*l_181) = p_5;
                    l_222[0][0] = &l_216[0];
                }
            }
        }
        for (l_89 = 11; (l_89 > 10); l_89 = safe_sub_func_uint64_t_u_u(l_89, 9))
        { /* block id: 137 */
            int32_t *l_225 = &l_216[2];
            union U0 * const *l_239 = &g_183;
            int32_t l_242 = 0x1FBC1C67L;
            const uint16_t *l_261[4];
            const uint16_t **l_260 = &l_261[1];
            uint16_t l_284[2][2];
            int i, j;
            for (i = 0; i < 4; i++)
                l_261[i] = &l_106[1];
            for (i = 0; i < 2; i++)
            {
                for (j = 0; j < 2; j++)
                    l_284[i][j] = 0x17E1L;
            }
            l_225 = &l_216[0];
            for (l_47 = 0; (l_47 != 12); l_47 = safe_add_func_int64_t_s_s(l_47, 1))
            { /* block id: 141 */
                (*l_225) |= p_5;
                for (g_68 = 0; (g_68 > 59); g_68 = safe_add_func_int32_t_s_s(g_68, 8))
                { /* block id: 145 */
                    for (g_154 = 0; (g_154 <= 1); g_154 += 1)
                    { /* block id: 148 */
                        int i;
                        if (l_106[g_154])
                            break;
                    }
                    (*l_225) = (p_5 & 0x86FCF0ECL);
                    if (p_5)
                        break;
                }
            }
            for (g_24 = 10; (g_24 >= 56); g_24 = safe_add_func_int32_t_s_s(g_24, 4))
            { /* block id: 157 */
                int32_t **l_232 = &l_225;
                union U0 ***l_238 = &g_182[3][2];
                int32_t *l_240 = &l_217;
                int32_t *l_241[4] = {&l_37, (void*)0, &l_37, (void*)0};
                int32_t l_283 = (-1L);
                int i;
                (*l_232) = &g_109;
                if ((*l_225))
                    break;
                l_242 ^= ((*l_240) ^= ((*l_225) = ((**l_232) ^ ((safe_rshift_func_int16_t_s_u((safe_sub_func_int32_t_s_s((g_237 |= (**l_232)), (((*l_238) = &g_183) != l_239))), 13)) ^ (**l_232)))));
                if ((safe_sub_func_int16_t_s_s(g_53, (safe_mod_func_int8_t_s_s((safe_add_func_uint8_t_u_u((*g_88), p_5)), l_134)))))
                { /* block id: 165 */
                    int32_t l_262 = 0L;
                    int32_t *l_264[1][4];
                    int i, j;
                    for (i = 0; i < 1; i++)
                    {
                        for (j = 0; j < 4; j++)
                            l_264[i][j] = &l_216[1];
                    }
                    for (g_209 = (-19); (g_209 == 25); ++g_209)
                    { /* block id: 168 */
                        uint64_t *l_257 = &g_219;
                        const int32_t l_263[4] = {0x0A8F4C84L, 0x0A8F4C84L, 0x0A8F4C84L, 0x0A8F4C84L};
                        int i;
                        g_109 = (safe_rshift_func_uint8_t_u_u((0x557BL & ((safe_div_func_int32_t_s_s((((l_134 && p_5) == (((((*g_88) = ((safe_add_func_int16_t_s_s((g_11 | (p_5 && ((*l_257) = p_5))), (g_93[0][1] && (l_54 && ((safe_rshift_func_uint16_t_u_u(l_37, (**l_232))) , 8UL))))) > l_89)) , l_260) == &g_119) | l_216[0])) != 0x3DB2L), l_262)) > l_263[3])), l_262));
                        (*l_232) = l_264[0][1];
                        return l_37;
                    }
                    if ((safe_div_func_uint8_t_u_u(5UL, (l_267 |= p_5))))
                    { /* block id: 176 */
                        int32_t **l_274 = (void*)0;
                        g_276 = (g_275 ^= ((safe_sub_func_uint32_t_u_u(((p_5 ^ ((safe_lshift_func_int16_t_s_s(((*l_225) = g_147), p_5)) && (p_5 , (safe_div_func_uint32_t_u_u(((void*)0 == l_274), p_5))))) | (g_71 &= ((p_5 , (((*l_240) >= (-3L)) > 0x75B5L)) >= p_5))), p_5)) <= 0x67B5398DL));
                        (*l_240) &= (g_275 = ((*l_225) , (l_277 == (l_279 = l_278))));
                    }
                    else
                    { /* block id: 184 */
                        (**l_232) = (g_209 , (safe_lshift_func_uint8_t_u_u(((*g_88) = l_267), l_283)));
                        (**l_232) ^= (-1L);
                    }
                    l_284[0][1] = (g_109 ^= 1L);
                    for (g_109 = (-28); (g_109 >= (-24)); g_109 = safe_add_func_int64_t_s_s(g_109, 1))
                    { /* block id: 193 */
                        int64_t l_287 = 0x93621C67A743F5AALL;
                        int32_t l_288 = 1L;
                        int32_t l_289[2];
                        int i;
                        for (i = 0; i < 2; i++)
                            l_289[i] = (-7L);
                        (*l_232) = &l_89;
                        (*l_240) = p_5;
                        l_291++;
                        (*l_240) = p_5;
                    }
                }
                else
                { /* block id: 199 */
                    return p_5;
                }
            }
        }
        --g_300;
    }
    for (g_209 = (-16); (g_209 > 21); ++g_209)
    { /* block id: 208 */
        uint64_t l_311 = 1UL;
        int16_t l_314 = 2L;
        uint16_t ***l_316 = &g_118;
        uint32_t *l_317[1];
        const union U0 *l_318 = &g_184;
        int32_t l_332 = 8L;
        int32_t l_334 = 5L;
        int32_t l_374 = (-1L);
        int32_t l_459[1];
        int64_t l_462 = 0L;
        int i;
        for (i = 0; i < 1; i++)
            l_317[i] = (void*)0;
        for (i = 0; i < 1; i++)
            l_459[i] = 0x52FAC2CCL;
        if (((((*g_88) = (((void*)0 != &g_93[0][0]) & ((safe_sub_func_uint64_t_u_u((safe_rshift_func_int16_t_s_s((safe_mul_func_int8_t_s_s(l_311, (l_216[0] = ((safe_rshift_func_uint16_t_u_s(((((l_314 != p_5) >= ((void*)0 == l_315)) < (p_5 != ((l_37 |= ((void*)0 != l_316)) , 0x40D4L))) && 18446744073709551614UL), 13)) , 2L)))), 4)), g_209)) | p_5))) , (void*)0) == l_318))
        { /* block id: 212 */
            int32_t *l_319 = &l_37;
            union U0 ***l_333 = &g_182[2][1];
            (*l_319) = l_314;
            l_334 = ((+((l_311 <= g_53) == (((*l_318) , ((safe_lshift_func_uint8_t_u_s((safe_rshift_func_uint16_t_u_s(((safe_sub_func_uint8_t_u_u((l_332 = (safe_mul_func_int8_t_s_s((p_5 , (safe_rshift_func_uint8_t_u_s(((*g_88)++), 3))), p_5))), p_5)) || l_332), (((*l_333) = &g_183) == &l_278))), l_311)) , g_24)) , l_311))) , 1L);
        }
        else
        { /* block id: 218 */
            const union U0 **l_335[4] = {&l_278, &l_278, &l_278, &l_278};
            int32_t *l_339 = &g_275;
            int32_t **l_338 = &l_339;
            int i;
            g_336 = l_318;
            (*l_338) = &g_275;
            for (g_276 = 2; (g_276 >= 0); g_276 -= 1)
            { /* block id: 223 */
                int32_t *l_343[2];
                int i;
                for (i = 0; i < 2; i++)
                    l_343[i] = &l_334;
                for (l_332 = 0; (l_332 <= 2); l_332 += 1)
                { /* block id: 226 */
                    int32_t * const l_340 = &l_332;
                    int32_t **l_341 = (void*)0;
                    int32_t **l_342 = &l_339;
                    (*l_342) = l_340;
                }
                g_344--;
            }
        }
        for (l_332 = 0; (l_332 == (-15)); l_332 = safe_sub_func_int8_t_s_s(l_332, 1))
        { /* block id: 234 */
            uint32_t *l_353 = &g_344;
            uint32_t **l_354[2][1];
            uint64_t *l_356[4][1];
            int32_t l_357 = 0L;
            int64_t *l_360[2][2];
            int32_t *l_362 = &l_357;
            int32_t **l_361 = &l_362;
            int64_t l_401 = 0x1ED1543B7BEB819CLL;
            uint8_t **l_405 = &g_88;
            int32_t l_452 = 0x447B5313L;
            int32_t l_455 = (-9L);
            int32_t l_458[3][4] = {{0xA6F7DA1FL, 0xA6F7DA1FL, 0xDE7DCEC4L, 0xA6F7DA1FL}, {0xA6F7DA1FL, 0xA6F7DA1FL, 0xDE7DCEC4L, 0xA6F7DA1FL}, {0xA6F7DA1FL, 0xA6F7DA1FL, 0xDE7DCEC4L, 0xA6F7DA1FL}};
            int32_t l_461 = 0xE25A3B67L;
            int i, j;
            for (i = 0; i < 2; i++)
            {
                for (j = 0; j < 1; j++)
                    l_354[i][j] = &l_353;
            }
            for (i = 0; i < 4; i++)
            {
                for (j = 0; j < 1; j++)
                    l_356[i][j] = &g_93[1][1];
            }
            for (i = 0; i < 2; i++)
            {
                for (j = 0; j < 2; j++)
                    l_360[i][j] = &g_53;
            }
            (*l_361) = ((safe_add_func_uint64_t_u_u(l_332, ((safe_add_func_int16_t_s_s((((l_37 &= p_5) < g_13[2][0]) <= (p_5 , (l_216[1] = (l_317[0] == (l_355 = l_353))))), l_357)) ^ 0x485829AC4A103B81LL))) , ((safe_mod_func_uint64_t_u_u(((l_216[0] = ((p_5 <= 65535UL) || l_311)) < g_184.f0), g_11)) , &l_216[0]));
            for (g_276 = (-24); (g_276 != (-1)); g_276++)
            { /* block id: 242 */
                uint8_t l_367 = 0xE2L;
                int32_t l_422 = 0x492C7CBFL;
                for (l_47 = 0; (l_47 > (-30)); l_47 = safe_sub_func_int16_t_s_s(l_47, 8))
                { /* block id: 245 */
                    return l_367;
                }
            }
            for (g_28 = 0; (g_28 >= 12); g_28++)
            { /* block id: 287 */
                int32_t l_434 = 0x0E762CC4L;
                int32_t l_456 = 0L;
                int32_t l_457 = 0x10F9614FL;
                int32_t l_460[3][3] = {{0x76B0B723L, 0x81074C56L, 0x76B0B723L}, {0x76B0B723L, 0x81074C56L, 0x76B0B723L}, {0x76B0B723L, 0x81074C56L, 0x76B0B723L}};
                int i, j;
                for (g_147 = 0; (g_147 <= 0); g_147 += 1)
                { /* block id: 290 */
                    if (g_184.f0)
                        goto lbl_432;
                    (**l_361) = p_5;
                    if (p_5)
                        break;
                    for (l_134 = 0; (l_134 <= 0); l_134 += 1)
                    { /* block id: 296 */
                        int64_t l_433[4] = {0x93F2EAD4B9DE1968LL, 1L, 0x93F2EAD4B9DE1968LL, 1L};
                        int i;
                        (*l_361) = (*l_361);
                        l_433[1] = ((**l_361) = 0xE3919727L);
                        (*l_362) &= l_434;
                        (*l_362) |= (safe_rshift_func_uint16_t_u_u(g_280.f0, p_5));
                    }
                }
                if (p_5)
                    break;
                for (g_385 = (-23); (g_385 < 9); g_385 = safe_add_func_int8_t_s_s(g_385, 7))
                { /* block id: 307 */
                    (*l_315) = &g_119;
                }
                for (g_344 = 0; (g_344 <= 2); g_344 += 1)
                { /* block id: 312 */
                    int32_t *l_439 = (void*)0;
                    int32_t *l_440 = (void*)0;
                    int32_t *l_441 = &l_374;
                    int32_t *l_442 = (void*)0;
                    int32_t *l_443 = &l_334;
                    int32_t *l_444 = &g_275;
                    int32_t *l_445 = &g_109;
                    int32_t *l_446 = &g_109;
                    int32_t *l_447 = &g_390[1];
                    int32_t *l_448 = &g_390[0];
                    int32_t *l_449 = (void*)0;
                    int32_t *l_450 = (void*)0;
                    int32_t *l_451 = &l_334;
                    int32_t *l_453 = (void*)0;
                    int32_t *l_454[1][4];
                    int i, j;
                    for (i = 0; i < 1; i++)
                    {
                        for (j = 0; j < 4; j++)
                            l_454[i][j] = &l_452;
                    }
                    (**l_361) = g_13[g_344][g_344];
                    l_463++;
                    for (g_219 = 0; (g_219 <= 2); g_219 += 1)
                    { /* block id: 317 */
                        int i, j;
                        if (l_458[g_344][(g_344 + 1)])
                            break;
                        return p_5;
                    }
                }
            }
            if (l_37)
                continue;
        }
    }
    (*l_466) = p_5;
    return g_467[0];
}




/* ---------------------------------------- */
int main (void)
{
    int i, j;
    int print_hash_value = 0;
    platform_main_begin();
    crc32_gentab();
    func_1();
    transparent_crc(g_11, "g_11", print_hash_value);
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            transparent_crc(g_13[i][j], "g_13[i][j]", print_hash_value);
            if (print_hash_value) printf("index = [%d][%d]\n", i, j);

        }
    }
    transparent_crc(g_24, "g_24", print_hash_value);
    transparent_crc(g_28, "g_28", print_hash_value);
    transparent_crc(g_53, "g_53", print_hash_value);
    transparent_crc(g_68, "g_68", print_hash_value);
    transparent_crc(g_71, "g_71", print_hash_value);
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 2; j++)
        {
            transparent_crc(g_93[i][j], "g_93[i][j]", print_hash_value);
            if (print_hash_value) printf("index = [%d][%d]\n", i, j);

        }
    }
    transparent_crc(g_109, "g_109", print_hash_value);
    transparent_crc(g_147, "g_147", print_hash_value);
    transparent_crc(g_148, "g_148", print_hash_value);
    transparent_crc(g_154, "g_154", print_hash_value);
    transparent_crc(g_184.f0, "g_184.f0", print_hash_value);
    transparent_crc(g_184.f3, "g_184.f3", print_hash_value);
    transparent_crc(g_209, "g_209", print_hash_value);
    transparent_crc(g_219, "g_219", print_hash_value);
    transparent_crc(g_237, "g_237", print_hash_value);
    transparent_crc(g_275, "g_275", print_hash_value);
    transparent_crc(g_276, "g_276", print_hash_value);
    transparent_crc(g_280.f0, "g_280.f0", print_hash_value);
    transparent_crc(g_280.f3, "g_280.f3", print_hash_value);
    transparent_crc(g_300, "g_300", print_hash_value);
    transparent_crc(g_337.f0, "g_337.f0", print_hash_value);
    transparent_crc(g_337.f3, "g_337.f3", print_hash_value);
    transparent_crc(g_344, "g_344", print_hash_value);
    transparent_crc(g_385, "g_385", print_hash_value);
    for (i = 0; i < 2; i++)
    {
        transparent_crc(g_390[i], "g_390[i]", print_hash_value);
        if (print_hash_value) printf("index = [%d]\n", i);

    }
    for (i = 0; i < 1; i++)
    {
        transparent_crc(g_467[i], "g_467[i]", print_hash_value);
        if (print_hash_value) printf("index = [%d]\n", i);

    }
    platform_main_end(crc32_context ^ 0xFFFFFFFFUL, print_hash_value);
    return 0;
}

/************************ statistics *************************
XXX max struct depth: 0
breakdown:
   depth: 0, occurrence: 115
XXX total union variables: 3

XXX non-zero bitfields defined in structs: 2
XXX zero bitfields defined in structs: 1
XXX const bitfields defined in structs: 1
XXX volatile bitfields defined in structs: 0
XXX structs with bitfields in the program: 10
breakdown:
   indirect level: 0, occurrence: 3
   indirect level: 1, occurrence: 5
   indirect level: 2, occurrence: 2
XXX full-bitfields structs in the program: 0
breakdown:
XXX times a bitfields struct's address is taken: 4
XXX times a bitfields struct on LHS: 0
XXX times a bitfields struct on RHS: 4
XXX times a single bitfield on LHS: 0
XXX times a single bitfield on RHS: 0

XXX max expression depth: 30
breakdown:
   depth: 1, occurrence: 145
   depth: 2, occurrence: 37
   depth: 3, occurrence: 3
   depth: 4, occurrence: 4
   depth: 5, occurrence: 3
   depth: 6, occurrence: 1
   depth: 10, occurrence: 1
   depth: 17, occurrence: 1
   depth: 18, occurrence: 3
   depth: 19, occurrence: 1
   depth: 20, occurrence: 1
   depth: 21, occurrence: 1
   depth: 22, occurrence: 1
   depth: 23, occurrence: 1
   depth: 24, occurrence: 2
   depth: 30, occurrence: 1

XXX total number of pointers: 133

XXX times a variable address is taken: 45
XXX times a pointer is dereferenced on RHS: 23
breakdown:
   depth: 1, occurrence: 19
   depth: 2, occurrence: 4
XXX times a pointer is dereferenced on LHS: 77
breakdown:
   depth: 1, occurrence: 72
   depth: 2, occurrence: 5
XXX times a pointer is compared with null: 6
XXX times a pointer is compared with address of another variable: 1
XXX times a pointer is compared with another pointer: 3
XXX times a pointer is qualified to be dereferenced: 902

XXX max dereference level: 2
breakdown:
   level: 0, occurrence: 0
   level: 1, occurrence: 243
   level: 2, occurrence: 37
XXX number of pointers point to pointers: 29
XXX number of pointers point to scalars: 97
XXX number of pointers point to structs: 0
XXX percent of pointers has null in alias set: 18.8
XXX average alias set size: 1.22

XXX times a non-volatile is read: 326
XXX times a non-volatile is write: 246
XXX times a volatile is read: 0
XXX    times read thru a pointer: 0
XXX times a volatile is write: 0
XXX    times written thru a pointer: 0
XXX times a volatile is available for access: 0
XXX percentage of non-volatile access: 100

XXX forward jumps: 0
XXX backward jumps: 1

XXX stmts: 137
XXX max block depth: 5
breakdown:
   depth: 0, occurrence: 7
   depth: 1, occurrence: 6
   depth: 2, occurrence: 23
   depth: 3, occurrence: 22
   depth: 4, occurrence: 36
   depth: 5, occurrence: 43

XXX percentage a fresh-made variable is used: 22.6
XXX percentage an existing variable is used: 77.4
FYI: the random generator makes assumptions about the integer size. See platform.info for more details.
********************* end of statistics **********************/