Mail Archives: djgpp/1999/11/19/07:48:36
From: | Stephen Anthony Uy <tsanth AT iname DOT com>
|
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: | <eDY1OFefzAlcb3wOYLie5uaDDHyl@4ax.com>
|
NNTP-Posting-Host: | mecn213-024.reshsg.uci.edu
|
Mime-Version: | 1.0
|
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<string> bottomdumps;
vector<string> 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 *, const signed char *, const signed char *) int
__lexicographical_compare_3way<const signed char *, const signed char
*>(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?
- Raw text -