[comp.sources.bugs] GNU egrep Compilation Problem

gis@datlog.co.uk ( Ian Stewartson ) (02/22/89)

I have just attempted to compile the GNU version of egrep that appeared on
comp.sources.unix.  Compiling dfa.c generates the porblem below:

    cc -O -DUSG -c dfa.c
    "dfa.c", line 1133: compiler error: usable asked about nontemp register
    *** Error code 1

I cannot see anything wrong with the above mention line and would therefore
be grateful for any indicators as to the cause and possible solutions to
this problem.

We are currently running SysV.2.1 on a Vax if that is of any interest.
-- 
Ian Stewartson
Data Logic Ltd, Queens House, Greenhill Way, Harrow, Middlesex, HA1 1YR, UK.
(Phone) +44 1 863 0383 (Telex) 888103 (Fax) +44 1 861 2010
(Network) gis@datlog.co.uk or ukc!datlog!gis

jhpb@cord.UUCP (JH Buehler) (02/24/89)

In article <1776@dlvax2.datlog.co.uk> gis@datlog.UUCP writes:

   I have just attempted to compile the GNU version of egrep that appeared on
   comp.sources.unix.  Compiling dfa.c generates the porblem below:

	   cc -O -DUSG -c dfa.c
	   "dfa.c", line 1133: compiler error: usable asked about nontemp register
	   *** Error code 1

It's a SYS V compiler bug.  Modify the code slightly as shown below.
Perhaps the GNU folks would like to change this also.
----------------
  /* Get the epsilon closure of the firstpos of the regexp.  The result will
     be the set of positions of state 0. */
  merged.nelem = 0;
#ifdef BUG_FIX
{
  int *p = nfirstpos -1;
  for (i = 0; i < *p; ++i)
    insert(firstpos[i], &merged);
}
#else
  for (i = 0; i < nfirstpos[-1]; ++i)
    insert(firstpos[i], &merged);
#endif
  epsclosure(&merged, r);
-- 
Joe Buehler
jhpb@lancia.ATT.COM
att!lancia!jhpb