http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55358



Jakub Jelinek <jakub at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Status|UNCONFIRMED                 |NEW

   Last reconfirmed|                            |2012-11-28

     Ever Confirmed|0                           |1



--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-11-28 
14:47:33 UTC ---

(In reply to comment #7)

> diff --git a/gcc/dse.c b/gcc/dse.c

> index f879adb..8d12e8d 100644

> --- a/gcc/dse.c

> +++ b/gcc/dse.c

> @@ -2869,7 +2869,7 @@ dse_step1 (void)

>                                  INSN_UID (s_info->redundant_reason->insn));

>                       delete_dead_store_insn (ptr);

>                     }

> -                 if (s_info)

> +                 if (ptr->store_rec && s_info)

>                     s_info->redundant_reason = NULL;

>                   free_store_info (ptr);

>                 }



Actually, I fail to see what is that if (s_info) s_info->redundant_reason =

NULL;

good for, the following free_store_info (ptr) should pool_free s_info if

delete_dead_store_insn hasn't already called free_store_info.  And it doesn't

seem that pool_alloced store info recs would rely on the field being cleared,

it seems we initialize it always:

  store_info->redundant_reason = redundant_reason;

Thus, my preference would be just drop the two lines instead.

Reply via email to