[Libreoffice-commits] core.git: slideshow/source

Stephan Bergmann (via logerrit) logerrit at kemper.freedesktop.org
Thu Mar 11 12:32:02 UTC 2021


 slideshow/source/engine/opengl/Operation.cxx |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit d148113591c554a3c6d8223767159334c014ad0c
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Thu Mar 11 09:02:18 2021 +0100
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Thu Mar 11 13:31:20 2021 +0100

    Work around MSVC 2019 16.9.0 warning C4103 compiler bug
    
    With that compiler version (and --with-latest-c++), the build now started to
    fail for me with
    
    > [build CXX] slideshow/source/engine/opengl/Operation.cxx
    > C:\PROGRA~2\MIB055~1\2019\COMMUN~1\VC\Tools\MSVC\1428~1.299\Include\memory(14): error C2220: the following warning is treated as an error
    > C:\PROGRA~2\MIB055~1\2019\COMMUN~1\VC\Tools\MSVC\1428~1.299\Include\memory(14): warning C4103: alignment changed after including header, may be due to missing #pragma pack(pop)
    > C:\lo\core\slideshow\source\engine\opengl\Operation.hxx(34): warning C4103: alignment changed after including header, may be due to missing #pragma pack(pop)
    > C:/lo/core/slideshow/source/engine/opengl/Operation.cxx(36): warning C4103: alignment changed after including header, may be due to missing #pragma pack(pop)
    
    Mike had experienced the same (though without --with-latest-c++, but due to us
    now always using /permissive-) as explained in the post-merge comments starting
    at <https://gerrit.libreoffice.org/c/core/+/108961/4#
    message-cc2a1e2ebaeb96cbacd7d13d57ffc701f2ed4608> "Use MSVC's /permissive- to
    make it more standards conforming", linking to
    <https://developercommunity.visualstudio.com/t/
    warning-c4103-in-visual-studio-166-update/1057589> "Warning C4103 in Visual
    Studio 16.6 Update".
    
    At least for my --with-latest-c++ aka /std:c++latest case, I have reduced the
    issue to a test.cc of
    
    > #include <cmath>
    > template<typename> void f(int[1]) {}
    > #include <exception>
    
    failing with
    
    > **********************************************************************
    > ** Visual Studio 2019 Developer Command Prompt v16.9.0
    > ** Copyright (c) 2021 Microsoft Corporation
    > **********************************************************************
    > [vcvarsall.bat] Environment initialized for: 'x64'
    >
    > C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>cd \lo\core
    >
    > C:\test>cl /std:c++latest /c test.cc
    > Microsoft (R) C/C++ Optimizing Compiler Version 19.28.29910 for x64
    > Copyright (C) Microsoft Corporation.  All rights reserved.
    >
    > /std:c++latest is provided as a preview of language features from the latest C++
    >
    > working draft, and we're eager to hear about bugs and suggestions for improvemen
    > ts.
    > However, note that these features are provided as-is without support, and subjec
    > t
    > to changes or removal as the working draft evolves. See
    > https://go.microsoft.com/fwlink/?linkid=2045807 for details.
    >
    > test.cc
    > test.cc(3): warning C4103: alignment changed after including header, may be due
    > to missing #pragma pack(pop)
    
    which looks clearly like a compiler bug.
    
    As it happens, reordering the includes here makes the issue disappear at least
    for me.
    
    Change-Id: Ib3d0756b38da4f24e62cafa900b44c8ec8e842b0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112317
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/slideshow/source/engine/opengl/Operation.cxx b/slideshow/source/engine/opengl/Operation.cxx
index e70f203edad7..ec83d6b74c32 100644
--- a/slideshow/source/engine/opengl/Operation.cxx
+++ b/slideshow/source/engine/opengl/Operation.cxx
@@ -28,13 +28,13 @@
 
 #include <sal/config.h>
 
+#include "Operation.hxx"
+
 #include <basegfx/numeric/ftools.hxx>
 
 #include <glm/gtc/matrix_transform.hpp>
 #include <glm/gtc/type_ptr.hpp>
 
-#include "Operation.hxx"
-
 SRotate::SRotate(const glm::vec3& Axis, const glm::vec3& Origin,
         double Angle, bool bInter, double T0, double T1):
     Operation(bInter, T0, T1),


More information about the Libreoffice-commits mailing list