mark@siva.UUCP (Mark C. Marsh) (08/24/89)
I am having a problem getting GNUgrep to work on my poor system. I have a Compaq 286 running SCO Xenix 2.3. Any help that can be pointed my way I would greatly appreciate. Error description follows: I have found a suspicous construction in the gnugrep file dfa.h. It states: ---------------------------------------------------------------------- typedef struct { unsigned index:24, /* Index into the parse array. */ constraint:8; /* Constraint for matching this position. */ } _position; ---------------------------------------------------------------------- Isn't the storage class for unsigned the same as unsigned int, and if this is so then a total of 32 bits are being assigned to the storage allocated for this structof ~16 bits. Needless to say, the compiler grumbles with the error: ---------------------------------------------------------------------- cc -O -DUSG -i -F 8000 -c grep.c grep.c dfa.h(384) : error 34: `index' : field type too small for number of bits *** Error code 1 Stop. ---------------------------------------------------------------------- If the structure is changed to read: ---------------------------------------------------------------------- typedef struct { unsigned long index:24; /* Index into the parse array. */ unsigned constraint:8; /* Constraint for matching this position. */ } _position; -or- typedef struct { unsigned long index:24, /* Index into the parse array. */ constraint:8; /* Constraint for matching this position. */ } _position; ---------------------------------------------------------------------- Then the result is: ---------------------------------------------------------------------- cd tests; sh regress.sh egrep: Regular expression too big cmp: EOF on khadafy.out Khadafy test failed -- output left on khadafy.out Spencer test #30 failed ... Spencer test #35 failed Spencer test #37 failed Spencer test #41 failed ... Spencer test #47 failed Spencer test #72 failed ... Spencer test #76 failed Spencer test #83 failed ... Spencer test #87 failed Spencer test #92 failed Spencer test #95 failed ... Spencer test #115 failed Spencer test #118 failed Spencer test #121 failed *** Error code 1 Stop. ---------------------------------------------------------------------- Running the tests also dumped the core, a stack re-trace of which reads: ---------------------------------------------------------------------- _reganalyze() from _regcompile+0xe5 _regcompile(0xb130, 0xa, 0xb70, 0x1) from _main+0x4e3 _main(0x3, 0xb106, 0xb10e) from __start+0x32 __start() from start0+0x5 ---------------------------------------------------------------------- -- smail: mark@siva uucp : {ames!pacbell!sactoh0|csusac!unify}!siva!mark geo : Sacramento, California