[Bug 271355] textproc/p5-XML-LibXML: fix build with clang 16

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 10 May 2023 19:24:06 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271355

            Bug ID: 271355
           Summary: textproc/p5-XML-LibXML: fix build with clang 16
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: perl@FreeBSD.org
          Reporter: dim@FreeBSD.org
          Assignee: perl@FreeBSD.org
             Flags: maintainer-feedback?(perl@FreeBSD.org)

Clang 16 has a new error about incompatible function types, which shows
up when building textproc/p5-XML-LibXML:

  perl-libxml-mm.c:142:18: error: incompatible function pointer types passing
'void (void *, void *, xmlChar *)' (aka 'void (void *, void *, unsigned char
*)') to parameter of type 'xmlHashScanner' (aka 'void (*)(void *, void *, const
unsigned char *)') [-Wincompatible-function-pointer-types]
                  xmlHashScan(r, PmmRegistryDumpHashScanner, NULL);
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
  /usr/local/include/libxml2/libxml/hash.h:213:22: note: passing argument to
parameter 'f' here
                                           xmlHashScanner f,
                                                          ^
  perl-libxml-mm.c:234:44: error: incompatible function pointer types passing
'void (void *, xmlChar *)' (aka 'void (void *, unsigned char *)') to parameter
of type 'xmlHashDeallocator' (aka 'void (*)(void *, const unsigned char *)')
[-Wincompatible-function-pointer-types]
          if( xmlHashRemoveEntry(PmmREGISTRY, name, PmmRegistryHashDeallocator)
)
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~
  /usr/local/include/libxml2/libxml/hash.h:160:47: note: passing argument to
parameter 'f' here
                             xmlHashDeallocator f);
                                                ^
  perl-libxml-mm.c:301:38: error: incompatible function pointer types passing
'void *(void *, xmlChar *)' (aka 'void *(void *, unsigned char *)') to
parameter of type 'xmlHashCopier' (aka 'void *(*)(void *, const unsigned char
*)') [-Wincompatible-function-pointer-types]
          reg_copy = xmlHashCopy(PmmREGISTRY, PmmRegistryHashCopier);
                                              ^~~~~~~~~~~~~~~~~~~~~
  /usr/local/include/libxml2/libxml/hash.h:208:21: note: passing argument to
parameter 'f' here
                                           xmlHashCopier f);
                                                         ^

In all three cases, the libxml2 callback functions require const xmlChar
pointers, so fix the parameters in their definitions.

-- 
You are receiving this mail because:
You are the assignee for the bug.