/* { dg-do compile } */ /* { dg-options "-O2 -fsplit-paths -fno-tree-cselim -fdump-tree-split-paths-details -fno-finite-loops -fno-tree-dominator-opts -fno-tree-vrp -w" } */ struct __sFILE { unsigned char *_p; int _r; }; typedef struct __sFILE __FILE; struct _reent { __FILE *_stdin, *_stdout, *_stderr; }; extern struct _reent *_impure_ptr; extern char contextbufs[10][1024]; extern int contextoffset; extern int sflag; int strtosichar (char *, int); int ichartosstr (int, int); void treeinsert (int, int, int); void stop(void); int __srget_r (struct _reent *, __FILE *); void givehelp (int interactive) { if (interactive) { while ((--((_impure_ptr->_stdin))->_r < 0 ? __srget_r (_impure_ptr, (_impure_ptr-> _stdin)) : (int) (*((_impure_ptr->_stdin))-> _p++)) != ' '); } } void oof (void) { int bufsize; int hadnl; while (1) { if (bufsize == (sizeof contextbufs[0]) / 2 - 1) { if (contextbufs[0][0] == '*' || contextbufs[0][0] == '@') treeinsert (ichartosstr (strtosichar (contextbufs[0] + 1, 0), 1), (100 + 4 * 20 + 4), contextbufs[0][0] == '*'); } if (hadnl) contextoffset = 0; else contextoffset += bufsize; if (sflag) { stop (); } } } void lookharder (char *string) { register char *g; register char *s; for (s = string; *s != '\0'; s++) { if (*s == '*') { *g++ = '.'; } else *g++ = *s; } } /* { dg-final { scan-tree-dump-times "Duplicating join block" 3 "split-paths" } } */