https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126153

--- Comment #12 from David Binderman <dcb314 at hotmail dot com> ---
After a couple of hours of reduction, I have:

typedef signed __int8_t;
typedef char __uint8_t;
typedef int __int16_t;
typedef unsigned __uint16_t;
typedef signed __int32_t;
typedef long __int64_t;
typedef long __uint64_t;
typedef __int8_t int8_t;
typedef __int16_t int16_t;
typedef __int32_t int32_t;
typedef __int64_t int64_t;
typedef __uint8_t uint8_t;
typedef __uint16_t uint16_t;
typedef __uint64_t uint64_t;
int64_t
safe_lshift_func_int64_t_s_s(int64_t left, int right )
{
  return
    left < 0 || right < 0 || right >= 32 || left  ?
     :
    left < right;
}
#pragma pack(1)
struct S0 {
   unsigned f3 : 14;
   signed f4 : 5;
   unsigned f6 : 6;
   signed f7 : 3};
struct S1 {
   int8_t f0;
   uint16_t f1;
   uint8_t f2;
   struct S0 f3};
struct S2 {
   struct S1 f5};
struct S3 {
   struct S1 f7};
struct S0 g_8 ;
int32_t g_10 ;
struct S2 g_21 ;
int32_t g_674 ;
struct S3 g_856 ;
int32_t *g_937 = &g_674;
int64_t g_1122 ;
uint8_t func_4(struct S0 , struct S0 , int8_t );
struct S0 func_22(uint16_t , int16_t , int32_t , int32_t , struct S1 );
uint16_t func_1()
{
    uint64_t l_9 ;
    func_4(g_8, g_8, l_9);
}
uint8_t func_4(struct S0 , struct S0 , int8_t )
{
    for (g_10 = 9; g_10 ; g_10 -= 1)
        {
            struct S1 l_59 = {0xB8L,0x14L,35,5,0,2,2};
                func_22(0 , g_21.f5.f2, l_59.f0, g_856.f7.f1, l_59);
        }
}
struct S0 func_22(uint16_t , int16_t , int32_t , int32_t , struct S1 p_27)
{
    int64_t *l_1162 = &g_1122;
    struct S0 l_1180 ;
    *g_937 &= *l_1162 = safe_lshift_func_int64_t_s_s(1L , p_27.f3.f7) &
p_27.f2;
    return l_1180;
}
int main ()
{
    func_1();
}

Reduction continuing.

Reply via email to