With the LODE environment, I can build the 32-bit binary without any errors. Recently, the 64-bit
builds stopped working. For 64-bit I get the following error:
[build CXX] vcl/source/filter/jpeg/Exif.cxx/core/vcl/source/filter/igif/gifread.cxx(251): error
C2220: warning treated as error - no 'object' file
generated/core/vcl/source/filter/igif/gifread.cxx(251): warning C4334: '<<': result of 32-bit shift
implicitly converted to 64 bits (was 64-bit shift
intended?)/core/vcl/source/filter/igif/gifread.cxx(462): warning C4334: '<<': result of 32-bit
shift implicitly converted to 64 bits (was 64-bit shift intended?)[build CXX]
vcl/source/filter/jpeg/jpeg.cxx/core/solenv/gbuild/LinkTarget.mk:189: recipe for target
'/core/workdir/CxxObject/vcl/source/filter/igif/gifread.o' failedmake[1]: ***
[/core/workdir/CxxObject/vcl/source/filter/igif/gifread.o] Error 2make[1]: *** Waiting for
unfinished jobs....Makefile:257: recipe for target 'build' failedmake: *** [build] Error 2
I tried to bisect it, and couldn't build anything as far back as I tried. Could this be from an
update to my OS (Win 10) or MSVC?
The following incorrect/bad hack allowed me to build it:
diff --git a/oox/source/ole/vbainputstream.cxx b/oox/source/ole/vbainputstream.cxxindex
65eb91c..db87aca 100644--- a/oox/source/ole/vbainputstream.cxx+++
b/oox/source/ole/vbainputstream.cxx@@ -157,7 +157,7 @@ bool VbaInputStream::updateChunk()
sal_uInt16 nCopyToken = mpInStrm->readuInt16(); nChunkPos = nChunkPos
+ 2; // update bit count used for offset/length in the token-
while( static_cast< size_t >( 1 << nBitCount ) < maChunk.size() ) ++nBitCount;+
while( static_cast< size_t >( 1i64 << nBitCount ) < maChunk.size() ) ++nBitCount;
// extract length from lower (16-nBitCount) bits, plus 3 sal_uInt16 nLength =
extractValue< sal_uInt16 >( nCopyToken, 0, 16 - nBitCount ) + 3; // extract
offset from high nBitCount bits, plus 1diff --git a/vcl/source/filter/igif/gifread.cxx
b/vcl/source/filter/igif/gifread.cxxindex 01060ab..ba3a2fc 100644---
a/vcl/source/filter/igif/gifread.cxx+++ b/vcl/source/filter/igif/gifread.cxx@@ -248,7 +248,7 @@
bool GIFReader::ReadGlobalHeader() bGlobalPalette = ( nRF & 0x80 );
if( bGlobalPalette )- ReadPaletteEntries( &aGPalette, 1 << ( ( nRF & 7 ) + 1 )
);+ ReadPaletteEntries( &aGPalette, 1i64 << ( ( nRF & 7 ) + 1 ) );
else nBackgroundColor = 0; @@ -459,7 +459,7 @@ bool
GIFReader::ReadLocalHeader() if( nFlags & 0x80 ) { pPal = &aLPalette;-
ReadPaletteEntries( pPal, 1 << ( (nFlags & 7 ) + 1 ) );+ ReadPaletteEntries(
pPal, 1i64 << ( (nFlags & 7 ) + 1 ) ); } else pPal = &aGPalette;
Context
- C2220: warning treated as error (64 bit MSVC 2015) · Luke Benes
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.