On Thu, Jan 27, 2022 at 02:01:40PM +0100, František Šumšal wrote:
Looks like the culprit is:
In file included from common/mptPathString.cpp:13: ./src/mpt/uuid/uuid.hpp: In constructor 'constexpr mpt::mpt_libopenmpt::UUID::UUID()': ./src/mpt/uuid/uuid.hpp:195:17: error: 'goto' is not a constant expression 195 | return; | ^~~~~~ ./src/mpt/uuid/uuid.hpp: In constructor 'constexpr mpt::mpt_libopenmpt::UUID::UUID(mpt::mpt_libopenmpt::uint32, mpt::mpt_libopenmpt::uint16, mpt::mpt_libopenmpt::uint16, mpt::mpt_libopenmpt::uint64)': ./src/mpt/uuid/uuid.hpp:202:17: error: 'goto' is not a constant expression 202 | return; | ^~~~~~
That is weird. Tried struct UUID { private: unsigned int Data1; unsigned short Data2; unsigned short Data3; unsigned long long Data4; public: constexpr inline UUID() noexcept : Data1(0), Data2(0), Data3(0), Data4(0) { return; } constexpr inline explicit UUID(unsigned int Data1, unsigned short Data2, unsigned short Data3, unsigned long long Data4) noexcept : Data1(Data1), Data2(Data2), Data3(Data3), Data4(Data4) { return; } };
constexpr UUID a; constexpr UUID b{1, 2, 3, 4}; constexpr UUID c(1, 2, 3, 4); but that compiles just fine, so I'll need a preprocessed source + g++ command line options.
Jakub