Altera_Forum
Honored Contributor
15 years agoGCC 4.1.2 Issue. New toolchain soon?
I'm running into a bug where the following code causes a compiler error:
class foo {
public:
virtual const char* name() const throw();
virtual const char* faux_name() const throw();
};
const char* foo::name() const throw()
{
return "bar";
}
const char* foo::faux_name() const throw()
{
return name();
}
Assuming it's named 'foo.cpp': nios2-linux-gnu-g++ -fPIC -O2 -c foo.cpp -o foo.o
foo.cpp: In member function 'virtual const char* foo::faux_name() const':
foo.cpp:15: error: Attempt to delete prologue/epilogue insn:
(insn 44 43 45 0 (set (reg:SI 22 r22)
(plus:SI (reg:SI 22 r22)
(reg:SI 8 r8))) -1 (nil)
(nil))
foo.cpp:15: internal compiler error: in propagate_one_insn, at flow.c:1699
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:...> for instructions.
Normally I'd go to GCC for this, but it's a very outdated compiler version and no longer supported. They don't even use flow.c anymore. This only happens with the nios2-linux-gnu-xxx tools, and not the normal linux tools, even though they're both 4.1.2. Are there any plans on moving toolchain-mmu to a newer version of GCC? Anybody do this themselves? Can I just replace gcc4.3.5 in the gcc4 toolchain build instructions? Thanks.