virpci: Clarify lifetime of temporary object

The virPCIDeviceIsBehindSwitchLackingACS() function checks
whether given PCI device is not behind a switch that lacks ACS.
It does so by starting at given device and traversing up, one
parent at time towards the root. The parent device is obtained
via virPCIDeviceGetParent() which allocates new virPCIDevice
structure. For freeing the structure we use g_autoptr() and a
temporary variable @tmp. However, Clang fails to understand our
clever algorithm and complains that the variable is set but never
used. This is obviously a false positive, but using a small trick
we can shut Clang up.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
Michal Privoznik 2021-08-23 12:47:07 +02:00
parent 97e4fb3c10
commit 8340ce57b4

View File

@ -2150,8 +2150,8 @@ virPCIDeviceIsBehindSwitchLackingACS(virPCIDevice *dev)
return 1;
}
tmp = parent;
ret = virPCIDeviceGetParent(parent, &parent);
tmp = g_steal_pointer(&parent);
ret = virPCIDeviceGetParent(tmp, &parent);
if (ret < 0)
return -1;
} while (parent);