/* PR target/25947: define_split in cris.md caused unrecognized insn.  */
/* { dg-options "-fpic" { target fpic } } */

extern char *rl_line_buffer;
extern int rl_point;
extern int rl_end;
static const char *vi_motion = " hl^$0ftFT;,%wbeWBE|";
void rl_vi_end_word (int, int);
void
rl_vi_complete (int ignore, int key)
{
  if ((rl_point < rl_end)
      &&
      (!(((rl_line_buffer[rl_point]) == ' ')
	 || ((rl_line_buffer[rl_point]) == '\t'))))
    {
      if (!
	  (((rl_line_buffer[rl_point + 1]) == ' ')
	   || ((rl_line_buffer[rl_point + 1]) == '\t')))
	rl_vi_end_word (1, 'E');
    }
}
