delorie.com/archives/browse.cgi   search  
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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019