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

Re: [csmith-bugs] pragma pack and unions



Sorry, I indeed attached the wrong file.

The one with the union U5 and the g_85 is:

/*
 * This is a RANDOMLY GENERATED PROGRAM.
 *
 * Generator: csmith 2.1.0
 * Git version: 9a88a2f
 * Options:   --max-pointer-depth 3 --max-funcs 2 --max-array-dim 2 --max-array-
len-per-dim 3 --max-struct-fields 5 --no-volatiles --no-argc --unions
 * Seed:      4143920528
 */


/*
 * This is a RANDOMLY GENERATED PROGRAM.
 *
 * Generator: csmith 2.1.0
 * Git version: 9a88a2f
 * Options:   --max-pointer-depth 3 --max-funcs 2 --max-array-dim 2 --max-array-len-per-dim 3 --max-struct-fields 5 --no-volatiles --no-argc --unions
 * Seed:      4143920528
 */

#include "csmith.h"


static long __undefined;

/* --- Struct/Union Declarations --- */
#pragma pack(push)
#pragma pack(1)
struct S0 {
   int16_t  f0;
   int16_t  f1;
   uint16_t  f2;
};
#pragma pack(pop)

#pragma pack(push)
#pragma pack(1)
struct S1 {
   unsigned f0 : _CSMITH_BITFIELD(29);
   unsigned f1 : _CSMITH_BITFIELD(30);
   const uint32_t  f2;
   unsigned f3 : _CSMITH_BITFIELD(54);
};
#pragma pack(pop)

struct S2 {
   unsigned f0 : _CSMITH_BITFIELD(58);
   signed f1 : _CSMITH_BITFIELD(9);
   signed f2 : _CSMITH_BITFIELD(1);
   struct S1  f3;
   signed f4 : _CSMITH_BITFIELD(59);
};

#pragma pack(push)
#pragma pack(1)
struct S3 {
   uint8_t  f0;
   signed f1 : _CSMITH_BITFIELD(41);
   struct S1  f2;
   struct S2  f3;
   const uint32_t  f4;
};
#pragma pack(pop)

union U4 {
   int8_t  f0;
};

union U5 {
   struct S1  f0;
   int32_t  f1;
   struct S0  f2;
};

/* --- GLOBAL VARIABLES --- */
static int32_t g_9 = 0x722BA7B7L;
static int32_t g_15 = 0x4129B857L;
static int64_t g_27 = 0L;
static int32_t *g_32 = (void*)0;
static int32_t ** const g_34 = &g_32;
static int32_t ** const *g_33 = &g_34;
static struct S3 *g_36 = (void*)0;
static uint64_t g_67[2] = {0x7968679DD5AE9098LL, 0x7968679DD5AE9098LL};
static int32_t **g_72[1][3] = {{&g_32, &g_32, &g_32}};
static int32_t ***g_71[1] = {&g_72[0][1]};
static int32_t ****g_70 = &g_71[0];
static union U5 g_75 = {{16521,25615,4294967286UL,53170278}};
static union U5 g_85[2][3] = {{{{3832,9439,0x94FDEA94L,27168529}}, {{3832,9439,0x94FDEA94L,27168529}}, {{3832,9439,0x94FDEA94L,27168529}}}, {{{3832,9439,0x94FDEA94L,27168529}}, {{3832,9439,0x94FDEA94L,27168529}}, {{3832,9439,0x94FDEA94L,27168529}}}};
static union U5 *g_84[2][1] = {{&g_85[0][2]}, {&g_85[0][2]}};
static struct S2 g_102 = {177370626,-20,-0,{20644,32724,0xE7D7DB6CL,1800582},-470328971};
static int64_t g_111 = (-10L);
static uint32_t g_139[2][3] = {{0xADE1354FL, 0xADE1354FL, 0xEC58B022L}, {0xADE1354FL, 0xADE1354FL, 0xEC58B022L}};
static int32_t g_173 = 1L;
static const struct S0 g_200[1] = {{0x90F9L,0x19D2L,0UL}};
static struct S3 ** const g_205 = &g_36;
static struct S3 ** const *g_204 = &g_205;
static struct S3 **g_207 = &g_36;
static struct S3 ***g_206 = &g_207;
static struct S2 **g_231 = (void*)0;
static struct S2 ***g_230 = &g_231;
static const struct S3 g_277 = {255UL,520329,{905,24806,4294967291UL,23014878},{69598726,-19,-0,{10575,10438,0x072E3335L,28258651},134741710},1UL};
static const struct S3 *g_276 = &g_277;
static const struct S3 **g_275 = &g_276;
static const struct S3 **g_280[2][3] = {{&g_276, &g_276, &g_276}, {&g_276, &g_276, &g_276}};
static struct S1 g_287 = {13159,7261,1UL,69749624};
static struct S1 *g_286[1][2] = {{&g_287, &g_287}};
static uint32_t g_375[1] = {0x09BC661FL};
static int32_t g_390 = (-6L);
static const union U4 *g_402 = (void*)0;
static union U4 g_407 = {0L};
static uint32_t g_413 = 18446744073709551615UL;
static const union U5 * const g_425[2] = {&g_75, &g_75};
static const union U5 * const *g_424 = &g_425[1];
static const union U5 g_428 = {{18120,2359,6UL,97400366}};
static uint32_t g_438 = 4UL;
static struct S0 g_442 = {0x4EF2L,-6L,0x5E63L};
static struct S0 *g_441 = &g_442;
static struct S0 **g_440 = &g_441;
static struct S0 ***g_439 = &g_440;
static uint64_t g_476 = 0x216ECE13D66CD6DFLL;
static const int32_t *g_535 = &g_173;
static const int32_t **g_534[3][3] = {{&g_535, &g_535, &g_535}, {&g_535, &g_535, &g_535}, {&g_535, &g_535, &g_535}};
static const int32_t ***g_533[1][1] = {{&g_534[2][1]}};
static const int32_t ****g_532 = &g_533[0][0];
static uint64_t g_555 = 7UL;
static uint8_t g_618[1] = {0UL};
static int64_t g_625 = 3L;
static int64_t g_635 = 9L;
static uint16_t *g_694 = &g_442.f2;
static uint16_t *g_695[3][1] = {{(void*)0}, {(void*)0}, {(void*)0}};
static uint32_t ** const g_715[2] = {(void*)0, (void*)0};
static union U5 g_757 = {{12946,13556,0x71E96B21L,15442507}};
static uint32_t g_763 = 0UL;
static struct S2 *g_781 = (void*)0;


