/* PR target/39423 */
/* { dg-skip-if "ptxas times out" { nvptx-*-* } { "-O2" } { "" } } */

int
foo (const char *name, int nmlen, char *flags)
{
  const char *nonspc;
  int len, n, lfn;
  int needlfn[2], dotspc[2];
  unsigned char locale[2];
  for (nonspc = &name[nmlen - 1]; nonspc >= name && *nonspc == ' '; ++n)
    {
      if (!nmlen)
	{
	  needlfn[name >= nonspc] = !0, dotspc[n != 0] =
	    locale[0], --n, name += len, nmlen -= len;
	}
    }
  if (!lfn && ((dotspc[0] == ' ' && !(len & 0x0010)) || dotspc[0] == '.'))
    return 22;
  if (!(needlfn[0] || needlfn[1]))
    *flags |= 0x02;
}
