From 7cef010bfec58a528baf107855a75e985cf8b8fc Mon Sep 17 00:00:00 2001 From: elsid Date: Sun, 20 Apr 2025 13:31:19 +0200 Subject: [PATCH] Fix warning: -Wmaybe-uninitialized In member function 'ESM::RefId {anonymous}::IdGettingVisitor::operator()(const MWWorld::Ptr&) const', inlined from 'constexpr _Res std::__invoke_impl(__invoke_other, _Fn&&, _Args&& ...) [with _Res = ESM::RefId; _Fn = {anonymous}::IdGettingVisitor; _Args = {const MWWorld::Ptr&}]' at /usr/include/c++/13/bits/invoke.h:61:36, inlined from 'constexpr typename std::__invoke_result<_Functor, _ArgTypes>::type std::__invoke(_Callable&&, _Args&& ...) [with _Callable = {anonymous}::IdGettingVisitor; _Args = {const MWWorld::Ptr&}]' at /usr/include/c++/13/bits/invoke.h:96:40, inlined from 'static constexpr decltype(auto) std::__detail::__variant::__gen_vtable_impl, std::integer_sequence >::__visit_invoke(_Visitor&&, _Variants ...) [with _Result_type = std::__detail::__variant::__deduce_visit_result; _Visitor = {anonymous}::IdGettingVisitor&&; _Variants = {const std::variant >&}; long unsigned int ...__indices = {0}]' at /usr/include/c++/13/variant:1060:24, inlined from 'constexpr decltype(auto) std::__do_visit(_Visitor&&, _Variants&& ...) [with _Result_type = __detail::__variant::__deduce_visit_result; _Visitor = {anonymous}::IdGettingVisitor; _Variants = {const variant >&}]' at /usr/include/c++/13/variant:1815:5, inlined from 'constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = {anonymous}::IdGettingVisitor; _Variants = {const variant >&}]' at /usr/include/c++/13/variant:1878:34, inlined from 'ESM::RefId MWScript::GlobalScriptDesc::getId() const' at ../../../apps/openmw/mwscript/globalscripts.cpp:120:26: ../../../apps/openmw/mwscript/globalscripts.cpp:91:35: error: '*(const uint32_t*)((char*)& + offsetof(ESM::RefId, ESM::RefId::mValue.std::variant::.std::__detail::__variant::_Variant_base::.std::__detail::__variant::_Move_assign_base::.std::__detail::__variant::_Copy_assign_base::.std::__detail::__variant::_Move_ctor_base::.std::__detail::__variant::_Copy_ctor_base::.std::__detail::__variant::_Variant_storage::_M_u))' may be used uninitialized [-Werror=maybe-uninitialized] 91 | return ESM::RefId(); | ^ ../../../apps/openmw/mwscript/globalscripts.cpp: In member function 'ESM::RefId MWScript::GlobalScriptDesc::getId() const': ../../../apps/openmw/mwscript/globalscripts.cpp:91:35: note: '' declared here 91 | return ESM::RefId(); | ^ --- components/esm/refid.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/components/esm/refid.hpp b/components/esm/refid.hpp index 174652419a..919ff59223 100644 --- a/components/esm/refid.hpp +++ b/components/esm/refid.hpp @@ -70,7 +70,10 @@ namespace ESM static RefId esm3ExteriorCell(int32_t x, int32_t y) { return RefId(ESM3ExteriorCellRefId(x, y)); } - constexpr RefId() = default; + constexpr RefId() noexcept + : mValue(EmptyRefId{}) + { + } constexpr RefId(EmptyRefId value) noexcept : mValue(value)