Compiler - AIX xlc_r (version 5).
Xerces 2.7
 
Error Message:
".../include/xercesc/util/regx/RegularExpression.hpp", line 400.19:
1540-0219 (S) The call to "operator!=" has no best match.
".../include/xercesc/util/regx/RegularExpression.hpp", line 400.11:
1540-1228 (I) Argument number 1 is an lvalue of type "const unsigned
short".
".../include/xercesc/util/regx/RegularExpression.hpp", line 400.22:
1540-1229 (I) Argument number 2 is an rvalue of type "<unnamed-enum>".
".../include/xercesc/util/regx/RegularExpression.hpp", line 400.19:
1540-1202 (I) No candidate is better than "builtin operator!=(int,
int)".
".../include/xercesc/util/regx/RegularExpression.hpp", line 400.11:
1540-1231 (I) The conversion from argument number 1 to "int" uses an
lvalue-to-rvalue transformation followed by an integral promotion.
".../include/xercesc/util/regx/RegularExpression.hpp", line 400.22:
1540-1231 (I) The conversion from argument number 2 to "int" uses an
integral promotion.

This is the offending line -
....
  inline Op* RegularExpression::compileSingle(const Token* const token,
                                              Op* const next,
                                              const unsigned short
tokType) { 
 
...
      if (tokType != Token::T_EMPTY) <-- compiler error here
          ret->setNextOp(next);

....
<<
 
Apparently implicit conversion between const unsigned short and enum
type will not work, although this is just with AIX.
 
Funnily when i build xerces libraries, i don't get this compiler error.
 
I get this compile-error when including xerces headers to use with my
app - i see that compiler options can be a difference here, but i am not
aware of what compiler option i can use to do the implicit conversion
that's required here.
 
Any fix for this. i.e. without changing the code?
 
Thank you.
 
Ramkumar Devanathan
HP Software BTO R&D
Bangalore
India
PHONE: (91)-80-2205-2219

 

Reply via email to