[ 
http://issues.apache.org/jira/browse/XERCESC-1593?page=comments#action_12383179 
] 

Lukas Grützmacher commented on XERCESC-1593:
--------------------------------------------

I've checked again now the code at traverseschema.cpp:6490. Now I agree that 
the code looks safe now. But it is really hard to understand.

I know there are many compilers in the world. But I think MSVC is one of the 
major compilers for the Windows platform ("your" binary release is also build 
by MSVC, isn't it?). So why not take advantages from this compiler. Yes, it has 
not found out that the code is currently safe. But I was also not able to see 
this first time ;)

I want to explain my target "always warning free". In the past I've made the 
experiance that compiling in warning level 4 can really find problems in the 
code, e.g. unititialized values which really occur. So we (my company) has 
decided to enforce level 4. Then it is easier to fix all warnings instead of 
reviewing all warnings each time of recompile.

Further: Now you have checked that the warning at traverseschema.cpp:6490 is 
not critical and you keep this state in your mind. Later on somebody changes 
the code around so that is not safe anymore. But you may not check anymore this 
warning and you may really run into problems.

For the problem of initial values I want to give an example:
change
  XMLAttDef::DefAttTypes defAttType; (traverseschema.cpp:6449)
to
  XMLAttDef::DefAttTypes defAttType = XMLAttDef::DefAttTypes_Unknown;

In the case the value is really not overwritten and so used with 
DefAttTypes_Unknown it is better to check against DefAttTypes_Unknown instead 
of checking all other expected values. If it is really always overwritten so 
this "costs" are only "DWORD PTR _defAttType$27151[ebp], -1".

> critical Warning on compiling XercesC 2.7.0
> -------------------------------------------
>
>          Key: XERCESC-1593
>          URL: http://issues.apache.org/jira/browse/XERCESC-1593
>      Project: Xerces-C++
>         Type: Bug

>   Components: Build
>     Versions: 2.7.0
>  Environment: MSVC 2003 (7.1)
> Set Warning Level to 4
>     Reporter: Lukas Grützmacher

>
> I've compiled XercesC 2.7.0 from sources with MSVC2003.
> I've changed the project settings to use always warning level 4.
> Thereby I found a lot of warnings. IMHO some of them are critical:
> xerces-c-src_2_7_0\src\xercesc\validators\schema\traverseschema.cpp(6490) : 
> warning C4701: local variable 'defAttType' may be used without having been 
> initialized
> xerces-c-src_2_7_0\src\xercesc\util\regx\token.cpp(259) : warning C4701: 
> local variable 'ret2' may be used without having been initialized
> xerces-c-src_2_7_0\src\xercesc\util\regx\RegularExpression.cpp(184) : warning 
> C4244: 'argument' : conversion from 'XMLInt32' to 'const XMLCh', possible 
> loss of data
> xerces-c-src_2_7_0\src\xercesc\util\platforms\win32\win32platformutils.cpp(795)
>  : warning C4701: local variable 'retVal' may be used without having been 
> initialized
> xerces-c-src_2_7_0\tests\xserializertest\xserializertest.cpp(537) : warning 
> C4701: local variable 'duration' may be used without having been initialized
> Many others are not critical but sould be fixed, too. Here are some examples:
> DFAContentModel.cpp
> ..\..\..\..\..\src\xercesc\validators\common\CMNode.hpp(129) : warning C4245: 
> 'initializing' : conversion from 'int' to 'unsigned int', signed/unsigned 
> mismatch
> xerces-c-src_2_7_0\src\xercesc\internal\XSAXMLScanner.cpp(310) : warning 
> C4245: 'argument' : conversion from '' to 'unsigned int', signed/unsigned 
> mismatch
> xerces-c-src_2_7_0\src\xercesc\framework\psvi\XSValue.cpp(1721) : warning 
> C4189: 'strLen' : local variable is initialized but not referenced
> xerces-c-src_2_7_0\src\xercesc\dom\deprecated\DOM_RangeException.cpp(36) : 
> warning C4244: 'argument' : conversion from 
> 'xercesc_2_7::DOM_RangeException::RangeExceptionCode' to 'short', possible 
> loss of data

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to