Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!mit-eddie!uw-beaver!tikal!transys!baron From: baron@transys.UUCP (Joe Portman) Newsgroups: comp.unix.xenix Subject: Re: What does "Infinite Spill" error message indicate? Message-ID: <344@transys.UUCP> Date: Fri, 16-Oct-87 22:32:34 EDT Article-I.D.: transys.344 Posted: Fri Oct 16 22:32:34 1987 Date-Received: Sun, 18-Oct-87 09:45:34 EDT References: <99@citcom.UUCP> Reply-To: baron@transys.UUCP (Joe Portman) Organization: TransSystems Inc. Bellevue, WA Lines: 42 In article <99@citcom.UUCP> peter@citcom.UUCP (Peter Klosky) writes: >We tried compiling a C program which gave the "Infinite Spill" >compiler error. Does anyone know what causes this message? >It occurs under both 2.2 and 2.1.3 SCO. None of the people >here have any idea what the problem is, and a call to SCO >did not reveal anything technical; just a lot of listening to >recorded messages and searching for serial numbers. I have seen this question a few times and experienced the problem a few times. Eric Griswold of SCO explained it to me as follows: Infinite spill errors occur when the compiler runs out of registers in which to "spill" intermediate results in a complcated expression. This usuall occurs in large and huge model programs. The compiler will generate an error message indicating the file and line number of the offending expression. Cure: Find the offending line and break the expression into smaller discrete steps. An example: x = y->z[10].foo * y->z[9].bar; example cure: int a,b,c; a=y->z[10].foo; b=y->z[9].bar x=a*b; This example may contain errors (so be it) but I hope you get the idea. Complex pointer and array/structure references in large and huge model programs will generate the error. Simplifying the expressions will cure the error.