| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fsplit-paths -fno-tree-cselim -fno-tree-sink -fdump-tree-split-paths-details -w" } */ |
| |
| |
| struct _reent |
| { |
| }; |
| typedef unsigned char ichar_t; |
| struct dent |
| { |
| char *word; |
| }; |
| struct flagent |
| { |
| ichar_t *strip; |
| ichar_t *affix; |
| short stripl; |
| short affl; |
| }; |
| union ptr_union |
| { |
| struct flagptr *fp; |
| struct flagent *ent; |
| }; |
| struct flagptr |
| { |
| union ptr_union pu; |
| int numents; |
| }; |
| struct hashheader |
| { |
| }; |
| extern struct dent *hashtbl; |
| extern char *hashstrings; |
| extern int hashsize; |
| extern int nodictflag; |
| extern int numsflags; |
| extern int numpflags; |
| extern struct flagent *pflaglist; |
| extern struct flagent *sflaglist; |
| int |
| linit () |
| { |
| register int i; |
| register struct dent *dp; |
| struct flagent *entry; |
| struct flagptr *ind; |
| int viazero; |
| register ichar_t *cp; |
| if (!nodictflag) |
| { |
| for (i = hashsize, dp = hashtbl; --i >= 0; dp++) |
| { |
| if (dp->word == (char *) -1) |
| dp->word = ((void *) 0); |
| else |
| dp->word = &hashstrings[(int) (dp->word)]; |
| } |
| } |
| for (i = numsflags + numpflags, entry = sflaglist; --i >= 0; entry++) |
| { |
| if (entry->stripl) |
| entry->strip = (ichar_t *) & hashstrings[(int) entry->strip]; |
| else |
| entry->affix = ((void *) 0); |
| } |
| for (i = numsflags, entry = sflaglist; i > 0; i--, entry++) |
| { |
| if (entry->affl == 0) |
| { |
| if (ind->pu.fp == ((void *) 0)) |
| { |
| } |
| } |
| } |
| for (i = numpflags, entry = pflaglist; i > 0; i--, entry++) |
| { |
| if (entry->affl == 0) |
| { |
| while (ind->numents == 0 && ind->pu.fp != ((void *) 0)) |
| { |
| if (*cp == 0) |
| { |
| } |
| } |
| } |
| if (!viazero && ind->numents >= 4 |
| && strcmp ((char *) (entry->affix), |
| (char *) (ind->pu.ent->affix)) != 0) |
| { |
| } |
| } |
| } |
| /* { dg-final { scan-tree-dump-times "Duplicating join block" 0 "split-paths" } } */ |