diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fc6b1d6b3638cd520716ea273d45ea3e5ad97e04..2bee7d99eec15256bbd5b00dbad8d6a1b469edaa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-02-26  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/56461
+	* lra-spills.c (lra_spill): Free spill_hard_reg at the end.
+
 2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
 
 	* config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
diff --git a/gcc/lra-spills.c b/gcc/lra-spills.c
index 6ac80beb9b4fcf44d3ab3280ff4115ea9d877ead..163ca11509d6835674818fe81ada80e93ead4191 100644
--- a/gcc/lra-spills.c
+++ b/gcc/lra-spills.c
@@ -568,6 +568,7 @@ lra_spill (void)
   free (slots);
   free (pseudo_slots);
   free (pseudo_regnos);
+  free (spill_hard_reg);
 }
 
 /* Apply alter_subreg for subregs of regs in *LOC.  Use FINAL_P for