This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/42704] [4.5 Regression] ICE in verify_ssa after early SRA
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 12 Jan 2010 14:53:46 -0000
- Subject: [Bug tree-optimization/42704] [4.5 Regression] ICE in verify_ssa after early SRA
- References: <bug-42704-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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