[uClinux-dev] m68k-elf-gcc 3.4.0 (20040603 distribution) crash

Stuart MacDonald stuartm at connecttech.com
Fri Aug 19 11:22:56 EDT 2005


From: Keith Nicewarner
> I posted this a while ago, but I don't recall seeing a 
> solution.  I whittled a funky compiler crash down to the 
> following code:
> 
> class A
> {
> public:
>   void foo();
> };
> 
> class B
> {
> public:
>   ~B();
> };
> 
> void bar(A & a)
           ^^^^^
I haven't done C++ in ages; is that a valid argument list? That should
have been "bar(A: a)", correct?

> {
>   B b;
>   a.foo();
>   char c[32768];
> }
> 
> Don't ask me why, but each statement is required to produce 
> the crash.  When I compile it with the 3.4.0 toolchain, I get this:
> 
> % m68k-elf-g++ gcc-crash.cpp -m5307 -c
> gcc-crash.cpp: In function `void bar(A&)':
                                       ^^
The compiler's version of the argument list is different from the
source code.

> gcc-crash.cpp:19: error: insn does not satisfy its constraints:
> (insn 24 106 107 (set (mem:SI (plus:SI (reg/f:SI 14 %a6)
>                 (reg:SI 0 %d0)) [0 S4 A16])
>         (mem:SI (plus:SI (reg/f:SI 14 %a6)
>                 (reg:SI 1 %d1)) [0 S4 A16])) 26 {*m68k.md:760} (nil)
>     (nil))
> 
> gcc-crash.cpp:19: internal compiler error: in 
> final_scan_insn, at final.c:2359
> 
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://gcc.gnu.org/bugs.html> for instructions.
> 
> The 3.4.3 (20050221) toolchain gives a similar crash.  Can 
> someone confirm they see the same crash?  What can I do to 
> fix the toolchain?  I don't even understand the error, so I 
> have no idea what to do.

The error is the complier crashed. That should never, ever happen. I
think you've found a particular way to malform source code that gcc
does not handle gracefully. Submit a bug report to the gcc people. I
don't think this is fixable on your own, unless you've developed
compilers before.

The specific error is really information for the gcc team, it's not an
end user error report.

..Stu




More information about the uClinux-dev mailing list