The VIR_XPATH_NODE_AUTORESTORE contains an ignore_value
statement to silence an unused variable warning on clang.
Use a pragma instead, which is not a statement.
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
---
src/internal.h | 5 +++++
src/util/virxml.h | 3 ++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/internal.h b/src/internal.h
index 3bab6b4bfe..3aa3c6ca67 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -189,6 +189,11 @@
_Pragma ("GCC diagnostic push")
#endif
+/* Where ignore_value cannot be used because it's a statement */
+#define VIR_WARNINGS_NO_UNUSED_VARIABLE \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wunused-variable\"")
+
#define VIR_WARNINGS_RESET \
_Pragma ("GCC diagnostic pop")
diff --git a/src/util/virxml.h b/src/util/virxml.h
index 886d1e025f..0301f15308 100644
--- a/src/util/virxml.h
+++ b/src/util/virxml.h
@@ -241,9 +241,10 @@ G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(virXPathContextNodeSave,
virXPathContextNodeRes
* node pointer is reset to the original value when this macro was used.
*/
#define VIR_XPATH_NODE_AUTORESTORE(_ctxt) \
+ VIR_WARNINGS_NO_UNUSED_VARIABLE \
g_auto(virXPathContextNodeSave) _ctxt ## CtxtSave = { .ctxt = _ctxt,\
.node = _ctxt->node}; \
- ignore_value(&_ctxt ## CtxtSave)
+ VIR_WARNINGS_RESET
G_DEFINE_AUTOPTR_CLEANUP_FUNC(xmlDoc, xmlFreeDoc);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(xmlXPathContext, xmlXPathFreeContext);
--
2.26.2