From patchwork Sat Jan 1 13:27:33 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Hubicka X-Patchwork-Id: 77140 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 85147B6F14 for ; Sun, 2 Jan 2011 00:27:45 +1100 (EST) Received: (qmail 28042 invoked by alias); 1 Jan 2011 13:27:42 -0000 Received: (qmail 28033 invoked by uid 22791); 1 Jan 2011 13:27:42 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL, BAYES_00, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from nikam-dmz.ms.mff.cuni.cz (HELO nikam.ms.mff.cuni.cz) (195.113.20.16) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 01 Jan 2011 13:27:36 +0000 Received: by nikam.ms.mff.cuni.cz (Postfix, from userid 16202) id D7F0A9AC68F; Sat, 1 Jan 2011 14:27:33 +0100 (CET) Date: Sat, 1 Jan 2011 14:27:33 +0100 From: Jan Hubicka To: gcc-patches@gcc.gnu.org Subject: Avoid freed memory use in loop distribution Message-ID: <20110101132733.GB6040@kam.mff.cuni.cz> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Hi, tree_loop_distribution displays loop number after the loop was removed resulting in uninitialized memory use. Fixed as obvoius. Honza Index: ChangeLog =================================================================== --- ChangeLog (revision 168390) +++ ChangeLog (working copy) @@ -1,3 +1,8 @@ +2011-01-01 Jan Hubicka + + * tree-loop-distribution.c (tree_loop_distribution): Do not + use freed memory. + 2011-01-01 Kai Tietz PR target/38662 Index: tree-loop-distribution.c =================================================================== --- tree-loop-distribution.c (revision 168390) +++ tree-loop-distribution.c (working copy) @@ -1214,6 +1214,7 @@ tree_loop_distribution (void) FOR_EACH_LOOP (li, loop, 0) { VEC (gimple, heap) *work_list = NULL; + int num = loop->num; /* If the loop doesn't have a single exit we will fail anyway, so do that early. */ @@ -1255,9 +1256,9 @@ tree_loop_distribution (void) { if (nb_generated_loops > 1) fprintf (dump_file, "Loop %d distributed: split to %d loops.\n", - loop->num, nb_generated_loops); + num, nb_generated_loops); else - fprintf (dump_file, "Loop %d is the same.\n", loop->num); + fprintf (dump_file, "Loop %d is the same.\n", num); } verify_loop_structure ();