[protoPATCH] "safe" numeric casts with explicit min/max
Stephan Bergmann
sbergman at redhat.com
Wed Feb 29 06:25:12 PST 2012
On 02/29/2012 12:13 PM, Lionel Elie Mamane wrote:
> Background: we have in sc/source/filter/inc/ftools.hxx supposedly
> "safe" casts that are (according to the Doxygen documentation)
> supposed to be safer than just static_cast. As fdo#39589 uncovered,
> they are actually so buggy as to be *less* safe.
Are those "saturating" ulimit_cast a good thing, anyway? Looks like
they are only used in a handful of sc/source/filter/excel/ files.
Picking the first occurrence at random,
> return ulimit_cast< sal_uInt16 >( nValueCount, EXC_CHDATAFORMAT_MAXPOINTCOUNT );
from XclExpChSourceLink::ConvertDataSequence (xechart.cxx), where
nValueCount is a sal_uInt32 quantity -- is it OK to silently truncate
this quantity here, or does it rather indicate a conversion failure that
should be reported to the user?
(With "helpful" converters like these, I'm always worried they only
paper over actual shortcomings in the code.)
> So maybe we could selectively disable the warnings on this file
> instead? Someone knows how to do that with gcc and with MSVC?
See
<http://wiki.services.openoffice.org/wiki/Writing_warning-free_code#When_all_else_fails>.
Stephan
More information about the LibreOffice
mailing list