From: Stephen Anthony Uy Newsgroups: comp.os.msdos.djgpp Subject: How do I remedy an internal compiler error? Date: Fri, 19 Nov 1999 03:50:27 -0800 Organization: University of California, Irvine Lines: 76 Message-ID: NNTP-Posting-Host: mecn213-024.reshsg.uci.edu Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Newsreader: Forte Agent 1.6/32.525 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com I am compiling a (IMO) small program with gxx v2.951 and make v3.77; following is a copy of what errors came from an attempted compile: --- c:\src\foo\src>make foo.o gxx -c -O6 -I../include -ofoo.o foo.cpp ../include/bar.h: In method `foof::foo(double, double, double)': ../include/bar.h:81: internal error--insn does not satisfy its constraints: (insn 250 21 256 (set (reg:SI 2 %ecx) (reg:SI 32)) 48 {movsi+2} (nil) (nil)) make.exe: *** [foo.o] Error 1 --- bar.h is called from foo.h, which is included by foo.cpp: the code from the offending function follows: --- foo::foo(double joe, double jim, double jack) { name[first] = joe; name[second] = jim; name[third] = jack; for (int i = 0; i <= doodles; i++) for (int j = 0; j <= doodleplaces; j++) scribbles[i][j] = 0; for (int k = 0; k <= klunks; k++) bumps[k] = 0; } --- The offending code from bar.h follows, beginning from line 77: --- private: long int bottom; long int top; long int currentplace; vector bottomdumps; vector topdumps; string name; --- Would someone please shed some light on this error for me? I read in the FAQ (specifically, at http://www.delorie.com/djgpp/v2faq/faq036.html) that I should try compiling with the -Q option. I did that, but the output is unintelligible (the last part follows): --- foo::foo(double, double, double) bool lexicographical_compare(const signed char *, const signed char *, const signed char *, const signed char *) int __lexicographical_compare_3way(const signed char *, const signed char *, const signed char *, const signed char *) ../include/bar.h: In method `foo::foo(double, double, double)': ../include/bar.h:81: internal error--insn does not satisfy its constraints: (insn 250 21 256 (set (reg:SI 2 %ecx) (reg:SI 32)) 48 {movsi+2} (nil) (nil)) make.exe: *** [self.o] Error 1 --- I also tried increasing the minimum stack for gxx.exe with stubedit (from 512k to 1M), but this didn't help matters, either. Is there a way for me to fix this, or should I just report this to the GCC maintainers?