/* --- FORWARD DECLARATIONS --- */
static const uint64_t  func_1(void);
static uint16_t  func_4(uint64_t  p_5, int8_t  p_6, int64_t  p_7);


/* --- FUNCTIONS --- */
/* ------------------------------------------ */
/* 
 * reads : g_9 g_15 g_33 g_36 g_67 g_75.f0.f1 g_75.f0.f0 g_34 g_102.f0 g_139 g_70 g_71 g_72 g_204 g_205 g_32 g_277.f4 g_439 g_440 g_532 g_533 g_534 g_535 g_173 g_277.f2.f1 g_555 g_413 g_277.f3.f3.f0 g_438 g_287.f0 g_200.f2 g_428.f0.f1 g_85.f0.f1 g_442.f2 g_102.f3.f1 g_442.f1 g_200.f0 g_618 g_277.f3.f3.f2 g_277.f2.f2 g_625 g_102.f1 g_635 g_424 g_425 g_102.f3.f2 g_428.f0.f2 g_407.f0 g_476 g_102.f2 g_287.f1 g_75.f2.f2 g_390 g_695 g_200 g_75.f2.f1 g_715 g_277.f2.f0 g_277.f3.f2 g_694 g_102.f4 g_102.f3.f0 g_763 g_781
 * writes: g_9 g_32 g_33 g_36 g_15 g_84 g_85.f2.f1 g_85.f2.f2 g_111 g_286 g_75.f2.f2 g_441 g_532 g_555 g_75.f2.f1 g_535 g_442.f2 g_442.f0 g_75.f2 g_694 g_407.f0 g_375 g_27 g_763 g_206 g_781
 */
