From 1ff2d13b7d53316fc3df0b6ed09eacb74c2cc76b Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 27 Aug 2021 09:53:18 +0200 Subject: [PATCH] platform: workaround -Wmaybe-uninitialized with LTO With LTO builds, it assumes that the assertion-failed code-paths can be reached, and thus a warning gets emitted: In function nmp_cache_lookup, inlined from nm_platform_lookup at src/libnm-platform/nm-platform.c:3377:12, inlined from nm_platform_lookup_object at ./src/libnm-platform/nmp-object.h:975:12: src/libnm-platform/nmp-object.h:742:46: error: lookup.cache_id_type may be used uninitialized [-Werror=maybe-uninitialized] 742 | return nmp_cache_lookup_all(cache, lookup->cache_id_type, &lookup->selector_obj); | ^ ./src/libnm-platform/nmp-object.h: In function nm_platform_lookup_object: ./src/libnm-platform/nmp-object.h:972:15: note: lookup declared here 972 | NMPLookup lookup; | ^ --- src/libnm-platform/nmp-object.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libnm-platform/nmp-object.c b/src/libnm-platform/nmp-object.c index f7fbfe9809..72dfbfbddf 100644 --- a/src/libnm-platform/nmp-object.c +++ b/src/libnm-platform/nmp-object.c @@ -2078,6 +2078,9 @@ nmp_lookup_init_obj_type(NMPLookup *lookup, NMPObjectType obj_type) nm_assert(lookup); switch (obj_type) { + default: + nm_assert_not_reached(); + /* fall-through */ case NMP_OBJECT_TYPE_LINK: case NMP_OBJECT_TYPE_IP4_ADDRESS: case NMP_OBJECT_TYPE_IP6_ADDRESS: @@ -2089,9 +2092,6 @@ nmp_lookup_init_obj_type(NMPLookup *lookup, NMPObjectType obj_type) _nmp_object_stackinit_from_type(&lookup->selector_obj, obj_type); lookup->cache_id_type = NMP_CACHE_ID_TYPE_OBJECT_TYPE; return _L(lookup); - default: - nm_assert_not_reached(); - return NULL; } } @@ -2106,7 +2106,7 @@ nmp_lookup_init_link_by_ifname(NMPLookup *lookup, const char *ifname) o = _nmp_object_stackinit_from_type(&lookup->selector_obj, NMP_OBJECT_TYPE_LINK); if (g_strlcpy(o->link.name, ifname, sizeof(o->link.name)) >= sizeof(o->link.name)) - g_return_val_if_reached(NULL); + nm_assert_not_reached(); lookup->cache_id_type = NMP_CACHE_ID_TYPE_LINK_BY_IFNAME; return _L(lookup); }