From fe345a6e630f0edc89ab3e5f831bfdb066343a68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 4 Dec 2022 20:59:44 +0100 Subject: [PATCH] Trade: can't define a bitfield out of different types on MSVC. It does something completely insane if I do that, apparently. WHY. --- src/Magnum/Trade/SceneData.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Magnum/Trade/SceneData.cpp b/src/Magnum/Trade/SceneData.cpp index ad14ed04f..cc9d70a0a 100644 --- a/src/Magnum/Trade/SceneData.cpp +++ b/src/Magnum/Trade/SceneData.cpp @@ -640,7 +640,10 @@ namespace { inline Long extractStringFieldOffset(const UnsignedLong strideOffset) { union { struct { - Short + /* Short would work on GCC / Clang but causes everything to catch + fire on MSVC. Somehow. Now I see why bitfields are not + recommended. */ + Long #ifdef CORRADE_MSVC2015_COMPATIBILITY _dummy /* "error C2059: syntax error: ':'" otherwise, heh */ #endif