1  /* { dg-do run } */
       2  /* { dg-require-effective-target lp64 } */
       3  /* { dg-additional-options "-fno-tree-fre -fno-delete-dead-exceptions -fnon-call-exceptions" } */
       4  
       5  typedef __INT32_TYPE__ int32_t;
       6  typedef __INT64_TYPE__ int64_t;
       7  
       8  static int64_t __attribute__((noinline,noclone))
       9  safe_mul_func_int64_t_s_s(int64_t si1, int64_t si2)
      10  {
      11    return ((((si1 > 0) && (si2 > 0) && (si1 > ( (9223372036854775807L) / si2)))
      12             || ((si1 > 0) && (si2 <= 0) && (si2 < ( (-9223372036854775807L -1) / si1)))
      13             || ((si1 <= 0) && (si2 > 0) && (si1 < ( (-9223372036854775807L -1) / si2)))
      14             || ((si1 <= 0) && (si2 <= 0) && (si1 != 0) && (si2 < ( (9223372036854775807L) / si1))))
      15            ? ((si1)) : si1 * si2);
      16  }
      17  
      18  static int32_t g_93 = 0x947A4BBFL;
      19  static int32_t tt = 6;
      20  int64_t ty, ty1;
      21  
      22  static void func_34(void)
      23  {
      24   ty=safe_mul_func_int64_t_s_s (g_93, -1L) ;
      25  }
      26  static void func_30(void)
      27  {
      28    ty1=safe_mul_func_int64_t_s_s(0, tt);
      29  }
      30  static void func_6(void)
      31  {
      32   for (int g_9 = 5; (g_9 >= 0); g_9 -= 1)
      33   {
      34    func_34();
      35    func_30 ();
      36   }
      37  }
      38  
      39  int main ()
      40  {
      41   func_6();
      42  }