(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
ubsan/
pr108256.c
       1  /* PR sanitizer/108256 */
       2  /* { dg-do run { target { lp64 || ilp32 } } } */
       3  /* { dg-options "-fsanitize=signed-integer-overflow" } */
       4  
       5  unsigned short
       6  foo (unsigned short x, unsigned short y)
       7  {
       8    return x * y;
       9  }
      10  
      11  unsigned short
      12  bar (unsigned short x, unsigned short y)
      13  {
      14    int r = x * y;
      15    return r;
      16  }
      17  
      18  int
      19  main ()
      20  {
      21    volatile unsigned short a = foo (0xffff, 0xffff);
      22    volatile unsigned short b = bar (0xfffe, 0xfffe);
      23    return 0;
      24  }
      25  
      26  /* { dg-output "signed integer overflow: 65535 \\\* 65535 cannot be represented in type 'int'\[^\n\r]*(\n|\r\n|\r)" } */
      27  /* { dg-output "\[^\n\r]*signed integer overflow: 65534 \\\* 65534 cannot be represented in type 'int'" } */