Commit f7a80099 by Nick Clifton Committed by Nick Clifton

Fix memory leak

From-SVN: r38811
parent 5a259aec
2001-01-08 Nick Clifton <nickc@redhat.com>
* config/arm/arm.c (arm_mark_machine_status): Check to see if
the machine structure has been allocated.
(arm_free_machine_status): New function: Free the machine
specific function structure.
2001-01-08 Richard Henderson <rth@redhat.com> 2001-01-08 Richard Henderson <rth@redhat.com>
* jump.c (simplejump_p): Revert last change. * jump.c (simplejump_p): Revert last change.
......
...@@ -76,6 +76,7 @@ static Mmode select_dominance_cc_mode PARAMS ((rtx, rtx, Hint)); ...@@ -76,6 +76,7 @@ static Mmode select_dominance_cc_mode PARAMS ((rtx, rtx, Hint));
static Ccstar shift_op PARAMS ((rtx, Hint *)); static Ccstar shift_op PARAMS ((rtx, Hint *));
static void arm_init_machine_status PARAMS ((struct function *)); static void arm_init_machine_status PARAMS ((struct function *));
static void arm_mark_machine_status PARAMS ((struct function *)); static void arm_mark_machine_status PARAMS ((struct function *));
static void arm_free_machine_status PARAMS ((struct function *));
static int number_of_first_bit_set PARAMS ((int)); static int number_of_first_bit_set PARAMS ((int));
static void replace_symbols_in_block PARAMS ((tree, rtx, rtx)); static void replace_symbols_in_block PARAMS ((tree, rtx, rtx));
static void thumb_exit PARAMS ((FILE *, int, rtx)); static void thumb_exit PARAMS ((FILE *, int, rtx));
...@@ -9587,8 +9588,11 @@ arm_mark_machine_status (p) ...@@ -9587,8 +9588,11 @@ arm_mark_machine_status (p)
{ {
machine_function *machine = p->machine; machine_function *machine = p->machine;
ggc_mark_rtx (machine->ra_rtx); if (machine)
ggc_mark_rtx (machine->eh_epilogue_sp_ofs); {
ggc_mark_rtx (machine->ra_rtx);
ggc_mark_rtx (machine->eh_epilogue_sp_ofs);
}
} }
static void static void
...@@ -9603,6 +9607,17 @@ arm_init_machine_status (p) ...@@ -9603,6 +9607,17 @@ arm_init_machine_status (p)
#endif #endif
} }
static void
arm_free_machine_status (p)
struct function * p;
{
if (p->machine)
{
free (p->machine);
p->machine = NULL;
}
}
/* Return an RTX indicating where the return address to the /* Return an RTX indicating where the return address to the
calling function can be found. */ calling function can be found. */
rtx rtx
...@@ -9650,6 +9665,7 @@ arm_init_expanders () ...@@ -9650,6 +9665,7 @@ arm_init_expanders ()
/* Arrange to initialize and mark the machine per-function status. */ /* Arrange to initialize and mark the machine per-function status. */
init_machine_status = arm_init_machine_status; init_machine_status = arm_init_machine_status;
mark_machine_status = arm_mark_machine_status; mark_machine_status = arm_mark_machine_status;
free_machine_status = arm_free_machine_status;
} }
/* Generate the rest of a function's prologue. */ /* Generate the rest of a function's prologue. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment