mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-30 00:52:16 +08:00
* elf32-spu.c (mark_functions_via_relocs): Handle cycles in the
control flow graph between fragments of a function.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2009-05-14 Ulrich Weigand <uweigand@de.ibm.com>
|
||||||
|
|
||||||
|
* elf32-spu.c (mark_functions_via_relocs): Handle cycles in the
|
||||||
|
control flow graph between fragments of a function.
|
||||||
|
|
||||||
2009-05-14 Ulrich Weigand <uweigand@de.ibm.com>
|
2009-05-14 Ulrich Weigand <uweigand@de.ibm.com>
|
||||||
|
|
||||||
* elf32-spu.c (spu_elf_size_stubs): Even in software i-cache mode,
|
* elf32-spu.c (spu_elf_size_stubs): Even in software i-cache mode,
|
||||||
|
@ -2787,7 +2787,14 @@ mark_functions_via_relocs (asection *sec,
|
|||||||
callee->fun->is_func = TRUE;
|
callee->fun->is_func = TRUE;
|
||||||
}
|
}
|
||||||
else if (callee->fun->start == NULL)
|
else if (callee->fun->start == NULL)
|
||||||
callee->fun->start = caller;
|
{
|
||||||
|
struct function_info *caller_start = caller;
|
||||||
|
while (caller_start->start)
|
||||||
|
caller_start = caller_start->start;
|
||||||
|
|
||||||
|
if (caller_start != callee->fun)
|
||||||
|
callee->fun->start = caller_start;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
struct function_info *callee_start;
|
struct function_info *callee_start;
|
||||||
|
Reference in New Issue
Block a user