internal error--unrecognizable insn:
andy@softbookpress.com
andy@softbookpress.com
Thu Jan 18 22:08:00 GMT 2001
This is in gcc 2.95.2 on armv4l linux (strong arm)
I have a large C++ program that I successfully built in this environment.
However, when I tried to build it with -march=armv4 flag I get the
following error:
"
" internal error--unrecognizable insn:
(insn 850 847 106 (set (reg:QI 14 lr)
(mem:QI (plus:SI (reg:SI 14 lr)
(const_int -304 [0xfffffed0])) 0)) -1 (nil)
"
It fails compilng these seemingly inncous lines in a class constructor:
MyClass::MyClass(const String& s, SomeClass* sc)
: ParentClass(NULL == sc ? new SomeClass : sc)
{
char cur_dir[PATH_MAX];
getcwd(cur_dir, sizeof cur_dir);
}
There seems to be a correllation between the size of the stack variable
cur_dir and the call to
" new SomeClass":
If I reduce the size of cur_dir, e.g :
char cur_dir[256];
-- it compiles fine
If I comment out the call to " new SomeClass"
and leave cur_dir[PATH_MAX] intact it also compiles fine
What's going on here ? Am I hitting some kind of a stack size limit
specific to armv4 architecture ?
TIA
Andy
More information about the Gcc-help
mailing list