http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36939
--- Comment #21 from Joel Sherrill <joel at gcc dot gnu.org> 2011-02-07 22:27:43 UTC --- (In reply to comment #20) > Thanks Joel for the acats.log. > > from the failing test list my guess is that tasking is broken and was working > for your previous test. > > All tests with an Ada task in them fail with "program stopped with signal 7.". > > Could you try the simplest possible tasking program? > > $ cat t.adb > procedure t is > task a; > task body a is > begin > null; > end a; > begin > null; > end t; > > If my guess is correct it should get a signal 7. Yep. And a signal 7 is an emulation trap. Running it in gdb I see that apparently, an illegal instruction for the SH-1 was generated near the bottom of _system__task_primitives__operations__set_priority which is early enough in the program's execution that we really don't get to the task. 4583c: 00 09 nop 4583e: b6 dc bsr 465fa <_system__tasking__debug__print_task_info+0x3e6> 45840: 00 07 .word 0x0007 45842: 21 fc cmp/str r15,r1 I am suspicious that if you know how to generate the same backend behaviour from C, it will also generate bad code also.