(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
ubsan/
overflow-mul-2.c
       1  /* { dg-do run } */
       2  /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */
       3  
       4  #define INT_MAX __INT_MAX__
       5  #define LONG_MAX __LONG_MAX__
       6  
       7  int
       8  main (void)
       9  {
      10    volatile int j = INT_MAX;
      11    volatile int i = 2;
      12    volatile int k = j * i;
      13    k = i * j;
      14  
      15    volatile long int m = LONG_MAX;
      16    volatile long int n = 2;
      17    volatile long int o = m * n;
      18    o = n * m;
      19  
      20    return 0;
      21  }
      22  
      23  /* { dg-output "signed integer overflow: 2147483647 \\* 2 cannot be represented in type 'int'\[^\n\r]*(\n|\r\n|\r)" } */
      24  /* { dg-output "\[^\n\r]*signed integer overflow: 2 \\* 2147483647 cannot be represented in type 'int'\[^\n\r]*(\n|\r\n|\r)" } */
      25  /* { dg-output "\[^\n\r]*signed integer overflow: \[^\n\r]* \\* 2 cannot be represented in type 'long int'\[^\n\r]*(\n|\r\n|\r)" } */
      26  /* { dg-output "\[^\n\r]*signed integer overflow: 2 \\* \[^\n\r]* cannot be represented in type 'long int'" } */