gentoo-ebuilds/app-text/xmlstarlet/files/xmlstarlet-1.6.1-clang17.patch
Sebastian Pipping 5608550073
app-text/xmlstarlet: Fix compilation for Clang >=17
Closes: https://bugs.gentoo.org/927838
Signed-off-by: Sebastian Pipping <sping@gentoo.org>
2024-03-27 23:45:51 +01:00

59 lines
2.4 KiB
Diff
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From e1da090da24f5620784daf853eb1353aa164583f Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Wed, 27 Mar 2024 23:25:39 +0100
Subject: [PATCH] Address -Wincompatible-function-pointer-types for Clang 17
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Also showed with -Werror=incompatible-pointer-types with GCC.
Bug: https://bugs.gentoo.org/927838
Symptom with GCC was:
> src/xml.c: In function main:
> src/xml.c:300:43: error: passing argument 2 of xmlSetStructuredErrorFunc from incompatible pointer type [-Werror=incompatible-pointer-types]
> 300 | xmlSetStructuredErrorFunc(&errorInfo, reportError);
> | ^~~~~~~~~~~
> | |
> | void (*)(void *, xmlError *) {aka void (*)(void *, struct _xmlError *)}
> In file included from /usr/include/libxml2/libxml/valid.h:15,
> from /usr/include/libxml2/libxml/parser.h:19,
> from /usr/include/libxml2/libxml/tree.h:17,
> from /usr/include/libxslt/xslt.h:13,
> from src/xml.c:37:
> /usr/include/libxml2/libxml/xmlerror.h:898:57: note: expected xmlStructuredErrorFunc {aka void (*)(void *, const struct _xmlError *)} but argument is of type void (*)(void *, xmlError *) {aka void (*)(void *, struct _xmlError *)}
---
src/xml.c | 2 +-
src/xmlstar.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/xml.c b/src/xml.c
index cf47cc2..e6f19c1 100644
--- a/src/xml.c
+++ b/src/xml.c
@@ -104,7 +104,7 @@ void reportGenericError(void* ctx, const char * msg, ...) {
/* by default all errors are reported */
static ErrorInfo errorInfo = { NULL, NULL, VERBOSE, CONTINUE };
-void reportError(void *ptr, xmlErrorPtr error)
+void reportError(void *ptr, const xmlError *error)
{
ErrorInfo *errorInfo = (ErrorInfo*) ptr;
assert(errorInfo);
diff --git a/src/xmlstar.h b/src/xmlstar.h
index 3e1eed3..e8d7177 100644
--- a/src/xmlstar.h
+++ b/src/xmlstar.h
@@ -32,7 +32,7 @@ typedef struct _errorInfo {
ErrorStop stop;
} ErrorInfo;
-void reportError(void *ptr, xmlErrorPtr error);
+void reportError(void *ptr, const xmlError *error);
void suppressErrors(void);
typedef struct _gOptions {
--
2.44.0