Also from gcc 2.95.2 on Linux and Solaris 8, I'm getting several warnings during Xerces compilation:
Base64.cpp: In function `static bool Base64::isData(const XMLCh &)': Base64.cpp:301: warning: comparison is always false due to limited range of data type HexBin.cpp: In function `static bool HexBin::isHex(const XMLCh &)': HexBin.cpp:118: warning: comparison is always false due to limited range of data type /xerces-c-src/include/util/RefHashTableOf.c: In method `void RefHashTableOf<void>::removeAll()': /xerces-c-src/include/util/RefHashTableOf.c:149: instantiated from `RefHashTableOf<void>::~RefHashTableOf()' DocumentImpl.cpp:177: instantiated from here /xerces-c-src/include/util/RefHashTableOf.c:204: warning: `void *' is not a pointer-to-object type /xerces-c-src/include/util/RefHashTableOf.c: In method `void RefHashTableOf<void>::removeBucketElem(const void *, unsigned int &)': /xerces-c-src/include/util/RefHashTableOf.c:183: instantiated from `RefHashTableOf<void>::removeKey(const void *)' DocumentImpl.cpp:816: instantiated from here /xerces-c-src/include/util/RefHashTableOf.c:345: warning: `void *' is not a pointer-to-object type /xerces-c-src/include/util/RefHashTableOf.c: In method `void RefHashTableOf<void>::put(void *, void *)': DocumentImpl.cpp:818: instantiated from here /xerces-c-src/include/util/RefHashTableOf.c:256: warning: `void *' is not a pointer-to-object type IDDocumentImpl.cpp: In method `void IDDocumentImpl::deleteHeap()': IDDocumentImpl.cpp:926: warning: `void *' is not a pointer-to-object type /xerces-c-src/include/util/RefHashTableOf.c: In method `void RefHashTableOf<void>::removeBucketElem(const void *, unsigned int &)': /xerces-c-src/include/util/RefHashTableOf.c:183: instantiated from `RefHashTableOf<void>::removeKey(const void *)' IDDocumentImpl.cpp:761: instantiated from here /xerces-c-src/include/util/RefHashTableOf.c:345: warning: `void *' is not a pointer-to-object type /xerces-c-src/include/util/RefHashTableOf.c: In method `void RefHashTableOf<void>::put(void *, void *)': IDDocumentImpl.cpp:763: instantiated from here /xerces-c-src/include/util/RefHashTableOf.c:256: warning: `void *' is not a pointer-to-object type In file included from IDDOMImplementation.cpp:73: IDDOMImplementation.hpp:92: warning: `class IDDOMImplementation' only defines private constructors and has no friends In file included from IDNodeImpl.cpp:70: IDDOMImplementation.hpp:92: warning: `class IDDOMImplementation' only defines private constructors and has no friends In file included from GeneralAttributeCheck.cpp:80: /xerces-c-src/include/validators/schema/GeneralAttributeCheck.hpp:289: warning: `class GeneralAttributeCheck' only defines private constructors and has no friends In file included from TraverseSchema.cpp:200: /xerces-c-src/include/validators/schema/GeneralAttributeCheck.hpp:289: warning: `class GeneralAttributeCheck' only defines private constructors and has no friends I'm not sure if some of these messages might indicate serious problems... Michael Huedepohl Dean Roddey wrote: > > Every compiler puts out different warnings than others. Under VC++, it > generally compiles with no warnings at the highest warning level that its > reasonable to use. There is one higher but it is very verbose. Since > probably no one on the team works regularly with your compiler, its unlikely > that they will know about the warnings yours puts out. Warnings about > inlines not being inlined are just that, warnings. Some compilers are more > agressive than others, and there is always the possibility that some > compilers won't inline some things, but that's no reason to give up on the > very significant performance gains that inlines provide to those compilers > able to handle them. > > Aren't most of the unreachable code warnings probably things like > while(true){} stuff, where the compiler isn't smart enough to realize that > you really do break out eventually and fall out of the loop? > > -------------------------- > Dean Roddey > The Charmed Quark Controller > Charmed Quark Software > [EMAIL PROTECTED] > http://www.charmedquark.com > > "If it don't have a control port, don't buy it!" > > ----- Original Message ----- > From: "Don Mastrovito" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Monday, November 19, 2001 8:47 AM > Subject: Compilation warnings > > > When I first became involved with Xerces, I was amazed at the number of > > compilation warnings generated when rebuilding the library. I had always > > assumed that because Xerces was a work-in-progress, that these would > > eventually be cleaned up. That doesn't seem to be the case. I could make > > the edits but don't have the ability to adequately test *all* the > > changes. Most are nearly all trivial edits. Alternately, I (and > hopefully > > others) could fix things one module at a time. Is there interest in > > addressing the warnings? I don't see suppressing them as a permanent > > solution. It merely hides potentially bad code or bad coding practices. > > > > The following is a hand-edited abridged list of the more obvious warnings > > produced by the Borland compiler. It does not include the (literally) > > hundreds of warnings pertaining to functions that cannot be inlined for > > various reasons. The first warning in XML256TableTranscoder.cpp is > > probably the most serious in the list. > > > > ElementImpl.cpp(425): W8066 Unreachable code > > ElementImpl.cpp(464): W8066 Unreachable code > > NodeIDMap.cpp(217): W8066 Unreachable code > > NodeImpl.cpp(314): W8066 Unreachable code > > NodeImpl.cpp(325): W8066 Unreachable code > > NodeImpl.cpp(332): W8066 Unreachable code > > NodeImpl.cpp(480): W8066 Unreachable code > > RangeImpl.cpp(933): W8008 Condition is always false > > RangeImpl.cpp(1629): W8012 Comparing signed and unsigned values > > RangeImpl.cpp(1636): W8012 Comparing signed and unsigned values > > XMLBufferMgr.cpp(149): W8066 Unreachable code > > ElemStack.cpp(192): W8004 'childCount' is assigned a value that is never > used > > ElemStack.cpp(231): W8004 'childCount' is assigned a value that is never > used > > XMLReader.cpp(1615): W8066 Unreachable code > > XMLScanner.cpp(3227): W8004 'gotAttrs' is assigned a value that is never > used > > XMLScanner2.cpp(864): W8004 'firstNonWS' is assigned a value that is never > used > > XMLScanner2.cpp(864): W8004 'curState' is assigned a value that is never > used > > XMLScanner2.cpp(1355): W8004 'suffPtr' is assigned a value that is never > used > > XMLScanner2.cpp(1773): W8066 Unreachable code > > XMLScanner2.cpp(2013): W8066 Unreachable code > > XMLScanner2.cpp(2147): W8004 'CDataPrefix' is assigned a value that is > > never used > > SAX2XMLReaderImpl.cpp(1371): W8066 Unreachable code > > SAX2XMLReaderImpl.cpp(1388): W8066 Unreachable code > > XMLReaderFactory.hpp(100): W8066 Unreachable code > > Base64.cpp(424): W8008 Condition is always false > > HexBin.cpp(115): W8008 Condition is always false > > Win32MsgLoader.cpp(202): W8012 Comparing signed and unsigned values > > WinSockNetAccessor.cpp(105): W8066 Unreachable code > > WinSockNetAccessor.cpp(114): W8066 Unreachable code > > Op.cpp(91): W8066 Unreachable code > > Op.cpp(97): W8066 Unreachable code > > Op.cpp(103): W8066 Unreachable code > > Op.cpp(109): W8066 Unreachable code > > Op.cpp(115): W8066 Unreachable code > > Op.cpp(121): W8066 Unreachable code > > Op.cpp(127): W8066 Unreachable code > > Op.cpp(133): W8066 Unreachable code > > Op.cpp(139): W8066 Unreachable code > > Op.cpp(145): W8066 Unreachable code > > Op.cpp(151): W8066 Unreachable code > > ParserForXMLSchema.cpp(245): W8004 'start' is assigned a value that is > > never used > > ParserForXMLSchema.cpp(352): W8066 Unreachable code > > ParserForXMLSchema.cpp(358): W8066 Unreachable code > > ParserForXMLSchema.cpp(364): W8066 Unreachable code > > ParserForXMLSchema.cpp(370): W8066 Unreachable code > > ParserForXMLSchema.cpp(388): W8066 Unreachable code > > ParserForXMLSchema.cpp(394): W8066 Unreachable code > > ParserForXMLSchema.cpp(412): W8066 Unreachable code > > ParserForXMLSchema.cpp(418): W8066 Unreachable code > > ParserForXMLSchema.cpp(424): W8066 Unreachable code > > ParserForXMLSchema.cpp(430): W8066 Unreachable code > > ParserForXMLSchema.cpp(436): W8066 Unreachable code > > ParserForXMLSchema.cpp(442): W8066 Unreachable code > > ParserForXMLSchema.cpp(448): W8066 Unreachable code > > ParserForXMLSchema.cpp(454): W8066 Unreachable code > > ParserForXMLSchema.cpp(460): W8066 Unreachable code > > ParserForXMLSchema.cpp(466): W8066 Unreachable code > > RegularExpression.cpp(1163): W8066 Unreachable code > > RegxParser.cpp(1042): W8004 'start' is assigned a value that is never used > > RegxParser.cpp(1197): W8004 'pStart' is assigned a value that is never > used > > TokenFactory.cpp(206): W8066 Unreachable code > > XML256TableTranscoder.cpp(163): W8060 Possibly incorrect assignment > > XML256TableTranscoder.cpp(264): W8004 'curByte' is assigned a value that > is > > never used > > XMLBigDecimal.cpp(312): W8008 Condition is always false > > XMLDouble.cpp(442): W8066 Unreachable code > > XMLDouble.cpp(509): W8066 Unreachable code > > XMLDouble.cpp(536): W8066 Unreachable code > > XMLFloat.cpp(430): W8066 Unreachable code > > XMLFloat.cpp(497): W8066 Unreachable code > > XMLFloat.cpp(523): W8066 Unreachable code > > XMLString.cpp(358): W8012 Comparing signed and unsigned values > > XMLURL.cpp(825): W8010 Continuation character \ found in // comment > > XMLUTF16Transcoder.cpp(139): W8008 Condition is always true > > XMLUTF16Transcoder.cpp(146): W8066 Unreachable code > > XMLUTF16Transcoder.cpp(147): W8066 Unreachable code > > XMLUTF16Transcoder.cpp(216): W8008 Condition is always true > > XMLUTF16Transcoder.cpp(223): W8066 Unreachable code > > XMLUTF16Transcoder.cpp(224): W8066 Unreachable code > > DFAContentModel.cpp(650): W8004 'leafType' is assigned a value that is > > never used > > SimpleContentModel.cpp(310): W8066 Unreachable code > > SimpleContentModel.cpp(470): W8066 Unreachable code > > AnySimpleTypeDatatypeValidator.cpp(103): W8066 Unreachable code > > DTDScanner.cpp(962): W8066 Unreachable code > > DTDValidator.cpp(446): W8004 'sawOneValue' is assigned a value that is > > never used > > SchemaAttDefList.cpp(128): W8066 Unreachable code > > SchemaAttDefList.cpp(138): W8066 Unreachable code > > SchemaElementDecl.cpp(254): W8066 Unreachable code > > TraverseSchema.cpp(2400): W8004 'subGroupTypeInfo' is assigned a value > that > > is never used > > TraverseSchema.cpp(2400): W8004 'subGroupValidator' is assigned a value > > that is never used > > TraverseSchema.cpp(2890): W8004 'size' is assigned a value that is never > used > > TraverseSchema.cpp(4989): W8004 'baseTypeSymbol' is assigned a value that > > is never used --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]