static const uint64_t  func_1(void)
{ /* block id: 0 */
    const uint16_t l_8[2] = {0x6C21L, 0x6C21L};
    uint16_t *l_117 = (void*)0;
    uint16_t *l_118 = &g_85[0][2].f2.f2;
    uint64_t l_147 = 0xAD08EFB34F4D14C4LL;
    int32_t l_174 = 0x9F3F7CD4L;
    int32_t l_175 = 1L;
    int32_t l_178 = 0x882ED2A0L;
    int32_t l_179 = 0x6015CD30L;
    int32_t l_180 = (-7L);
    int32_t l_183[2];
    struct S3 l_245 = {250UL,-1188359,{14285,32015,7UL,95643040},{388956689,11,-0,{15059,18161,4294967295UL,92200692},731719695},18446744073709551613UL};
    union U5 l_257[1][1] = {{{{16738,9271,0x6B81B9BBL,113265620}}}};
    struct S1 *l_282 = &l_245.f3.f3;
    uint64_t l_319[2];
    int32_t l_329 = 7L;
    struct S0 l_360[2] = {{4L,0x3D5AL,1UL}, {4L,0x3D5AL,1UL}};
    uint32_t *l_374 = &g_375[0];
    uint8_t l_489 = 1UL;
    uint32_t l_508 = 2UL;
    uint16_t l_540 = 0x0723L;
    const uint16_t l_559 = 0x4CD2L;
    uint64_t l_624 = 3UL;
    union U5 l_634 = {{2347,2587,0x368FAA0BL,44166020}};
    struct S0 l_666 = {-1L,0L,65526UL};
    int i, j;
    for (i = 0; i < 2; i++)
        l_183[i] = 6L;
    for (i = 0; i < 2; i++)
        l_319[i] = 5UL;
    if ((safe_sub_func_uint16_t_u_u(((*l_118) = func_4((l_8[1] && l_8[0]), g_9, g_9)), (g_102.f0 != (l_8[1] & g_75.f0.f0)))))
    { /* block id: 71 */
        uint8_t l_126 = 0x76L;
        int32_t l_160 = 0x30141AF6L;
        int32_t l_172[1][1];
        uint32_t l_184 = 0x3595D045L;
        int32_t l_264 = (-6L);
        struct S2 l_274 = {457282847,-0,0,{14599,23547,0x0481DE10L,73759464},-127099710};
        int32_t *****l_281[2][3];
        int8_t l_289 = (-1L);
        struct S3 l_318 = {1UL,-1042367,{20189,22293,4294967289UL,56345379},{247301320,13,-0,{13260,32585,4294967295UL,52690493},-328765599},0xBACD3422L};
        union U5 *l_350[1];
        const struct S0 l_356 = {5L,-10L,0UL};
        int16_t l_391 = 6L;
        uint64_t l_395 = 1UL;
        uint32_t l_410 = 0x510DB3CAL;
        struct S0 l_420 = {8L,-1L,0UL};
        uint32_t l_498 = 0UL;
        int i, j;
        for (i = 0; i < 1; i++)
        {
            for (j = 0; j < 1; j++)
                l_172[i][j] = (-1L);
        }
        for (i = 0; i < 2; i++)
        {
            for (j = 0; j < 3; j++)
                l_281[i][j] = &g_70;
        }
        for (i = 0; i < 1; i++)
            l_350[i] = &g_85[0][2];
        for (g_111 = 0; (g_111 < (-25)); --g_111)
        { /* block id: 74 */
            uint16_t l_123 = 1UL;
            const int16_t l_149 = (-6L);
            int32_t l_150 = 1L;
            struct S0 l_151[3] = {{0x4DB8L,0L,0xBB3EL}, {0x4DB8L,0L,0xBB3EL}, {0x4DB8L,0L,0xBB3EL}};
            int32_t l_176 = 0xFF9A101DL;
            int32_t l_177 = 0L;
            int32_t l_181 = 0L;
            int32_t l_182[1][2];
            union U5 l_191[1] = {{{8069,25011,0x0A9BE4DEL,6110284}}};
            union U5 **l_251 = &g_84[0][0];
            int32_t *l_252 = &l_172[0][0];
            int i, j;
            for (i = 0; i < 1; i++)
            {
                for (j = 0; j < 2; j++)
                    l_182[i][j] = 1L;
            }
        }
        for (l_175 = 0; (l_175 <= (-2)); l_175--)
        { /* block id: 121 */
            int16_t *l_265 = &g_85[0][2].f2.f0;
            int16_t *l_266 = &g_85[0][2].f2.f1;
            int16_t *l_267 = &g_85[0][2].f2.f0;
            int16_t *l_268 = &l_257[0][0].f2.f0;
            int16_t *l_269 = &l_257[0][0].f2.f1;
            int16_t *l_270 = &g_85[0][2].f2.f0;
            int16_t *l_271[1][2];
            int32_t l_272 = 1L;
            int32_t l_273 = (-1L);
            const struct S3 **l_279 = &g_276;
            const struct S3 ***l_278[3];
            struct S1 **l_283 = &l_282;
            struct S1 *l_285 = &g_85[0][2].f0;
            struct S1 **l_284[2][1];
            int i, j;
            for (i = 0; i < 1; i++)
            {
                for (j = 0; j < 2; j++)
                    l_271[i][j] = &l_257[0][0].f2.f0;
            }
            for (i = 0; i < 3; i++)
                l_278[i] = &l_279;
            for (i = 0; i < 2; i++)
            {
                for (j = 0; j < 1; j++)
                    l_284[i][j] = &l_285;
            }
            l_273 |= (safe_mul_func_int16_t_s_s((l_257[0][0] , (l_245.f3.f2 = (safe_rshift_func_uint16_t_u_s((safe_rshift_func_int16_t_s_s((l_272 &= (safe_rshift_func_uint8_t_u_s(l_264, 3))), (((g_139[0][2] , 0x7653ECA8L) , l_281[0][1]) != (void*)0))), g_139[1][1])))), l_257[0][0].f0.f0));
            l_183[1] = 0xDA2C610DL;
            g_286[0][0] = ((*l_283) = l_282);
        }
    }
    else
    { /* block id: 307 */
        const int8_t l_521 = 0x2BL;
        struct S3 *l_528 = &l_245;
        struct S0 *l_529[3][1];
        int32_t l_539 = (-7L);
        int32_t l_554 = 0xE4F2B79DL;
        uint32_t l_558 = 0xB4F48DBEL;
        int32_t l_570 = 0x587F6DCCL;
        struct S2 *l_574 = (void*)0;
        uint64_t *l_601 = &l_147;
        uint64_t **l_600 = &l_601;
        uint64_t l_607 = 0x7FECEB4D1F0680E7LL;
        int32_t l_626[2];
        int32_t l_629[1];
        int32_t l_630 = 0L;
        union U4 l_660 = {0xD0L};
        int32_t l_665 = (-3L);
        uint16_t *l_696 = (void*)0;
        int64_t l_707 = 0x9DD0474D6E2CF46DLL;
        int8_t l_725 = 1L;
        int32_t l_751 = 1L;
        int i, j;
        for (i = 0; i < 3; i++)
        {
            for (j = 0; j < 1; j++)
                l_529[i][j] = (void*)0;
        }
        for (i = 0; i < 2; i++)
            l_626[i] = (-1L);
        for (i = 0; i < 1; i++)
            l_629[i] = 0xF8F76D41L;
        if (l_489)
        { /* block id: 308 */
            return l_521;
        }
        else
        { /* block id: 310 */
            int16_t l_526 = 0xA23AL;
            int32_t l_546 = 0xAFD95703L;
            int32_t l_550[2];
            struct S0 l_563 = {-6L,0x15EEL,65535UL};
            int8_t l_577 = 0xB4L;
            int32_t *l_579[2];
            uint64_t l_581[2][1];
            int16_t *l_623[3][2] = {{&g_442.f1, &g_442.f1}, {&g_442.f1, &g_442.f1}, {&g_442.f1, &g_442.f1}};
            uint16_t l_653 = 65527UL;
            int i, j;
            for (i = 0; i < 2; i++)
                l_550[i] = 0L;
            for (i = 0; i < 2; i++)
                l_579[i] = (void*)0;
            for (i = 0; i < 2; i++)
            {
                for (j = 0; j < 1; j++)
                    l_581[i][j] = 0xD1C3EB200F014134LL;
            }
            for (l_508 = 0; (l_508 > 57); l_508++)
            { /* block id: 313 */
                int32_t *l_527[1];
                const int32_t ****l_537 = &g_533[0][0];
                uint8_t *l_562 = &l_245.f0;
                uint8_t *l_564 = &l_489;
                union U4 l_576[3] = {{0x3DL}, {0x3DL}, {0x3DL}};
                int i;
                for (i = 0; i < 1; i++)
                    l_527[i] = &g_15;
                for (g_75.f2.f2 = (-27); (g_75.f2.f2 < 53); g_75.f2.f2++)
                { /* block id: 316 */
                    if (l_526)
                    { /* block id: 317 */
                        (***g_70) = l_527[0];
                        (**g_204) = l_528;
                        (***g_33) ^= 0x61AB4815L;
                    }
                    else
                    { /* block id: 321 */
                        return g_277.f4;
                    }
                    (**g_439) = l_529[0][0];
                }
                for (l_245.f0 = (-18); (l_245.f0 >= 35); l_245.f0 = safe_add_func_uint16_t_u_u(l_245.f0, 8))
                { /* block id: 328 */
                    const int32_t *****l_536 = &g_532;
                    struct S1 *l_538 = (void*)0;
                    int32_t l_547 = 0xE2B4602EL;
                    int32_t l_548 = 2L;
                    int32_t l_549 = (-1L);
                    int32_t l_551 = (-10L);
                    int32_t l_552 = 5L;
                    int32_t l_553 = 0x173FEBBCL;
                    if ((((*l_536) = g_532) != l_537))
                    { /* block id: 330 */
                        l_538 = &g_287;
                    }
                    else
                    { /* block id: 332 */
                        l_540++;
                        (**g_33) = &l_539;
                        return (*****l_536);
                    }
                    if ((g_277.f2.f1 & l_521))
                    { /* block id: 337 */
                        struct S1 **l_543 = (void*)0;
                        struct S1 **l_544 = &l_282;
                        int32_t l_545[3][1];
                        int i, j;
                        for (i = 0; i < 3; i++)
                        {
                            for (j = 0; j < 1; j++)
                                l_545[i][j] = 0L;
                        }
                        (*l_544) = l_538;
                        l_245.f1 = l_545[2][0];
                        ++g_555;
                        (**g_439) = (void*)0;
                    }
                    else
                    { /* block id: 342 */
                        l_558 ^= l_539;
                        return l_559;
                    }
                }
                if ((safe_mod_func_uint8_t_u_u((((-3L) <= 1UL) , ((*l_562) = (0L | g_413))), ((*l_564) = ((l_360[1] = l_563) , l_554)))))
                { /* block id: 350 */
                    uint32_t l_571 = 1UL;
                    struct S2 **l_575 = &l_574;
                    int32_t l_578[1];
                    int i;
                    for (i = 0; i < 1; i++)
                        l_578[i] = (-4L);
                    for (g_75.f2.f1 = 0; (g_75.f2.f1 == 12); g_75.f2.f1 = safe_add_func_int32_t_s_s(g_75.f2.f1, 4))
                    { /* block id: 353 */
                        int8_t l_567 = 9L;
                        int32_t l_568 = 0xE57B54B7L;
                        int32_t l_569[2][3] = {{(-9L), (-9L), 0xDEC81587L}, {(-9L), (-9L), 0xDEC81587L}};
                        int i, j;
                        l_567 ^= (****l_537);
                        l_571++;
                        l_546 &= (l_550[1] = func_4(l_571, g_277.f2.f1, l_563.f1));
                        return l_521;
                    }
                    (*l_575) = l_574;
                    l_578[0] &= (l_577 = (l_576[2] , l_183[1]));
                    if (l_578[0])
                        continue;
                }
                else
                { /* block id: 364 */
                    int8_t l_584 = 1L;
                    if ((l_147 < ((g_277.f3.f3.f0 > g_438) < 65535UL)))
                    { /* block id: 365 */
                        int32_t l_580 = 1L;
                        l_579[1] = &l_554;
                        ++l_581[1][0];
                        l_584--;
                    }
                    else
                    { /* block id: 369 */
                        const struct S0 l_587 = {0L,0x8386L,0xE273L};
                        const int32_t *****l_589 = &g_532;
                        const int32_t ******l_588 = &l_589;
                        (***l_537) = (***l_537);
                        if (l_570)
                            break;
                        l_245.f3.f2 ^= ((!func_4(g_287.f0, (((l_587 , l_588) != &l_589) ^ (safe_mod_func_int16_t_s_s(g_200[0].f2, (safe_div_func_int8_t_s_s(g_428.f0.f1, g_85[0][2].f0.f1))))), l_360[1].f1)) >= 1UL);
                    }
                }
            }
            for (g_442.f2 = 0; (g_442.f2 <= 1); g_442.f2 += 1)
            { /* block id: 378 */
                int8_t l_606 = 0L;
                int i;
                for (l_508 = 0; (l_508 <= 1); l_508 += 1)
                { /* block id: 381 */
                    int16_t l_596 = 0x9314L;
                    for (l_577 = 1; (l_577 >= 0); l_577 -= 1)
                    { /* block id: 384 */
                        uint32_t l_599 = 0xDB1A58E1L;
                        int i;
                        l_550[l_577] = (l_245 , (safe_rshift_func_uint16_t_u_s((3L ^ l_596), ((safe_lshift_func_int16_t_s_s(l_599, 11)) < l_599))));
                        l_600 = (void*)0;
                    }
                    for (l_245.f0 = 0; (l_245.f0 <= 1); l_245.f0 += 1)
                    { /* block id: 390 */
                        union U4 **l_602 = (void*)0;
                        union U4 **l_603 = (void*)0;
                        union U4 *l_605 = &g_407;
                        union U4 **l_604 = &l_605;
                        int i;
                        l_579[g_442.f2] = &l_175;
                        (*l_604) = &g_407;
                        if (l_539)
                            continue;
                        l_183[1] |= l_606;
                    }
                }
                --l_607;
            }
            if (((safe_lshift_func_int8_t_s_s(g_102.f3.f1, 2)) >= func_4((l_489 >= g_442.f1), (safe_mul_func_int8_t_s_s((((g_200[0].f0 >= (safe_div_func_uint64_t_u_u((safe_sub_func_int16_t_s_s(((l_8[1] <= (func_4((l_8[1] , ((g_618[0] || (safe_rshift_func_int8_t_s_u(l_539, (safe_div_func_int16_t_s_s((g_442.f0 = g_277.f3.f3.f2), 0x43A8L))))) ^ l_624)), g_413, g_277.f2.f2) , 0UL)) < (-6L)), g_277.f3.f3.f2)), g_625))) , g_102.f1) == 0xD52AF9D107974E20LL), 0xC2L)), g_442.f1)))
            { /* block id: 400 */
                int32_t l_627 = 2L;
                int32_t l_628[3];
                uint16_t l_631 = 65531UL;
                union U5 **l_640 = (void*)0;
                union U5 *l_642 = &g_85[0][2];
                union U5 **l_641 = &l_642;
                int i;
                for (i = 0; i < 3; i++)
                    l_628[i] = 0x68B6D5CFL;
                ++l_631;
                (***g_532) = &l_550[0];
                l_175 |= ((l_634 , (g_635 >= (safe_add_func_uint16_t_u_u((safe_rshift_func_int8_t_s_u((((*l_641) = (g_84[1][0] = &g_75)) == (*g_424)), g_102.f3.f2)), (safe_mod_func_int16_t_s_s((((l_628[1] != (g_428.f0.f2 != 0L)) & l_245.f2.f3) , 0L), (-5L))))))) < g_139[0][2]);
            }
            else
            { /* block id: 406 */
                for (g_15 = 11; (g_15 < 14); ++g_15)
                { /* block id: 409 */
                    g_75.f2 = l_563;
                    l_570 &= (safe_div_func_uint64_t_u_u(g_407.f0, l_653));
                    return g_442.f2;
                }
            }
        }
        if ((0x1675769FL >= (safe_mod_func_int64_t_s_s(((safe_div_func_uint16_t_u_u(l_629[0], (l_607 ^ l_570))) < g_476), (safe_rshift_func_int8_t_s_s(l_558, (l_660 , ((safe_lshift_func_uint16_t_u_u((safe_rshift_func_int8_t_s_u((func_4(g_102.f2, l_634.f0.f2, l_665) == 0UL), 3)), 7)) > g_287.f1))))))))
        { /* block id: 416 */
            for (g_75.f2.f2 = 0; (g_75.f2.f2 <= 0); g_75.f2.f2 += 1)
            { /* block id: 419 */
                struct S0 l_667 = {0x4183L,0x7D80L,0xC905L};
                l_667 = l_666;
            }
        }
        else
        { /* block id: 422 */
            uint32_t l_672 = 0x04D9EE81L;
            int16_t *l_673 = &l_666.f0;
            int8_t *l_676 = &l_660.f0;
            struct S3 *l_679 = &l_245;
            int32_t *l_684 = &l_183[1];
            uint16_t **l_693[3];
            uint8_t *l_701 = &l_245.f0;
            int8_t *l_706 = &g_407.f0;
            int i;
            for (i = 0; i < 3; i++)
                l_693[i] = &l_118;
            (*l_684) ^= (safe_sub_func_int64_t_s_s(((((safe_lshift_func_int8_t_s_u(g_102.f1, 0)) <= l_672) || ((((*l_673) = 0L) & (safe_div_func_int8_t_s_s(((*l_676) &= (+g_390)), (safe_add_func_int64_t_s_s((l_679 != (void*)0), ((safe_lshift_func_int8_t_s_u((func_4(((*g_532) == ((safe_sub_func_uint32_t_u_u(4294967295UL, (l_178 |= (1L == l_607)))) , (void*)0)), l_672, l_245.f4) <= l_626[0]), 3)) >= 0xDF6904C84458C2ABLL)))))) || l_257[0][0].f0.f0)) <= 0xF6L), g_413));
            l_554 |= ((*l_684) = (g_102.f2 == ((((safe_add_func_uint8_t_u_u(g_15, ((g_139[1][1] & (safe_mul_func_uint16_t_u_u((safe_rshift_func_int8_t_s_s(((*l_676) = (safe_lshift_func_int16_t_s_s(((g_694 = &l_540) == (l_696 = g_695[2][0])), 11))), 5)), (safe_div_func_uint64_t_u_u((safe_rshift_func_uint8_t_u_u(g_438, ((*l_701) &= l_666.f0))), (safe_rshift_func_uint8_t_u_s(l_607, ((*l_706) = (safe_lshift_func_int8_t_s_u(((void*)0 == &g_402), 7)))))))))) > l_707))) > 9UL) <= l_245.f3.f4) && l_660.f0)));
            l_666 = g_200[0];
        }
        for (g_75.f2.f1 = 28; (g_75.f2.f1 < (-11)); --g_75.f2.f1)
        { /* block id: 438 */
            uint8_t l_752 = 0xA6L;
            union U5 *l_754 = &l_257[0][0];
            int32_t l_762 = 3L;
            int32_t l_772 = 0x587ADB74L;
            int32_t l_774 = 1L;
            int32_t l_775 = 0xA031948BL;
            int32_t l_776 = 0xD49C2F07L;
            int32_t l_777 = 9L;
            uint32_t l_790 = 0x20AD0F91L;
            for (l_634.f1 = (-23); (l_634.f1 == (-23)); l_634.f1++)
            { /* block id: 441 */
                int64_t l_714 = 0L;
                int8_t *l_724 = &g_407.f0;
                uint64_t *l_750 = &l_607;
                int64_t *l_753 = &g_27;
                union U5 *l_756 = &g_757;
                int32_t l_760 = 0xF38C6D9AL;
                int32_t l_773[2];
                int i;
                for (i = 0; i < 2; i++)
                    l_773[i] = 1L;
                l_725 &= (safe_mul_func_int8_t_s_s((l_714 < (((void*)0 != g_715[1]) || l_634.f1)), ((safe_div_func_uint8_t_u_u(((safe_rshift_func_int8_t_s_s(((g_277.f2.f0 != g_102.f2) | (safe_mul_func_uint8_t_u_u(l_714, ((*l_724) = (~(safe_mul_func_uint8_t_u_u(g_438, 0xF3L))))))), 1)) && 0x21D6A067E4CA41B8LL), l_179)) != 0xEBL)));
                if ((safe_sub_func_int64_t_s_s(((*l_753) = (safe_add_func_uint8_t_u_u(0UL, ((l_752 ^= (safe_sub_func_uint16_t_u_u(func_4(((*l_601) &= l_245.f3.f3.f3), (((safe_mul_func_uint16_t_u_u((safe_lshift_func_int8_t_s_s((safe_lshift_func_int16_t_s_s((((safe_add_func_int16_t_s_s(g_277.f3.f2, (safe_lshift_func_int8_t_s_u(((safe_lshift_func_int16_t_s_u((safe_sub_func_int32_t_s_s(l_245.f3.f3.f1, ((*l_374) = (((*g_694) = (((safe_add_func_int32_t_s_s((safe_add_func_int32_t_s_s(func_4(((*l_750) = l_714), ((((*g_694) < g_287.f0) , g_715[1]) != g_715[1]), l_245.f3.f3.f2), (-1L))), 0x58D42416L)) , l_714) < g_102.f4)) > l_714)))), l_714)) , g_428.f0.f1), 2)))) != l_180) <= 1L), 5)), g_139[0][2])), g_277.f4)) > l_751) , g_9), g_102.f3.f0), (-1L)))) ^ 0x8932L)))), g_139[0][2])))
                { /* block id: 450 */
                    union U5 **l_755 = (void*)0;
                    int32_t l_766[3];
                    int64_t l_767 = 0x5CE87385469DC859LL;
                    struct S3 ***l_770[1][2];
                    int i, j;
                    for (i = 0; i < 3; i++)
                        l_766[i] = 0xA0271808L;
                    for (i = 0; i < 1; i++)
                    {
                        for (j = 0; j < 2; j++)
                            l_770[i][j] = &g_207;
                    }
                    l_756 = l_754;
                    for (g_27 = 0; (g_27 > (-13)); --g_27)
                    { /* block id: 454 */
                        int32_t *l_761[2];
                        int i;
                        for (i = 0; i < 2; i++)
                            l_761[i] = &l_554;
                        --g_763;
                        if (l_766[0])
                            continue;
                        (***g_532) = &l_762;
                    }
                    if (l_767)
                    { /* block id: 459 */
                        (***g_70) = &l_570;
                        if (l_245.f2.f0)
                            continue;
                        if (l_760)
                            break;
                    }
                    else
                    { /* block id: 463 */
                        struct S3 ***l_768 = &g_207;
                        struct S3 ****l_769 = &g_206;
                        int32_t *l_771[2][3] = {{&l_175, &l_183[1], &l_175}, {&l_175, &l_183[1], &l_175}};
                        uint8_t l_778[2];
                        int i, j;
                        for (i = 0; i < 2; i++)
                            l_778[i] = 0x5CL;
                        l_760 ^= ((&g_70 == (void*)0) > (0x90A6L != (((*l_769) = l_768) != l_770[0][0])));
                        ++l_778[0];
                    }
                    (***g_532) = &l_762;
                }
                else
                { /* block id: 469 */
                    struct S2 **l_782 = &g_781;
                    int32_t l_783 = (-1L);
                    int32_t l_784 = 0x2902ECF9L;
                    int32_t *l_785 = &l_774;
                    int32_t *l_786 = &l_772;
                    int32_t *l_787 = (void*)0;
                    int32_t *l_788[3];
                    int64_t l_789 = 0L;
                    int i;
                    for (i = 0; i < 3; i++)
                        l_788[i] = &g_85[0][2].f1;
                    (*l_782) = g_781;
                    if (l_783)
                        break;
                    --l_790;
                }
                return g_442.f2;
            }
        }
    }
    return l_245.f2.f2;
}


