[bfin] Fix eh_return patten

Jie Zhang jzhang918@gmail.com
Thu Jun 15 05:25:00 GMT 2006


Currently bfin port GCC will fail on this simple test case:

$ cat t.c
void foo ()
{
 long offset;
 void *handler;
 __builtin_eh_return (offset, handler);
}

$ bfin-uclinux-gcc -S t.c
t.c: In function 'foo':
t.c:6: internal compiler error: in purge_dead_edges, at cfgrtl.c:2477
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

This patch tries to fix it by setting pc explicitly in
eh_return_internal pattern and emit it as a jump instruction in
eh_return pattern, thus not confuse GCC when doing rtl control flow
analysis.

Is it OK?

Jie
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bfin-gcc-eh.diff
Type: text/x-patch
Size: 909 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20060615/e6021353/attachment.bin>


More information about the Gcc-patches mailing list