From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24761 invoked by alias); 2 Nov 2008 11:28:28 -0000 Received: (qmail 14941 invoked by uid 48); 2 Nov 2008 11:27:05 -0000 Date: Sun, 02 Nov 2008 11:28:00 -0000 Message-ID: <20081102112705.14940.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/37991] [4.4 Regression] excessive memory consumption - possible hang In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-11/txt/msg00115.txt.bz2 ------- Comment #4 from rguenth at gcc dot gnu dot org 2008-11-02 11:27 ------- The following fails this way with plain -O. The key is the typedef - if you replace the use of UInt32 with unsinged int the testcase succeeds. Mine. typedef unsigned int UInt32; int Read(unsigned int *processedSize); void FindAndReadSignature(void) { unsigned int numPrevBytes = 31; for (;;) { unsigned int numReadBytes = (1 << 16) - numPrevBytes; unsigned int processedSize; int __result__ = Read(&processedSize); unsigned int numBytesInBuffer = numPrevBytes + processedSize; UInt32 numTests = numBytesInBuffer - 31; for (unsigned int pos = 0; pos < numTests; pos++) ; numPrevBytes = numBytesInBuffer - numTests; } } -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |rguenth at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-11-02 10:42:12 |2008-11-02 11:27:05 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37991