------- 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 <http://gcc.gnu.org/bugs.html> 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