eps@toaster.SFSU.EDU (Eric P. Scott) (12/16/89)
I'm copying this here "for the record" at the request of a comp.sys.next reader. The problem occurs with the gcc distributed with NeXT Software Release 1.0. No applicability to the current FSF version is inferred. -=EPS=- ------- From: eps@toaster.SFSU.EDU (Eric P. Scott) Newsgroups: comp.sys.next Subject: % interp buffer overflow when compiling rn PL 40 under 1.0 a gcc bug Summary: Compile intrp.c separately with cc -c -bsd (no -O) Message-ID: <192@toaster.SFSU.EDU> Date: 15 Dec 89 14:45:52 GMT Reply-To: eps@cs.SFSU.EDU (Eric P. Scott) Organization: San Francisco State University Lines: 27 When this machine was upgraded from 0.9 to 1.0 we recompiled all the local software. rn patchlevel 40 started generating "% interp buffer overflow!" aborts when attempting to follow up to articles. The problem has been traced to the gcc optimizer: *** intrp.c Fri Nov 21 14:26:45 1986 834 i = metabit; /* maybe get into register */ 835 if (s == dest) { 836 while (*dest) { 837 if (--destsize <= 0) 838 abort_interp(); 839 *dest++ |= i; ^^ this increment lost in optimization 840 } 841 } 842 else { 843 while (*s) { 844 if (--destsize <= 0) 845 abort_interp(); 846 *dest++ = *s++ | i; 847 } 848 } Compiling intrp.c without -O "works" ok. -=EPS=-