1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -fsplit-paths -fno-tree-cselim -fdump-tree-split-paths-details -w" } */ 3 4 struct __sFILE 5 { 6 unsigned char *_p; 7 int _r; 8 }; 9 typedef struct __sFILE __FILE; 10 struct _reent 11 { 12 __FILE *_stdin, *_stdout, *_stderr; 13 }; 14 extern struct _reent *_impure_ptr; 15 extern char contextbufs[10][1024]; 16 extern int contextoffset; 17 extern int sflag; 18 void givehelp(interactive)19givehelp (interactive) 20 int interactive; 21 { 22 if (interactive) 23 { 24 while ((--((_impure_ptr->_stdin))->_r < 25 0 ? __srget_r (_impure_ptr, 26 (_impure_ptr-> 27 _stdin)) : (int) (*((_impure_ptr->_stdin))-> 28 _p++)) != ' '); 29 } 30 } 31 oof()32oof () 33 { 34 int bufsize; 35 int hadnl; 36 while (1) 37 { 38 if (bufsize == (sizeof contextbufs[0]) / 2 - 1) 39 { 40 if (contextbufs[0][0] == '*' || contextbufs[0][0] == '@') 41 treeinsert (ichartosstr (strtosichar (contextbufs[0] + 1, 0), 1), 42 (100 + 4 * 20 + 4), contextbufs[0][0] == '*'); 43 } 44 if (hadnl) 45 contextoffset = 0; 46 else 47 contextoffset += bufsize; 48 if (sflag) 49 { 50 stop (); 51 } 52 } 53 } 54 55 void lookharder(string)56lookharder (string) 57 char *string; 58 { 59 register char *g; 60 register char *s; 61 for (s = string; *s != '\0'; s++) 62 { 63 if (*s == '*') 64 { 65 *g++ = '.'; 66 } 67 else 68 *g++ = *s; 69 } 70 } 71 72 /* { dg-final { scan-tree-dump-times "Duplicating join block" 3 "split-paths" } } */ 73