corwin@polari.UUCP (Don Glover) (09/09/89)
I have run into yet another problem with an sco compiler. I am using 2.2.1 compiler to compile some programs in huge model (since the 2.1.4 286 development system had just a few bugs in this area.) And now I am getting a 'Compiler Error (Internal) : infinite spill'. I can not find this one documented (not that not finding an error undocumented is unusual) Can some one help me out on. Why might I be getting this error? It happens just 54 lines into the file. Thanx in advance for the help.
glenn@stsim.ocs.com (glenn ford) (02/17/90)
I recieved the following error trying to get conquer4 running under SCO Xenix 386, 2.3.1: Compiler error (internal): Infinite spill What causes this, and is it fixed? Has anyone gotten conquer4 to run under 386Xenix? Thanks, glenn BBS: 301-972-2310 HOME: 301-972-6131 UUCP: ..uunet!ocsmd!stsim!glenn
chip@chinacat.Lonestar.ORG (Chip Rosenthal) (02/23/90)
In article <854@stsim.ocs.com> glenn@stsim (glenn ford) writes: >I recieved the following error trying to get conquer4 running under SCO Xenix >386, 2.3.1: > Compiler error (internal): Infinite spill >What causes this, and is it fixed? My understanding is that it is due to a problem in the register usage scheme in the Microsoft compiler, and is activated by complex expressions. About all you can do is locate the expression causing the problem and simplify it. Here is a portion of code in rn's "rcln.c" file which has this problem, and my fix: sprintf(tmpbuf,"%s: 1-%ld", rcline[ngx],(long)getngsize(ngx)); free(rcline[ngx]); rcline[ngx] = savestr(tmpbuf); #ifdef M_XENIX { /* infinite spill compiler bug...grrrr */ char *cp = rcline[ngx] + rcnums[ngx] - 1; *cp = '\0'; } #else *(rcline[ngx] + rcnums[ngx] - 1) = '\0'; #endif write_rc(); You'll probably need to pull a similar trick to get it to compile. -- Chip Rosenthal | Yes, you're a happy man and you're chip@chinacat.Lonestar.ORG | a lucky man, but are you a smart Unicom Systems Development, 512-482-8260 | man? -David Bromberg
karl@ddsw1.MCS.COM (Karl Denninger) (02/23/90)
In article <945@chinacat.Lonestar.ORG> chip@chinacat.Lonestar.ORG (Chip Rosenthal) writes: >In article <854@stsim.ocs.com> glenn@stsim (glenn ford) writes: >>I recieved the following error trying to get conquer4 running under SCO Xenix >>386, 2.3.1: >> Compiler error (internal): Infinite spill >>What causes this, and is it fixed? > >My understanding is that it is due to a problem in the register usage >scheme in the Microsoft compiler, and is activated by complex expressions. >About all you can do is locate the expression causing the problem and >simplify it. Here is a portion of code in rn's "rcln.c" file which has >this problem, and my fix: Before you go modifying the code, try adding: -Dregister= to your CFLAGS. This will remove register declarations (it may break things as well, if the user of the register didn't include a type; a common problem, but one easy to fix). This will usually get the offending code to compile. -- Karl Denninger (karl@ddsw1.MCS.COM, <well-connected>!ddsw1!karl) Public Access Data Line: [+1 708 566-8911], Voice: [+1 708 566-8910] Macro Computer Solutions, Inc. "Quality Solutions at a Fair Price"
mla@enea.se (Mats L|fstr|m) (02/23/90)
In article <854@stsim.ocs.com> glenn@stsim (glenn ford) writes: > >I recieved the following error trying to get conquer4 running under SCO Xenix >386, 2.3.1: > Compiler error (internal): Infinite spill > >What causes this, and is it fixed? Has anyone gotten conquer4 to run under >386Xenix? > This is caused by a too complicated expression, probably a index. Try finding it (by brute force) and simplify. ---------------------------------------------------------------------------- International: Domestic: Mats Lofstrom Mats L|fstr|m ENEA Data AB ENEA Data AB Nytorpsvagen 5b Nytorpsv{gen 5b Box 232 Box 232 S-183 23 TABY 183 23 T[BY Phone: (+46) 8792 - 2500 Tel: 08 - 792 25 00 e-mail: uunet!mcvax!enea!mla or mla@enea.se ----------------------------------------------------------------------------
david@csource.oz.au (david nugent) (02/25/90)
In article <945@chinacat.Lonestar.ORG> dated 22 Feb, Chip Rosenthal writes: > > Compiler error (internal): Infinite spill > >What causes this, and is it fixed? > > My understanding is that it is due to a problem in the register usage > scheme in the Microsoft compiler, and is activated by complex > expressions. I get this with complex expressions involving indexed arrays. Now I usually evaluate the index in a separate statement using a temporary variable and let the optimiser do its bit to improve it (which it usually does). For example: j = whatever->arradr[(whatever->idx++)*4]; Gets translated to i = (whatever->idx++) * 4; j = whatever->arradr[i]; david -- UUCP: ...!munnari!csource!david <Fido/ACSNET Gate> Internet: david@csource.oz.au FidoNet: 3:632/348