view gcc/testsuite/g++.dg/torture/pr91680.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line source

/* PR middle-end/91680 */
/* { dg-do run { target { ilp32 || lp64 } } } */

extern "C" void abort ();

#include "../../gcc.dg/tree-ssa/pr91680.c"

int
main ()
{
  unsigned char i;
  for (i = 0; i < __SIZEOF_INT__ * __CHAR_BIT__; i++)
    {
      volatile unsigned long long q = 1 << i;
      if (foo (i) != 256 / q)
	abort ();
      q = 1U << i;
      if (bar (i) != 256 / q)
	abort ();
      q = 1 << i;
      if (baz (i, (1U << i) - 1) != ((1U << i) - 1) / q)
	abort ();
      if (baz (i, 1U << i) != (1U << i) / q)
	abort ();
      if (baz (i, -1) != -1 / q)
	abort ();
      q = 1U << i;
      if (qux (i, (1U << i) - 1) != ((1U << i) - 1) / q)
	abort ();
      if (qux (i, 1U << i) != (1U << i) / q)
	abort ();
      if (qux (i, -1) != -1 / q)
	abort ();
    }
}