/* ------------------------------------------ */
/* 
 * reads : g_15 g_33 g_36 g_9 g_67 g_75.f0.f1 g_75.f0.f0 g_34
 * writes: g_9 g_32 g_33 g_36 g_15 g_84 g_85.f2.f1
 */
static uint16_t  func_4(uint64_t  p_5, int8_t  p_6, int64_t  p_7)
{ /* block id: 1 */
    int64_t l_26 = 0x7C295A5277201043LL;
    int32_t *l_31 = &g_15;
    int32_t ****l_47 = (void*)0;
    int32_t l_51 = (-2L);
    struct S3 **l_77[2][1];
    int32_t l_79 = 0x89037596L;
    int32_t l_106 = (-9L);
    int32_t l_110[1][3];
    union U5 *l_115 = &g_85[0][2];
    int i, j;
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 1; j++)
            l_77[i][j] = (void*)0;
    }
    for (i = 0; i < 1; i++)
    {
        for (j = 0; j < 3; j++)
            l_110[i][j] = 1L;
    }
    for (p_6 = 0; (p_6 >= 5); p_6 = safe_add_func_int64_t_s_s(p_6, 1))
    { /* block id: 4 */
        const int32_t *l_14 = &g_15;
        int32_t l_25 = 0L;
        int32_t l_50 = 0x9D45C545L;
        int32_t l_80[1];
        struct S2 *l_101[3];
        union U5 **l_116 = &g_84[0][0];
        int i;
        for (i = 0; i < 1; i++)
            l_80[i] = 0x3D54B5BCL;
        for (i = 0; i < 3; i++)
            l_101[i] = &g_102;
        for (g_9 = (-22); (g_9 > 17); ++g_9)
        { /* block id: 7 */
            const int32_t **l_16 = &l_14;
            int8_t l_19[3];
            int32_t **l_46 = (void*)0;
            int32_t ***l_45 = &l_46;
            int32_t ****l_44[3][3] = {{&l_45, (void*)0, &l_45}, {&l_45, (void*)0, &l_45}, {&l_45, (void*)0, &l_45}};
            int32_t *l_62 = &l_25;
            uint8_t l_107 = 0UL;
            uint32_t l_112[1];
            int i, j;
            for (i = 0; i < 3; i++)
                l_19[i] = 0xC3L;
            for (i = 0; i < 1; i++)
                l_112[i] = 4294967295UL;
            (*l_16) = l_14;
            for (p_5 = 0; (p_5 >= 12); p_5 = safe_add_func_uint64_t_u_u(p_5, 8))
            { /* block id: 11 */
                uint16_t l_28[2];
                int32_t l_93 = 0L;
                int i;
                for (i = 0; i < 2; i++)
                    l_28[i] = 0xAE11L;
                for (p_7 = 0; (p_7 <= 2); p_7 += 1)
                { /* block id: 14 */
                    struct S3 **l_37 = &g_36;
                    int i;
                    if ((l_19[p_7] && (+g_15)))
                    { /* block id: 15 */
                        int32_t *l_20 = &g_15;
                        int32_t *l_21 = &g_15;
                        int32_t *l_22 = &g_15;
                        int32_t *l_23 = &g_15;
                        int32_t *l_24[2][2];
                        int i, j;
                        for (i = 0; i < 2; i++)
                        {
                            for (j = 0; j < 2; j++)
                                l_24[i][j] = &g_15;
                        }
                        if (p_7)
                            break;
                        l_28[1]--;
                    }
                    else
                    { /* block id: 18 */
                        int32_t ** const **l_35 = &g_33;
                        g_32 = l_31;
                        (*l_35) = g_33;
                    }
                    (*l_37) = g_36;
                    l_25 &= (p_6 ^ (p_7 || (p_6 >= ((g_9 | (safe_div_func_int32_t_s_s((((l_44[0][2] == l_47) && ((safe_add_func_int32_t_s_s(l_50, l_51)) == (&g_36 != &g_36))) >= g_15), g_15))) >= p_5))));
                }
                if (p_5)
                { /* block id: 37 */
                    uint64_t l_81 = 0UL;
                    l_81++;
                    (*l_31) = p_6;
                    g_84[0][0] = &g_75;
                }
                else
                { /* block id: 41 */
                    uint32_t l_92 = 0UL;
                    struct S2 **l_103 = &l_101[2];
                    struct S2 *l_105 = &g_102;
                    struct S2 **l_104 = &l_105;
                    if ((safe_add_func_uint32_t_u_u(g_67[1], g_67[0])))
                    { /* block id: 42 */
                        int16_t l_88 = 1L;
                        l_88--;
                    }
                    else
                    { /* block id: 44 */
                        const int32_t *l_91 = &l_80[0];
                        (*l_16) = l_91;
                    }
                    if (p_6)
                    { /* block id: 47 */
                        l_92 |= 0L;
                        if (l_93)
                            break;
                    }
                    else
                    { /* block id: 50 */
                        int16_t *l_94 = &g_85[0][2].f2.f1;
                        int32_t *****l_100[3];
                        int32_t ******l_99 = &l_100[2];
                        int i;
                        for (i = 0; i < 3; i++)
                            l_100[i] = (void*)0;
                        l_80[0] = ((*l_62) = (((**l_16) | (((((((*l_94) = p_5) | l_28[1]) > g_75.f0.f1) & p_6) != (!((p_6 > ((g_75.f0.f0 || (safe_add_func_uint64_t_u_u(g_67[1], (safe_lshift_func_uint8_t_u_s((((*l_99) = &l_47) != (void*)0), 1))))) ^ l_92)) ^ 8UL))) , (*l_31))) && 0x061DL));
                        (**g_33) = &l_25;
                    }
                    (*l_104) = ((*l_103) = l_101[2]);
                    return g_15;
                }
            }
            l_107++;
            l_112[0]++;
        }
        (*l_116) = l_115;
        (*g_34) = &l_50;
        if (p_6)
            continue;
    }
    return (*l_31);
}




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

    }
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 3; j++)
        {
            transparent_crc(g_85[i][j].f0.f0, "g_85[i][j].f0.f0", print_hash_value);
            transparent_crc(g_85[i][j].f0.f1, "g_85[i][j].f0.f1", print_hash_value);
            transparent_crc(g_85[i][j].f0.f2, "g_85[i][j].f0.f2", print_hash_value);
            transparent_crc(g_85[i][j].f0.f3, "g_85[i][j].f0.f3", print_hash_value);
            if (print_hash_value) printf("index = [%d][%d]\n", i, j);

        }
    }
    transparent_crc(g_102.f0, "g_102.f0", print_hash_value);
    transparent_crc(g_102.f1, "g_102.f1", print_hash_value);
    transparent_crc(g_102.f2, "g_102.f2", print_hash_value);
    transparent_crc(g_102.f3.f0, "g_102.f3.f0", print_hash_value);
    transparent_crc(g_102.f3.f1, "g_102.f3.f1", print_hash_value);
    transparent_crc(g_102.f3.f2, "g_102.f3.f2", print_hash_value);
    transparent_crc(g_102.f3.f3, "g_102.f3.f3", print_hash_value);
    transparent_crc(g_102.f4, "g_102.f4", print_hash_value);
    transparent_crc(g_111, "g_111", print_hash_value);
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 3; j++)
        {
            transparent_crc(g_139[i][j], "g_139[i][j]", print_hash_value);
            if (print_hash_value) printf("index = [%d][%d]\n", i, j);

        }
    }
    transparent_crc(g_173, "g_173", print_hash_value);
    for (i = 0; i < 1; i++)
    {
        transparent_crc(g_200[i].f0, "g_200[i].f0", print_hash_value);
        transparent_crc(g_200[i].f1, "g_200[i].f1", print_hash_value);
        transparent_crc(g_200[i].f2, "g_200[i].f2", print_hash_value);
        if (print_hash_value) printf("index = [%d]\n", i);

    }
    transparent_crc(g_277.f0, "g_277.f0", print_hash_value);
    transparent_crc(g_277.f1, "g_277.f1", print_hash_value);
    transparent_crc(g_277.f2.f0, "g_277.f2.f0", print_hash_value);
    transparent_crc(g_277.f2.f1, "g_277.f2.f1", print_hash_value);
    transparent_crc(g_277.f2.f2, "g_277.f2.f2", print_hash_value);
    transparent_crc(g_277.f2.f3, "g_277.f2.f3", print_hash_value);
    transparent_crc(g_277.f3.f0, "g_277.f3.f0", print_hash_value);
    transparent_crc(g_277.f3.f1, "g_277.f3.f1", print_hash_value);
    transparent_crc(g_277.f3.f2, "g_277.f3.f2", print_hash_value);
    transparent_crc(g_277.f3.f3.f0, "g_277.f3.f3.f0", print_hash_value);
    transparent_crc(g_277.f3.f3.f1, "g_277.f3.f3.f1", print_hash_value);
    transparent_crc(g_277.f3.f3.f2, "g_277.f3.f3.f2", print_hash_value);
    transparent_crc(g_277.f3.f3.f3, "g_277.f3.f3.f3", print_hash_value);
    transparent_crc(g_277.f3.f4, "g_277.f3.f4", print_hash_value);
    transparent_crc(g_277.f4, "g_277.f4", print_hash_value);
    transparent_crc(g_287.f0, "g_287.f0", print_hash_value);
    transparent_crc(g_287.f1, "g_287.f1", print_hash_value);
    transparent_crc(g_287.f2, "g_287.f2", print_hash_value);
    transparent_crc(g_287.f3, "g_287.f3", print_hash_value);
    for (i = 0; i < 1; i++)
    {
        transparent_crc(g_375[i], "g_375[i]", print_hash_value);
        if (print_hash_value) printf("index = [%d]\n", i);

    }
    transparent_crc(g_390, "g_390", print_hash_value);
    transparent_crc(g_407.f0, "g_407.f0", print_hash_value);
    transparent_crc(g_413, "g_413", print_hash_value);
    transparent_crc(g_428.f0.f0, "g_428.f0.f0", print_hash_value);
    transparent_crc(g_428.f0.f1, "g_428.f0.f1", print_hash_value);
    transparent_crc(g_428.f0.f2, "g_428.f0.f2", print_hash_value);
    transparent_crc(g_428.f0.f3, "g_428.f0.f3", print_hash_value);
    transparent_crc(g_438, "g_438", print_hash_value);
    transparent_crc(g_442.f0, "g_442.f0", print_hash_value);
    transparent_crc(g_442.f1, "g_442.f1", print_hash_value);
    transparent_crc(g_442.f2, "g_442.f2", print_hash_value);
    transparent_crc(g_476, "g_476", print_hash_value);
    transparent_crc(g_555, "g_555", print_hash_value);
    for (i = 0; i < 1; i++)
    {
        transparent_crc(g_618[i], "g_618[i]", print_hash_value);
        if (print_hash_value) printf("index = [%d]\n", i);

    }
    transparent_crc(g_625, "g_625", print_hash_value);
    transparent_crc(g_635, "g_635", print_hash_value);
    transparent_crc(g_757.f0.f0, "g_757.f0.f0", print_hash_value);
    transparent_crc(g_757.f0.f1, "g_757.f0.f1", print_hash_value);
    transparent_crc(g_757.f0.f2, "g_757.f0.f2", print_hash_value);
    transparent_crc(g_757.f0.f3, "g_757.f0.f3", print_hash_value);
    transparent_crc(g_763, "g_763", print_hash_value);
    platform_main_end(crc32_context ^ 0xFFFFFFFFUL, print_hash_value);
    return 0;
}

