(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
builtin-arith-overflow-5.c
       1  /* PR rtl-optimization/95862 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2" } */
       4  
       5  int
       6  f1 (int a, int b)
       7  {
       8    unsigned long long c;
       9    return __builtin_mul_overflow (a, b, &c);
      10  }
      11  
      12  int
      13  f2 (int a, unsigned b)
      14  {
      15    unsigned long long c;
      16    return __builtin_mul_overflow (a, b, &c);
      17  }
      18  
      19  int
      20  f3 (unsigned a, unsigned b)
      21  {
      22    long long c;
      23    return __builtin_mul_overflow (a, b, &c);
      24  }
      25  
      26  int
      27  f4 (int a, unsigned b)
      28  {
      29    long long c;
      30    return __builtin_mul_overflow (a, b, &c);
      31  }
      32  
      33  short
      34  f5 (short a, short b)
      35  {
      36    unsigned c;
      37    return __builtin_mul_overflow (a, b, &c);
      38  }
      39  
      40  short
      41  f6 (short a, unsigned short b)
      42  {
      43    unsigned c;
      44    return __builtin_mul_overflow (a, b, &c);
      45  }
      46  
      47  short
      48  f7 (unsigned short a, unsigned short b)
      49  {
      50    int c;
      51    return __builtin_mul_overflow (a, b, &c);
      52  }
      53  
      54  short
      55  f8 (short a, unsigned short b)
      56  {
      57    int c;
      58    return __builtin_mul_overflow (a, b, &c);
      59  }
      60  
      61  signed char
      62  f9 (signed char a, signed char b)
      63  {
      64    unsigned short c;
      65    return __builtin_mul_overflow (a, b, &c);
      66  }
      67  
      68  signed char
      69  f10 (signed char a, unsigned char b)
      70  {
      71    unsigned short c;
      72    return __builtin_mul_overflow (a, b, &c);
      73  }
      74  
      75  signed char
      76  f11 (unsigned char a, unsigned char b)
      77  {
      78    short c;
      79    return __builtin_mul_overflow (a, b, &c);
      80  }
      81  
      82  signed char
      83  f12 (signed char a, unsigned char b)
      84  {
      85    short c;
      86    return __builtin_mul_overflow (a, b, &c);
      87  }