<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div>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:</div><div><br></div><div><div>[build CXX] vcl/source/filter/jpeg/Exif.cxx</div><div>/core/vcl/source/filter/igif/gifread.cxx(251): error C2220: warning treated as error - no 'object' file generated</div><div>/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?)</div><div>/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?)</div><div>[build CXX] vcl/source/filter/jpeg/jpeg.cxx</div><div>/core/solenv/gbuild/LinkTarget.mk:189: recipe for target '/core/workdir/CxxObject/vcl/source/filter/igif/gifread.o' failed</div><div>make[1]: *** [/core/workdir/CxxObject/vcl/source/filter/igif/gifread.o] Error 2</div><div>make[1]: *** Waiting for unfinished jobs....</div><div>Makefile:257: recipe for target 'build' failed</div><div>make: *** [build] Error 2</div></div><div><br></div><div>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?</div><div><br></div><div>The following incorrect/bad hack allowed me to build it:</div><div><br></div><div><div>diff --git a/oox/source/ole/vbainputstream.cxx b/oox/source/ole/vbainputstream.cxx</div><div>index 65eb91c..db87aca 100644</div><div>--- a/oox/source/ole/vbainputstream.cxx</div><div>+++ b/oox/source/ole/vbainputstream.cxx</div><div>@@ -157,7 +157,7 @@ bool VbaInputStream::updateChunk()</div><div>                     sal_uInt16 nCopyToken = mpInStrm->readuInt16();</div><div>                     nChunkPos = nChunkPos + 2;</div><div>                     // update bit count used for offset/length in the token</div><div>-                    while( static_cast< size_t >( 1 << nBitCount ) < maChunk.size() ) ++nBitCount;</div><div>+                    while( static_cast< size_t >( 1i64 << nBitCount ) < maChunk.size() ) ++nBitCount;</div><div>                     // extract length from lower (16-nBitCount) bits, plus 3</div><div>                     sal_uInt16 nLength = extractValue< sal_uInt16 >( nCopyToken, 0, 16 - nBitCount ) + 3;</div><div>                     // extract offset from high nBitCount bits, plus 1</div><div>diff --git a/vcl/source/filter/igif/gifread.cxx b/vcl/source/filter/igif/gifread.cxx</div><div>index 01060ab..ba3a2fc 100644</div><div>--- a/vcl/source/filter/igif/gifread.cxx</div><div>+++ b/vcl/source/filter/igif/gifread.cxx</div><div>@@ -248,7 +248,7 @@ bool GIFReader::ReadGlobalHeader()</div><div>                 bGlobalPalette = ( nRF & 0x80 );</div><div> </div><div>                 if( bGlobalPalette )</div><div>-                    ReadPaletteEntries( &aGPalette, 1 << ( ( nRF & 7 ) + 1 ) );</div><div>+                    ReadPaletteEntries( &aGPalette, 1i64 << ( ( nRF & 7 ) + 1 ) );</div><div>                 else</div><div>                     nBackgroundColor = 0;</div><div> </div><div>@@ -459,7 +459,7 @@ bool GIFReader::ReadLocalHeader()</div><div>         if( nFlags & 0x80 )</div><div>         {</div><div>             pPal = &aLPalette;</div><div>-            ReadPaletteEntries( pPal, 1 << ( (nFlags & 7 ) + 1 ) );</div><div>+            ReadPaletteEntries( pPal, 1i64 << ( (nFlags & 7 ) + 1 ) );</div><div>         }</div><div>         else</div><div>             pPal = &aGPalette;</div></div><div><br></div>                                           </div></body>
</html>