This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/33627] [4.3 Regression] ICE in verify_stmts compiling abiword
- 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: 2 Oct 2007 15:09:13 -0000
- Subject: [Bug c++/33627] [4.3 Regression] ICE in verify_stmts compiling abiword
- References: <bug-33627-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #2 from rguenth at gcc dot gnu dot org 2007-10-02 15:09 -------
Reduced testcase:
typedef unsigned int UT_uint32;
typedef UT_uint32 PT_DocPosition;
typedef UT_uint32 PT_BlockOffset;
typedef enum _PTStruxType { PTX_Block } PTStruxType;
typedef UT_uint32 PL_ListenerId;
typedef const void * PL_StruxFmtHandle;
class PX_ChangeRecord;
class pf_Frag {
public:
typedef enum _PFType { PFT_Object } PFType;
inline PFType getType(void) const { }
inline pf_Frag * getNext(void) const { }
PT_DocPosition getPos(void) const { }
};
class pf_Fragments {
public:
pf_Frag * getFirst() const;
};
class pt_PieceTable {
bool getStruxOfTypeFromPosition(PL_ListenerId listenerId, PT_DocPosition
docPos, PTStruxType pts, PL_StruxFmtHandle * psfh) const;
bool _tellAndMaybeAddListener(PL_ListenerId listenerId, bool bAdd);
pf_Fragments m_fragments;
};
class pf_Frag_Object : public pf_Frag
{
public:
virtual bool createSpecialChangeRecord(PX_ChangeRecord ** ppcr,
PT_DocPosition dpos, PT_BlockOffset blockOffset) const;
};
bool pt_PieceTable::_tellAndMaybeAddListener(PL_ListenerId listenerId, bool
bAdd)
{
PL_StruxFmtHandle sfh = 0;
PT_DocPosition sum = 0;
UT_uint32 blockOffset = 0;
for (pf_Frag * pf = m_fragments.getFirst(); (pf); pf=pf->getNext())
{
pf_Frag_Object * pfo = static_cast<pf_Frag_Object *> (pf);
PX_ChangeRecord * pcr = __null;
bool bStatus1 = false;
if(sfh != __null) {
bStatus1 = pfo->createSpecialChangeRecord(&pcr,sum,blockOffset);
if (!(bStatus1))
return (false);
}
else
{
PT_DocPosition pos = pf->getPos();
getStruxOfTypeFromPosition(listenerId,pos,PTX_Block,&sfh);
bStatus1 = pfo->createSpecialChangeRecord(&pcr,pos,blockOffset);
if (!(bStatus1))
return (false);
}
if (!(bStatus1))
return (false);
}
}
ICEs in verify_stmts on x86_64:
/suse/rguenther/export/pt_PT_Listener.5.ii: In member function 'bool
pt_PieceTable::_tellAndMaybeAddListener(PL_ListenerId, bool)':
/suse/rguenther/export/pt_PT_Listener.5.ii:29: error: invalid conditional
operand
!bStatus1_24;
/suse/rguenther/export/pt_PT_Listener.5.ii:29: internal compiler error:
verify_stmts failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
GCC target triplet|ia64-*-* |
Last reconfirmed|0000-00-00 00:00:00 |2007-10-02 15:09:13
date| |
Summary|[4.3 Regression] ICE |[4.3 Regression] ICE in
|compiling abiword |verify_stmts compiling
| |abiword
Target Milestone|--- |4.3.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33627