/************************ statistics *************************
XXX max struct depth: 3
breakdown:
   depth: 0, occurrence: 238
   depth: 1, occurrence: 14
   depth: 2, occurrence: 1
   depth: 3, occurrence: 6
XXX total union variables: 7

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

XXX max expression depth: 37
breakdown:
   depth: 1, occurrence: 148
   depth: 2, occurrence: 25
   depth: 3, occurrence: 2
   depth: 4, occurrence: 1
   depth: 5, occurrence: 1
   depth: 6, occurrence: 2
   depth: 9, occurrence: 2
   depth: 10, occurrence: 1
   depth: 11, occurrence: 1
   depth: 13, occurrence: 1
   depth: 14, occurrence: 2
   depth: 15, occurrence: 1
   depth: 18, occurrence: 1
   depth: 23, occurrence: 1
   depth: 24, occurrence: 1
   depth: 25, occurrence: 1
   depth: 37, occurrence: 1

XXX total number of pointers: 196

XXX times a variable address is taken: 75
XXX times a pointer is dereferenced on RHS: 14
breakdown:
   depth: 1, occurrence: 9
   depth: 2, occurrence: 1
   depth: 3, occurrence: 2
   depth: 4, occurrence: 1
   depth: 5, occurrence: 1
XXX times a pointer is dereferenced on LHS: 96
breakdown:
   depth: 1, occurrence: 72
   depth: 2, occurrence: 12
   depth: 3, occurrence: 12
XXX times a pointer is compared with null: 8
XXX times a pointer is compared with address of another variable: 2
XXX times a pointer is compared with another pointer: 4
XXX times a pointer is qualified to be dereferenced: 3298

XXX max dereference level: 6
breakdown:
   level: 0, occurrence: 0
   level: 1, occurrence: 461
   level: 2, occurrence: 113
   level: 3, occurrence: 70
   level: 4, occurrence: 37
   level: 5, occurrence: 3
   level: 6, occurrence: 1
XXX number of pointers point to pointers: 72
XXX number of pointers point to scalars: 84
XXX number of pointers point to structs: 26
XXX percent of pointers has null in alias set: 21.4
XXX average alias set size: 1.22

XXX times a non-volatile is read: 552
XXX times a non-volatile is write: 381
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: 3

XXX stmts: 123
XXX max block depth: 5
breakdown:
   depth: 0, occurrence: 4
   depth: 1, occurrence: 9
   depth: 2, occurrence: 16
   depth: 3, occurrence: 15
   depth: 4, occurrence: 31
   depth: 5, occurrence: 48

XXX percentage a fresh-made variable is used: 18.5
XXX percentage an existing variable is used: 81.5
********************* end of statistics **********************/