From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9836 invoked by alias); 12 Jan 2010 14:53:58 -0000 Received: (qmail 9760 invoked by uid 48); 12 Jan 2010 14:53:46 -0000 Date: Tue, 12 Jan 2010 14:53:00 -0000 Message-ID: <20100112145346.9759.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/42704] [4.5 Regression] ICE in verify_ssa after early SRA 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: 2010-01/txt/msg01358.txt.bz2 ------- Comment #3 from rguenth at gcc dot gnu dot org 2010-01-12 14:53 ------- > ./cc1plus -quiet nsTreeRows.3.ii -O2 -w nsTreeRows.3.ii: In member function 'void nsTreeRows::InvalidateCachedRow()': nsTreeRows.3.ii:39:1: error: missing definition for SSA_NAME: D.2215_9 in statement: # .MEM_16 = VDEF <.MEM_12> this_1(D)->mLastRow.mLink[i_8].mParent = D.2215_9; nsTreeRows.3.ii:39:1: internal compiler error: verify_ssa failed Please submit a full bug report, with preprocessed source if appropriate. See for instructions. typedef int PRInt32; class nsTreeRows { class Subtree { }; enum { kMaxDepth = 32 }; struct Link { Subtree* mParent; PRInt32 mChildIndex; Link& operator=(const Link& aLink) { mParent = aLink.mParent; mChildIndex = aLink.mChildIndex; } }; class iterator { PRInt32 mTop; PRInt32 mRowIndex; Link mLink[kMaxDepth]; public: iterator() : mTop(-1), mRowIndex(-1) { } iterator& operator=(const iterator& aIterator); }; Subtree* EnsureSubtreeFor(Subtree* aParent, PRInt32 aChildIndex); Subtree* GetSubtreeFor(const Subtree* aParent, PRInt32 aChildIndex, PRInt32* aSubtreeSize = 0); void InvalidateCachedRow() { mLastRow = iterator(); } iterator mLastRow; }; nsTreeRows::Subtree* nsTreeRows::EnsureSubtreeFor(Subtree* aParent, PRInt32 aChildIndex) { Subtree* subtree = GetSubtreeFor(aParent, aChildIndex); if (! subtree) { InvalidateCachedRow(); } } nsTreeRows::iterator& nsTreeRows::iterator::operator=(const iterator& aIterator) { mTop = aIterator.mTop; for (PRInt32 i = mTop; i >= 0; --i) mLink[i] = aIterator.mLink[i]; } -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2010-01-12 14:53:45 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42704