qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chuck Rolke (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (QPID-6537) [C++ Windows] Windows compile latest warning summary
Date Tue, 12 May 2015 18:43:01 GMT

     [ https://issues.apache.org/jira/browse/QPID-6537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Chuck Rolke updated QPID-6537:
------------------------------
    Attachment: QPID-6537-bool.patch

QPID-6537-bool.patch avoids four instances of
{noformat}
"warning C4804: '>>=' : unsafe use of type 'bool' in operation" 
{noformat}
by providing template specializations. This patch works on windows (visual studio 2012) but
does *not* work on linux with g++ due to namespace issues.

Warnings are awful but is this worth chasing any further?



> [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
>         Attachments: QPID-6537-bool.patch
>
>
> 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: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Mime
View raw message