https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92600
Martin Liška changed:
What|Removed |Added
Known to work||8.3.0
Target Milestone|--- |9.3
Summary|ICE: symtab_node::verify|[9/10 Regression] ICE:
|failed, building|symtab_node::verify failed,
|523.xalancbmk_r with -flto |building 523.xalancbmk_r
|-fno-inline |with -flto -fno-inline
||since r267359
Known to fail||10.0, 9.2.0
--- Comment #4 from Martin Liška ---
(In reply to Martin Liška from comment #3)
> It's related to PR92599. It's also an ODR violation that leads to the ICE.
So it must be something different. There are source files which do not violate
ODR:
$ cat 1.ii
unsigned short a;
namespace xercesc_2_7 {
class MemoryManager;
class XMemory {};
class XMLErrorReporter {
virtual void resetErrors();
};
class XMLBuffer {};
class XMLBufferMgr {
unsigned fBufCount;
MemoryManager *fMemoryManager;
XMLBuffer **fBufList;
};
template class RefVectorOf;
class XMLStringPool;
class GrammarResolver;
class XMLValidator;
template class ValueStackOf;
class XMLEntityHandler;
class ErrorHandler;
class XMLScanner {
public:
XMLEntityHandler *fEntityHandler;
};
class SGXMLScanner : XMLScanner {
int *resolveSystemId();
};
class XMLDocumentHandler {
virtual void endEntityReference();
};
class XMLEntityHandler {
public:
virtual bool expandSystemId(const unsigned short *, XMLBuffer &);
};
class PSVIHandler {
virtual void handleElementPSVI();
};
class DOMNode;
class DOMEntity;
class DocTypeHandler {
virtual void startIntSubset();
};
class DOMDocumentImpl;
class DOMDocumentTypeImpl;
class XMLGrammarPool;
class AbstractDOMParser : XMemory,
XMLDocumentHandler,
XMLErrorReporter,
XMLEntityHandler,
DocTypeHandler,
PSVIHandler {
bool fCreateEntityReferenceNodes;
bool fIncludeIgnorableWhitespace;
bool fWithinElement;
bool fParseInProgress;
bool fCreateCommentNodes;
bool fDocumentAdoptedByUser;
bool fCreateSchemaInfo;
XMLScanner *fScanner;
unsigned short *fImplementationFeatures;
DOMNode *fCurrentParent;
DOMNode *fCurrentNode;
DOMEntity *fCurrentEntity;
DOMDocumentImpl *fDocument;
ValueStackOf *fNodeStack;
DOMDocumentTypeImpl *fDocumentType;
RefVectorOf *fDocumentVector;
GrammarResolver *fGrammarResolver;
XMLStringPool *fURIStringPool;
XMLValidator *fValidator;
MemoryManager *fMemoryManager;
XMLGrammarPool *fGrammarPool;
XMLBufferMgr fBufMgr;
XMLBuffer
PSVIHandler *fPSVIHandler;
};
class EntityResolver;
class XMLEntityResolver;
class XercesDOMParser : AbstractDOMParser {
virtual void error();
bool expandSystemId(const unsigned short *, XMLBuffer &);
EntityResolver *fEntityResolver;
XMLEntityResolver *fXMLEntityResolver;
ErrorHandler *fErrorHandler;
};
inline bool XercesDOMParser::expandSystemId(const unsigned short *,
XMLBuffer &) { return false; }
int *SGXMLScanner::resolveSystemId() {
XMLBuffer b;
fEntityHandler->expandSystemId(, b);
return 0;
}
} // namespace xercesc_2_7
$ cat 2.ii
namespace xercesc_2_7 {
class DOMNode;
class DOMEntity;
class MemoryManager;
class XMemory {};
class XMLErrorReporter {
public:
virtual ~XMLErrorReporter();
};
template class RefVectorOf;
class XMLDocumentHandler {
virtual void XMLDecl();
};
class XMLBuffer;
class XMLEntityHandler {
virtual bool expandSystemId(const unsigned short *, XMLBuffer &);
};
template class ValueStackOf;
class GrammarResolver;
class XMLStringPool;
class DocTypeHandler {
public:
virtual ~DocTypeHandler();
};
class XMLBufferMgr {
unsigned fBufCount;
MemoryManager *fMemoryManager;
XMLBuffer **fBufList;
};
class PSVIHandler {
virtual void handlePartialElementPSVI();
};
class XMLScanner;
class XMLValidator;
class DOMDocumentImpl;
class DOMDocumentTypeImpl;
class XMLGrammarPool;
class AbstractDOMParser : XMemory,
XMLDocumentHandler,
XMLErrorReporter,
XMLEntityHandler,
DocTypeHandler,
PSVIHandler {
bool fCreateEntityReferenceNodes;
bool fIncludeIgnorableWhitespace;
bool fWithinElement;
bool fParseInProgress;
bool fCreateCommentNodes;
bool fDocumentAdoptedByUser;
bool fCreateSchemaInfo;
XMLScanner *fScanner;
unsigned short *fImplementationFeatures;
DOMNode *fCurrentParent;
DOMNode *fCurrentNode;
DOMEntity *fCurrentEntity;
DOMDocumentImpl *fDocument;
ValueStackOf *fNodeStack;
DOMDocumentTypeImpl *fDocumentType;
RefVectorOf *fDocumentVector;