[
https://issues.apache.org/jira/browse/QPID-6537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14540457#comment-14540457
]
Chuck Rolke commented on QPID-6537:
-----------------------------------
I had patch files to correct the bool and "unary minus on unsigned variable"
warnings but they are too ugly to propose as fixes. The warnings could be
suppressed or left alone. The code actually works as expected even with the
warnings.
> [C++ Windows] Windows compile latest warning summary
> ----------------------------------------------------
>
> Key: QPID-6537
> URL: https://issues.apache.org/jira/browse/QPID-6537
> Project: Qpid
> Issue Type: Improvement
> Components: C++ Broker, C++ Client
> Affects Versions: 0.33
> Environment: Windows Visual Studio 2012, x64
> Reporter: Chuck Rolke
> Priority: Minor
>
> Recent windows builds show some warnings in the 64-bit compiles.
> {noformat}
> 2>D:\qpid\cpp\src\qpid\types\Variant.cpp(130): warning C4146:
> unary minus operator applied to unsigned type, result still unsigned
> 2>D:\qpid\cpp\src\qpid\types\Variant.cpp(342) :
> see reference to function template instantiation
> 'T qpid::types::VariantImpl::convertFromString<uint32_t>(void) const
> ' being compiled
> 2> with
> 2> [
> 2> T=uint32_t
> 2> ]
> {noformat}
> In this case the type is unsigned. The template applies the unary minus only
> to a signed type and so the warning is for code that's never executed. Still
> the warning is a nuisance and should be suppressed.
> {noformat}
> 6>D:\qpid\cpp\src\qpid/framing/Endian.h(44): warning C4806:
> '&' : unsafe operation: no value of type 'bool' promoted to type 'int' can
> equal the given constant
> 6>D:\qpid\cpp\src\qpid/framing/FieldValue.h(178) :
> see reference to function template instantiation
> 'void qpid::framing::endian::encodeInt<T>(uint8_t *,T)' being compiled
> 6> with
> 6> [
> 6> T=bool
> 6> ]
> 6>D:\qpid\cpp\src\qpid/framing/FieldValue.h(178) : while compiling class
> template member function
> 'qpid::framing::FixedWidthIntValue<T>::FixedWidthIntValue(T)'
> 6> with
> 6> [
> 6> T=bool
> 6> ]
> 6>D:\qpid\cpp\src\qpid\framing\FieldValue.cpp(233) : see reference to
> function template instantiation
> 'qpid::framing::FixedWidthIntValue<T>::FixedWidthIntValue(T)' b
> eing compiled
> 6> with
> 6> [
> 6> T=bool
> 6> ]
> 6>D:\qpid\cpp\src\qpid\framing\FieldValue.cpp(232) : see reference to class
> template instantiation 'qpid::framing::FixedWidthIntValue<T>' being compiled
> 6> with
> 6> [
> 6> T=bool
> 6> ]
> 6>D:\qpid\cpp\src\qpid/framing/Endian.h(45): warning C4804: '>>=' : unsafe
> use of type 'bool' in operation
> 6>D:\Users\crolke\git\rh-qpid\qpid\cpp\src\qpid/framing/Endian.h(35): warning
> C4804: '<<=' : unsafe use of type 'bool' in operation
> 6>D:\qpid\cpp\src\qpid/framing/FieldValue.h(180) : see reference to function
> template instantiation 'T qpid::framing::endian::decodeInt<T>(const uint8_t
> *)' being co
> mpiled
> 6> with
> 6> [
> 6> T=bool
> 6> ]
> 6>D:\qpid\cpp\src\qpid/framing/FieldValue.h(180) : while compiling class
> template member function 'int64_t
> qpid::framing::FixedWidthIntValue<T>::getInt(void) const'
> 6> with
> 6> [
> 6> T=bool
> 6> ]
> 6>D:\qpid\cpp\src\qpid/framing/Endian.h(36): warning C4805: '|=' : unsafe mix
> of type 'bool' and type 'const uint8_t' in operation
> 6>D:\qpid\cpp\src\qpid/framing/Endian.h(36): warning C4805: '|' : unsafe mix
> of type 'bool' and type 'int' in operation
> {noformat}
> These are relatively recent additions.
> {noformat}
> 7>D:\qpid\cpp\src\qpid/client/Handle.h(67): warning C4661:
> 'qpid::client::Handle<T>::Handle(const qpid::client::Handle<T> &)' : no
> suitable definition provided for explicit te
> mplate instantiation request
> 7> with
> 7> [
> 7> T=qpid::client::CompletionImpl
> 7> ]
> 7> D:\qpid\cpp\src\qpid/client/Handle.h(61) : see declaration of
> 'qpid::client::Handle<T>::Handle'
> 7> with
> 7> [
> 7> T=qpid::client::CompletionImpl
> 7> ]
> 7>D:\qpid\cpp\src\qpid/client/Handle.h(67): warning C4661:
> 'qpid::client::Handle<T> &qpid::client::Handle<T>::operator =(const
> qpid::client::Handle<T> &)' : no suitable defini
> tion provided for explicit template instantiation request
> 7> with
> 7> [
> 7> T=qpid::client::CompletionImpl
> 7> ]
> 7> D:\qpid\cpp\src\qpid/client/Handle.h(62) : see declaration of
> 'qpid::client::Handle<T>::operator ='
> 7> with
> 7> [
> 7> T=qpid::client::CompletionImpl
> 7> ]
> {noformat}
> Is this significant?
> {noformat}
> 9>D:\qpid\cpp\src\tests\FieldValue.cpp(33): warning C4305: 'argument' :
> truncation from 'double' to 'float'
> 9>D:\qpid\cpp\src\tests\FieldValue.cpp(65): warning C4305: 'argument' :
> truncation from 'double' to 'float'
> 9>D:\qpid\cpp\src\tests\FieldValue.cpp(68): warning C4305: 'argument' :
> truncation from 'double' to 'float'
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]