https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93781

--- Comment #2 from vfdff <zhongyunde at huawei dot com> ---
For more test, I find the following case2 can get the expect result, while the
case1 can't.

== [case1] ======================================
unsigned int foo (unsigned int arg)
{
  unsigned int C000003FE = 4;

  if ((int)(arg -3) < 0)
     C000003FE = 0x1 << arg;

  return C000003FE < 5;
}

== [case2] ======================================
unsigned int foo (unsigned int arg)
{
  unsigned int C000003FE = 4;

  if (arg < 3)
     C000003FE = 0x1 << arg;

  return C000003FE < 5;
}

Reply via email to