D: [iurt_root_command] chroot
Building target platforms: x86_64
Building for target x86_64
Installing /home/pterjan/rpmbuild/SRPMS/perl-Clownfish-0.6.3-13.mga10.src.rpm
Executing(%mkbuilddir): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.Voe2c7
Executing(%prep): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.VDayCo
+ umask 022
+ cd /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build
+ '[' 1 -eq 1 ']'
+ '[' 1 -eq 1 ']'
+ '[' 1 -eq 1 ']'
+ cd /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build
+ rm -rf Clownfish-0.6.3
+ /usr/lib/rpm/rpmuncompress -x /home/pterjan/rpmbuild/SOURCES/Clownfish-0.6.3.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd Clownfish-0.6.3
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.hQ508Y
+ umask 022
+ cd /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build
+ CFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full'
+ export CFLAGS
+ CXXFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full'
+ export CXXFLAGS
+ FFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full '
+ export FFLAGS
+ FCFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none --cap-lints=warn'
+ export RUSTFLAGS
+ LDFLAGS='-Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--build-id=sha1 -Wl,--enable-new-dtags -specs=/usr/lib/rpm/redhat/redhat-hardened-ld'
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib64:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ cd Clownfish-0.6.3
+ '[' 1 -eq 1 ']'
+ '[' 1 -eq 1 ']'
+ /usr/bin/perl Build.PL --installdirs=vendor
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Clownfish' version '0.6.3'
+ ./Build
Building Clownfish
Parsing Clownfish files...
Writing Clownfish autogenerated files...
Writing typemap...

Compiling ./charmonizer...


Running ./charmonizer...

./charmonizer --cc=gcc --host=perl --enable-c --enable-perl --make=make --enable-makefile -- -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE
Initializing Charmonizer/Core/OperatingSystem...
Detected POSIX shell
Creating compiler object...
Trying to compile and execute a small test file...
Detected binary format: ELF
Initialization complete.
Running BuildEnv module...
Running DirManip module...
Running Headers module...
Running AtomicOps module...
Running FuncMacro module...
Running Booleans module...
Running Integers module...
Running IntegerTypes module...
Running IntegerLimits module...
Running IntegerLiterals module...
Running IntegerFormatStrings module...
Running Floats module...
Running LargeFiles module...
Running Memory module...
Running VariadicMacros module...
Running LocalDefinitions module...
Creating Makefile...
Cleaning up...
Cleanup complete.
make core_objects
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/Method.c -c -o cfcore/Clownfish/Method.o
In file included from autogen/include/Clownfish/Method.h:40,
                 from cfcore/Clownfish/Method.c:22:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cfcore/Clownfish/Method.c:23:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/Vector.c -c -o cfcore/Clownfish/Vector.o
In file included from autogen/include/Clownfish/Class.h:40,
                 from cfcore/Clownfish/Vector.c:23:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/Vector.c:25:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/Num.c -c -o cfcore/Clownfish/Num.o
In file included from autogen/include/Clownfish/Num.h:40,
                 from cfcore/Clownfish/Num.c:25:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cfcore/Clownfish/Num.c:26:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/CharBuf.c -c -o cfcore/Clownfish/CharBuf.o
In file included from autogen/include/Clownfish/CharBuf.h:40,
                 from cfcore/Clownfish/CharBuf.c:28:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/CharBuf.c:30:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/Util/Memory.c -c -o cfcore/Clownfish/Util/Memory.o
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/Util/SortUtils.c -c -o cfcore/Clownfish/Util/SortUtils.o
In file included from autogen/include/Clownfish/Err.h:47,
                 from cfcore/Clownfish/Util/SortUtils.c:22:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/Util/Atomic.c -c -o cfcore/Clownfish/Util/Atomic.o
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/Err.c -c -o cfcore/Clownfish/Err.o
In file included from autogen/include/Clownfish/Err.h:47,
                 from cfcore/Clownfish/Err.c:27:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/String.c -c -o cfcore/Clownfish/String.o
In file included from autogen/include/Clownfish/Class.h:40,
                 from cfcore/Clownfish/String.c:26:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cfcore/Clownfish/String.c:27:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/Class.h:35:
cfcore/Clownfish/String.c: In function 'CFISH_Str_Hash_Sum_IMP':
autogen/include/cfish_parcel.h:102:7: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
  102 |      ((_full_meth ## _t)cfish_method(_class, _full_meth ## _OFFSET))
      |       ^
autogen/include/cfish_parcel.h:252:36: note: in expansion of macro 'CFISH_METHOD_PTR'
  252 |   #define METHOD_PTR               CFISH_METHOD_PTR
      |                                    ^~~~~~~~~~~~~~~~
cfcore/Clownfish/String.c:357:33: note: in expansion of macro 'METHOD_PTR'
  357 |     const StrIter_Next_t next = METHOD_PTR(STRINGITERATOR, CFISH_StrIter_Next);
      |                                 ^~~~~~~~~~
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/HashIterator.c -c -o cfcore/Clownfish/HashIterator.o
In file included from autogen/include/Clownfish/Class.h:40,
                 from cfcore/Clownfish/HashIterator.c:21:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/HashIterator.c:22:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/PtrHash.c -c -o cfcore/Clownfish/PtrHash.o
In file included from autogen/include/Clownfish/Err.h:47,
                 from cfcore/Clownfish/PtrHash.c:24:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/TestHarness/TestBatchRunner.c -c -o cfcore/Clownfish/TestHarness/TestBatchRunner.o
In file included from autogen/include/Clownfish/TestHarness/TestBatchRunner.h:40,
                 from cfcore/Clownfish/TestHarness/TestBatchRunner.c:26:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cfcore/Clownfish/TestHarness/TestBatchRunner.c:28:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/TestHarness/TestBatchRunner.c:30:
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/TestHarness/TestBatchRunner.c:31:
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:173:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatter *, void *)' [-Wcast-function-type]
  173 |     const CFISH_TestFormatter_To_Host_t method = (CFISH_TestFormatter_To_Host_t)cfish_obj_method(self, CFISH_TestFormatter_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:180:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatter *)' [-Wcast-function-type]
  180 |     const CFISH_TestFormatter_Clone_t method = (CFISH_TestFormatter_Clone_t)cfish_obj_method(self, CFISH_TestFormatter_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:187:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatter *, cfish_Obj *)' [-Wcast-function-type]
  187 |     const CFISH_TestFormatter_Equals_t method = (CFISH_TestFormatter_Equals_t)cfish_obj_method(self, CFISH_TestFormatter_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:194:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatter *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatter *, cfish_Obj *)'} [-Wcast-function-type]
  194 |     const CFISH_TestFormatter_Compare_To_t method = (CFISH_TestFormatter_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatter_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:208:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatter *)' [-Wcast-function-type]
  208 |     const CFISH_TestFormatter_To_String_t method = (CFISH_TestFormatter_To_String_t)cfish_obj_method(self, CFISH_TestFormatter_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:215:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  215 |     const CFISH_TestFormatter_Batch_Prologue_t method = (CFISH_TestFormatter_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatter_Batch_Prologue_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:222:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  222 |     const CFISH_TestFormatter_VTest_Result_t method = (CFISH_TestFormatter_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Result_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:229:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  229 |     const CFISH_TestFormatter_VTest_Skip_t method = (CFISH_TestFormatter_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Skip_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:236:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' [-Wcast-function-type]
  236 |     const CFISH_TestFormatter_VTest_Comment_t method = (CFISH_TestFormatter_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Comment_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:243:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' [-Wcast-function-type]
  243 |     const CFISH_TestFormatter_VBatch_Comment_t method = (CFISH_TestFormatter_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatter_VBatch_Comment_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:250:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  250 |     const CFISH_TestFormatter_Summary_t method = (CFISH_TestFormatter_Summary_t)cfish_obj_method(self, CFISH_TestFormatter_Summary_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:459:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatterCF *, void *)' [-Wcast-function-type]
  459 |     const CFISH_TestFormatterCF_To_Host_t method = (CFISH_TestFormatterCF_To_Host_t)cfish_obj_method(self, CFISH_TestFormatterCF_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:466:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatterCF *)' [-Wcast-function-type]
  466 |     const CFISH_TestFormatterCF_Clone_t method = (CFISH_TestFormatterCF_Clone_t)cfish_obj_method(self, CFISH_TestFormatterCF_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:473:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatterCF *, cfish_Obj *)' [-Wcast-function-type]
  473 |     const CFISH_TestFormatterCF_Equals_t method = (CFISH_TestFormatterCF_Equals_t)cfish_obj_method(self, CFISH_TestFormatterCF_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:480:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatterCF *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatterCF *, cfish_Obj *)'} [-Wcast-function-type]
  480 |     const CFISH_TestFormatterCF_Compare_To_t method = (CFISH_TestFormatterCF_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatterCF_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:494:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatterCF *)' [-Wcast-function-type]
  494 |     const CFISH_TestFormatterCF_To_String_t method = (CFISH_TestFormatterCF_To_String_t)cfish_obj_method(self, CFISH_TestFormatterCF_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:501:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  501 |     const CFISH_TestFormatterCF_Batch_Prologue_t method = (CFISH_TestFormatterCF_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatterCF_Batch_Prologue_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:508:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  508 |     const CFISH_TestFormatterCF_VTest_Result_t method = (CFISH_TestFormatterCF_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Result_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:515:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  515 |     const CFISH_TestFormatterCF_VTest_Skip_t method = (CFISH_TestFormatterCF_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Skip_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:522:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' [-Wcast-function-type]
  522 |     const CFISH_TestFormatterCF_VTest_Comment_t method = (CFISH_TestFormatterCF_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Comment_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:529:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' [-Wcast-function-type]
  529 |     const CFISH_TestFormatterCF_VBatch_Comment_t method = (CFISH_TestFormatterCF_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatterCF_VBatch_Comment_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:536:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  536 |     const CFISH_TestFormatterCF_Summary_t method = (CFISH_TestFormatterCF_Summary_t)cfish_obj_method(self, CFISH_TestFormatterCF_Summary_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:725:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatterTAP *, void *)' [-Wcast-function-type]
  725 |     const CFISH_TestFormatterTAP_To_Host_t method = (CFISH_TestFormatterTAP_To_Host_t)cfish_obj_method(self, CFISH_TestFormatterTAP_To_Host_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:732:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatterTAP *)' [-Wcast-function-type]
  732 |     const CFISH_TestFormatterTAP_Clone_t method = (CFISH_TestFormatterTAP_Clone_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Clone_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:739:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatterTAP *, cfish_Obj *)' [-Wcast-function-type]
  739 |     const CFISH_TestFormatterTAP_Equals_t method = (CFISH_TestFormatterTAP_Equals_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Equals_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:746:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatterTAP *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatterTAP *, cfish_Obj *)'} [-Wcast-function-type]
  746 |     const CFISH_TestFormatterTAP_Compare_To_t method = (CFISH_TestFormatterTAP_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Compare_To_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:760:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatterTAP *)' [-Wcast-function-type]
  760 |     const CFISH_TestFormatterTAP_To_String_t method = (CFISH_TestFormatterTAP_To_String_t)cfish_obj_method(self, CFISH_TestFormatterTAP_To_String_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:767:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  767 |     const CFISH_TestFormatterTAP_Batch_Prologue_t method = (CFISH_TestFormatterTAP_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Batch_Prologue_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:774:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  774 |     const CFISH_TestFormatterTAP_VTest_Result_t method = (CFISH_TestFormatterTAP_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Result_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:781:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  781 |     const CFISH_TestFormatterTAP_VTest_Skip_t method = (CFISH_TestFormatterTAP_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Skip_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:788:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' [-Wcast-function-type]
  788 |     const CFISH_TestFormatterTAP_VTest_Comment_t method = (CFISH_TestFormatterTAP_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Comment_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:795:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' [-Wcast-function-type]
  795 |     const CFISH_TestFormatterTAP_VBatch_Comment_t method = (CFISH_TestFormatterTAP_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VBatch_Comment_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:802:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  802 |     const CFISH_TestFormatterTAP_Summary_t method = (CFISH_TestFormatterTAP_Summary_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Summary_OFFSET);
      |                                                     ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/TestHarness/TestSuiteRunner.c -c -o cfcore/Clownfish/TestHarness/TestSuiteRunner.o
In file included from autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:40,
                 from cfcore/Clownfish/TestHarness/TestSuiteRunner.c:20:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:175:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestSuiteRunner *, void *)' [-Wcast-function-type]
  175 |     const CFISH_TestSuiteRunner_To_Host_t method = (CFISH_TestSuiteRunner_To_Host_t)cfish_obj_method(self, CFISH_TestSuiteRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Clone':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:182:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  182 |     const CFISH_TestSuiteRunner_Clone_t method = (CFISH_TestSuiteRunner_Clone_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Equals':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:189:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *, cfish_Obj *)' [-Wcast-function-type]
  189 |     const CFISH_TestSuiteRunner_Equals_t method = (CFISH_TestSuiteRunner_Equals_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:196:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestSuiteRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestSuiteRunner *, cfish_Obj *)'} [-Wcast-function-type]
  196 |     const CFISH_TestSuiteRunner_Compare_To_t method = (CFISH_TestSuiteRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_To_String':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:210:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  210 |     const CFISH_TestSuiteRunner_To_String_t method = (CFISH_TestSuiteRunner_To_String_t)cfish_obj_method(self, CFISH_TestSuiteRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:217:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  217 |     const CFISH_TestSuiteRunner_Run_Batch_t method = (CFISH_TestSuiteRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Finish':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:224:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  224 |     const CFISH_TestSuiteRunner_Finish_t method = (CFISH_TestSuiteRunner_Finish_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Finish_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:231:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  231 |     const CFISH_TestSuiteRunner_Get_Num_Tests_t method = (CFISH_TestSuiteRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Tests_Failed':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:238:65: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  238 |     const CFISH_TestSuiteRunner_Get_Num_Tests_Failed_t method = (CFISH_TestSuiteRunner_Get_Num_Tests_Failed_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Tests_Failed_OFFSET);
      |                                                                 ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Batches':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:245:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  245 |     const CFISH_TestSuiteRunner_Get_Num_Batches_t method = (CFISH_TestSuiteRunner_Get_Num_Batches_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Batches_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Batches_Failed':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:252:67: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  252 |     const CFISH_TestSuiteRunner_Get_Num_Batches_Failed_t method = (CFISH_TestSuiteRunner_Get_Num_Batches_Failed_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Batches_Failed_OFFSET);
      |                                                                   ^
In file included from cfcore/Clownfish/TestHarness/TestSuiteRunner.c:22:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/TestHarness/TestSuiteRunner.c:23:
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/TestHarness/TestSuiteRunner.c:24:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
In file included from cfcore/Clownfish/TestHarness/TestSuiteRunner.c:25:
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:173:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatter *, void *)' [-Wcast-function-type]
  173 |     const CFISH_TestFormatter_To_Host_t method = (CFISH_TestFormatter_To_Host_t)cfish_obj_method(self, CFISH_TestFormatter_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:180:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatter *)' [-Wcast-function-type]
  180 |     const CFISH_TestFormatter_Clone_t method = (CFISH_TestFormatter_Clone_t)cfish_obj_method(self, CFISH_TestFormatter_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:187:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatter *, cfish_Obj *)' [-Wcast-function-type]
  187 |     const CFISH_TestFormatter_Equals_t method = (CFISH_TestFormatter_Equals_t)cfish_obj_method(self, CFISH_TestFormatter_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:194:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatter *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatter *, cfish_Obj *)'} [-Wcast-function-type]
  194 |     const CFISH_TestFormatter_Compare_To_t method = (CFISH_TestFormatter_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatter_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:208:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatter *)' [-Wcast-function-type]
  208 |     const CFISH_TestFormatter_To_String_t method = (CFISH_TestFormatter_To_String_t)cfish_obj_method(self, CFISH_TestFormatter_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:215:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  215 |     const CFISH_TestFormatter_Batch_Prologue_t method = (CFISH_TestFormatter_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatter_Batch_Prologue_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:222:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  222 |     const CFISH_TestFormatter_VTest_Result_t method = (CFISH_TestFormatter_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Result_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:229:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  229 |     const CFISH_TestFormatter_VTest_Skip_t method = (CFISH_TestFormatter_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Skip_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:236:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' [-Wcast-function-type]
  236 |     const CFISH_TestFormatter_VTest_Comment_t method = (CFISH_TestFormatter_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Comment_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:243:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' [-Wcast-function-type]
  243 |     const CFISH_TestFormatter_VBatch_Comment_t method = (CFISH_TestFormatter_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatter_VBatch_Comment_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:250:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  250 |     const CFISH_TestFormatter_Summary_t method = (CFISH_TestFormatter_Summary_t)cfish_obj_method(self, CFISH_TestFormatter_Summary_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:459:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatterCF *, void *)' [-Wcast-function-type]
  459 |     const CFISH_TestFormatterCF_To_Host_t method = (CFISH_TestFormatterCF_To_Host_t)cfish_obj_method(self, CFISH_TestFormatterCF_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:466:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatterCF *)' [-Wcast-function-type]
  466 |     const CFISH_TestFormatterCF_Clone_t method = (CFISH_TestFormatterCF_Clone_t)cfish_obj_method(self, CFISH_TestFormatterCF_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:473:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatterCF *, cfish_Obj *)' [-Wcast-function-type]
  473 |     const CFISH_TestFormatterCF_Equals_t method = (CFISH_TestFormatterCF_Equals_t)cfish_obj_method(self, CFISH_TestFormatterCF_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:480:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatterCF *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatterCF *, cfish_Obj *)'} [-Wcast-function-type]
  480 |     const CFISH_TestFormatterCF_Compare_To_t method = (CFISH_TestFormatterCF_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatterCF_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:494:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatterCF *)' [-Wcast-function-type]
  494 |     const CFISH_TestFormatterCF_To_String_t method = (CFISH_TestFormatterCF_To_String_t)cfish_obj_method(self, CFISH_TestFormatterCF_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:501:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  501 |     const CFISH_TestFormatterCF_Batch_Prologue_t method = (CFISH_TestFormatterCF_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatterCF_Batch_Prologue_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:508:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  508 |     const CFISH_TestFormatterCF_VTest_Result_t method = (CFISH_TestFormatterCF_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Result_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:515:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  515 |     const CFISH_TestFormatterCF_VTest_Skip_t method = (CFISH_TestFormatterCF_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Skip_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:522:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' [-Wcast-function-type]
  522 |     const CFISH_TestFormatterCF_VTest_Comment_t method = (CFISH_TestFormatterCF_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Comment_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:529:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' [-Wcast-function-type]
  529 |     const CFISH_TestFormatterCF_VBatch_Comment_t method = (CFISH_TestFormatterCF_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatterCF_VBatch_Comment_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:536:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  536 |     const CFISH_TestFormatterCF_Summary_t method = (CFISH_TestFormatterCF_Summary_t)cfish_obj_method(self, CFISH_TestFormatterCF_Summary_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:725:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatterTAP *, void *)' [-Wcast-function-type]
  725 |     const CFISH_TestFormatterTAP_To_Host_t method = (CFISH_TestFormatterTAP_To_Host_t)cfish_obj_method(self, CFISH_TestFormatterTAP_To_Host_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:732:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatterTAP *)' [-Wcast-function-type]
  732 |     const CFISH_TestFormatterTAP_Clone_t method = (CFISH_TestFormatterTAP_Clone_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Clone_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:739:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatterTAP *, cfish_Obj *)' [-Wcast-function-type]
  739 |     const CFISH_TestFormatterTAP_Equals_t method = (CFISH_TestFormatterTAP_Equals_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Equals_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:746:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatterTAP *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatterTAP *, cfish_Obj *)'} [-Wcast-function-type]
  746 |     const CFISH_TestFormatterTAP_Compare_To_t method = (CFISH_TestFormatterTAP_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Compare_To_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:760:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatterTAP *)' [-Wcast-function-type]
  760 |     const CFISH_TestFormatterTAP_To_String_t method = (CFISH_TestFormatterTAP_To_String_t)cfish_obj_method(self, CFISH_TestFormatterTAP_To_String_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:767:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  767 |     const CFISH_TestFormatterTAP_Batch_Prologue_t method = (CFISH_TestFormatterTAP_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Batch_Prologue_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:774:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  774 |     const CFISH_TestFormatterTAP_VTest_Result_t method = (CFISH_TestFormatterTAP_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Result_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:781:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  781 |     const CFISH_TestFormatterTAP_VTest_Skip_t method = (CFISH_TestFormatterTAP_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Skip_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:788:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' [-Wcast-function-type]
  788 |     const CFISH_TestFormatterTAP_VTest_Comment_t method = (CFISH_TestFormatterTAP_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Comment_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:795:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' [-Wcast-function-type]
  795 |     const CFISH_TestFormatterTAP_VBatch_Comment_t method = (CFISH_TestFormatterTAP_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VBatch_Comment_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:802:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  802 |     const CFISH_TestFormatterTAP_Summary_t method = (CFISH_TestFormatterTAP_Summary_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Summary_OFFSET);
      |                                                     ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/TestHarness/TestSuite.c -c -o cfcore/Clownfish/TestHarness/TestSuite.o
In file included from autogen/include/Clownfish/TestHarness/TestSuite.h:40,
                 from cfcore/Clownfish/TestHarness/TestSuite.c:23:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_To_Host':
autogen/include/Clownfish/TestHarness/TestSuite.h:153:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestSuite *, void *)' [-Wcast-function-type]
  153 |     const CFISH_TestSuite_To_Host_t method = (CFISH_TestSuite_To_Host_t)cfish_obj_method(self, CFISH_TestSuite_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Clone':
autogen/include/Clownfish/TestHarness/TestSuite.h:160:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestSuite *)' [-Wcast-function-type]
  160 |     const CFISH_TestSuite_Clone_t method = (CFISH_TestSuite_Clone_t)cfish_obj_method(self, CFISH_TestSuite_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Equals':
autogen/include/Clownfish/TestHarness/TestSuite.h:167:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuite *, cfish_Obj *)' [-Wcast-function-type]
  167 |     const CFISH_TestSuite_Equals_t method = (CFISH_TestSuite_Equals_t)cfish_obj_method(self, CFISH_TestSuite_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Compare_To':
autogen/include/Clownfish/TestHarness/TestSuite.h:174:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestSuite *, cfish_Obj *)' {aka 'int (*)(cfish_TestSuite *, cfish_Obj *)'} [-Wcast-function-type]
  174 |     const CFISH_TestSuite_Compare_To_t method = (CFISH_TestSuite_Compare_To_t)cfish_obj_method(self, CFISH_TestSuite_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_To_String':
autogen/include/Clownfish/TestHarness/TestSuite.h:188:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestSuite *)' [-Wcast-function-type]
  188 |     const CFISH_TestSuite_To_String_t method = (CFISH_TestSuite_To_String_t)cfish_obj_method(self, CFISH_TestSuite_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Add_Batch':
autogen/include/Clownfish/TestHarness/TestSuite.h:195:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestSuite *, cfish_TestBatch *)' [-Wcast-function-type]
  195 |     const CFISH_TestSuite_Add_Batch_t method = (CFISH_TestSuite_Add_Batch_t)cfish_obj_method(self, CFISH_TestSuite_Add_Batch_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Run_Batch':
autogen/include/Clownfish/TestHarness/TestSuite.h:202:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuite *, cfish_String *, cfish_TestFormatter *)' [-Wcast-function-type]
  202 |     const CFISH_TestSuite_Run_Batch_t method = (CFISH_TestSuite_Run_Batch_t)cfish_obj_method(self, CFISH_TestSuite_Run_Batch_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Run_All_Batches':
autogen/include/Clownfish/TestHarness/TestSuite.h:209:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuite *, cfish_TestFormatter *)' [-Wcast-function-type]
  209 |     const CFISH_TestSuite_Run_All_Batches_t method = (CFISH_TestSuite_Run_All_Batches_t)cfish_obj_method(self, CFISH_TestSuite_Run_All_Batches_OFFSET);
      |                                                      ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cfcore/Clownfish/TestHarness/TestSuite.c:25:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/TestHarness/TestSuite.c:27:
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/TestHarness/TestSuite.c:28:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
In file included from cfcore/Clownfish/TestHarness/TestSuite.c:29:
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:173:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatter *, void *)' [-Wcast-function-type]
  173 |     const CFISH_TestFormatter_To_Host_t method = (CFISH_TestFormatter_To_Host_t)cfish_obj_method(self, CFISH_TestFormatter_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:180:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatter *)' [-Wcast-function-type]
  180 |     const CFISH_TestFormatter_Clone_t method = (CFISH_TestFormatter_Clone_t)cfish_obj_method(self, CFISH_TestFormatter_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:187:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatter *, cfish_Obj *)' [-Wcast-function-type]
  187 |     const CFISH_TestFormatter_Equals_t method = (CFISH_TestFormatter_Equals_t)cfish_obj_method(self, CFISH_TestFormatter_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:194:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatter *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatter *, cfish_Obj *)'} [-Wcast-function-type]
  194 |     const CFISH_TestFormatter_Compare_To_t method = (CFISH_TestFormatter_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatter_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:208:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatter *)' [-Wcast-function-type]
  208 |     const CFISH_TestFormatter_To_String_t method = (CFISH_TestFormatter_To_String_t)cfish_obj_method(self, CFISH_TestFormatter_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:215:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  215 |     const CFISH_TestFormatter_Batch_Prologue_t method = (CFISH_TestFormatter_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatter_Batch_Prologue_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:222:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  222 |     const CFISH_TestFormatter_VTest_Result_t method = (CFISH_TestFormatter_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Result_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:229:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  229 |     const CFISH_TestFormatter_VTest_Skip_t method = (CFISH_TestFormatter_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Skip_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:236:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' [-Wcast-function-type]
  236 |     const CFISH_TestFormatter_VTest_Comment_t method = (CFISH_TestFormatter_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Comment_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:243:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' [-Wcast-function-type]
  243 |     const CFISH_TestFormatter_VBatch_Comment_t method = (CFISH_TestFormatter_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatter_VBatch_Comment_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:250:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  250 |     const CFISH_TestFormatter_Summary_t method = (CFISH_TestFormatter_Summary_t)cfish_obj_method(self, CFISH_TestFormatter_Summary_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:459:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatterCF *, void *)' [-Wcast-function-type]
  459 |     const CFISH_TestFormatterCF_To_Host_t method = (CFISH_TestFormatterCF_To_Host_t)cfish_obj_method(self, CFISH_TestFormatterCF_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:466:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatterCF *)' [-Wcast-function-type]
  466 |     const CFISH_TestFormatterCF_Clone_t method = (CFISH_TestFormatterCF_Clone_t)cfish_obj_method(self, CFISH_TestFormatterCF_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:473:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatterCF *, cfish_Obj *)' [-Wcast-function-type]
  473 |     const CFISH_TestFormatterCF_Equals_t method = (CFISH_TestFormatterCF_Equals_t)cfish_obj_method(self, CFISH_TestFormatterCF_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:480:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatterCF *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatterCF *, cfish_Obj *)'} [-Wcast-function-type]
  480 |     const CFISH_TestFormatterCF_Compare_To_t method = (CFISH_TestFormatterCF_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatterCF_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:494:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatterCF *)' [-Wcast-function-type]
  494 |     const CFISH_TestFormatterCF_To_String_t method = (CFISH_TestFormatterCF_To_String_t)cfish_obj_method(self, CFISH_TestFormatterCF_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:501:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  501 |     const CFISH_TestFormatterCF_Batch_Prologue_t method = (CFISH_TestFormatterCF_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatterCF_Batch_Prologue_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:508:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  508 |     const CFISH_TestFormatterCF_VTest_Result_t method = (CFISH_TestFormatterCF_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Result_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:515:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  515 |     const CFISH_TestFormatterCF_VTest_Skip_t method = (CFISH_TestFormatterCF_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Skip_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:522:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' [-Wcast-function-type]
  522 |     const CFISH_TestFormatterCF_VTest_Comment_t method = (CFISH_TestFormatterCF_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Comment_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:529:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' [-Wcast-function-type]
  529 |     const CFISH_TestFormatterCF_VBatch_Comment_t method = (CFISH_TestFormatterCF_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatterCF_VBatch_Comment_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:536:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  536 |     const CFISH_TestFormatterCF_Summary_t method = (CFISH_TestFormatterCF_Summary_t)cfish_obj_method(self, CFISH_TestFormatterCF_Summary_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:725:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatterTAP *, void *)' [-Wcast-function-type]
  725 |     const CFISH_TestFormatterTAP_To_Host_t method = (CFISH_TestFormatterTAP_To_Host_t)cfish_obj_method(self, CFISH_TestFormatterTAP_To_Host_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:732:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatterTAP *)' [-Wcast-function-type]
  732 |     const CFISH_TestFormatterTAP_Clone_t method = (CFISH_TestFormatterTAP_Clone_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Clone_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:739:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatterTAP *, cfish_Obj *)' [-Wcast-function-type]
  739 |     const CFISH_TestFormatterTAP_Equals_t method = (CFISH_TestFormatterTAP_Equals_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Equals_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:746:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatterTAP *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatterTAP *, cfish_Obj *)'} [-Wcast-function-type]
  746 |     const CFISH_TestFormatterTAP_Compare_To_t method = (CFISH_TestFormatterTAP_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Compare_To_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:760:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatterTAP *)' [-Wcast-function-type]
  760 |     const CFISH_TestFormatterTAP_To_String_t method = (CFISH_TestFormatterTAP_To_String_t)cfish_obj_method(self, CFISH_TestFormatterTAP_To_String_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:767:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  767 |     const CFISH_TestFormatterTAP_Batch_Prologue_t method = (CFISH_TestFormatterTAP_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Batch_Prologue_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:774:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  774 |     const CFISH_TestFormatterTAP_VTest_Result_t method = (CFISH_TestFormatterTAP_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Result_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:781:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  781 |     const CFISH_TestFormatterTAP_VTest_Skip_t method = (CFISH_TestFormatterTAP_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Skip_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:788:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' [-Wcast-function-type]
  788 |     const CFISH_TestFormatterTAP_VTest_Comment_t method = (CFISH_TestFormatterTAP_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Comment_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:795:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' [-Wcast-function-type]
  795 |     const CFISH_TestFormatterTAP_VBatch_Comment_t method = (CFISH_TestFormatterTAP_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VBatch_Comment_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:802:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  802 |     const CFISH_TestFormatterTAP_Summary_t method = (CFISH_TestFormatterTAP_Summary_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Summary_OFFSET);
      |                                                     ^
In file included from cfcore/Clownfish/TestHarness/TestSuite.c:30:
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:175:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestSuiteRunner *, void *)' [-Wcast-function-type]
  175 |     const CFISH_TestSuiteRunner_To_Host_t method = (CFISH_TestSuiteRunner_To_Host_t)cfish_obj_method(self, CFISH_TestSuiteRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Clone':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:182:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  182 |     const CFISH_TestSuiteRunner_Clone_t method = (CFISH_TestSuiteRunner_Clone_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Equals':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:189:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *, cfish_Obj *)' [-Wcast-function-type]
  189 |     const CFISH_TestSuiteRunner_Equals_t method = (CFISH_TestSuiteRunner_Equals_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:196:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestSuiteRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestSuiteRunner *, cfish_Obj *)'} [-Wcast-function-type]
  196 |     const CFISH_TestSuiteRunner_Compare_To_t method = (CFISH_TestSuiteRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_To_String':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:210:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  210 |     const CFISH_TestSuiteRunner_To_String_t method = (CFISH_TestSuiteRunner_To_String_t)cfish_obj_method(self, CFISH_TestSuiteRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:217:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  217 |     const CFISH_TestSuiteRunner_Run_Batch_t method = (CFISH_TestSuiteRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Finish':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:224:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  224 |     const CFISH_TestSuiteRunner_Finish_t method = (CFISH_TestSuiteRunner_Finish_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Finish_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:231:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  231 |     const CFISH_TestSuiteRunner_Get_Num_Tests_t method = (CFISH_TestSuiteRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Tests_Failed':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:238:65: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  238 |     const CFISH_TestSuiteRunner_Get_Num_Tests_Failed_t method = (CFISH_TestSuiteRunner_Get_Num_Tests_Failed_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Tests_Failed_OFFSET);
      |                                                                 ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Batches':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:245:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  245 |     const CFISH_TestSuiteRunner_Get_Num_Batches_t method = (CFISH_TestSuiteRunner_Get_Num_Batches_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Batches_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Batches_Failed':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:252:67: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  252 |     const CFISH_TestSuiteRunner_Get_Num_Batches_Failed_t method = (CFISH_TestSuiteRunner_Get_Num_Batches_Failed_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Batches_Failed_OFFSET);
      |                                                                   ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/TestHarness/TestFormatter.c -c -o cfcore/Clownfish/TestHarness/TestFormatter.o
In file included from autogen/include/Clownfish/TestHarness/TestFormatter.h:40,
                 from cfcore/Clownfish/TestHarness/TestFormatter.c:22:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:173:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatter *, void *)' [-Wcast-function-type]
  173 |     const CFISH_TestFormatter_To_Host_t method = (CFISH_TestFormatter_To_Host_t)cfish_obj_method(self, CFISH_TestFormatter_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:180:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatter *)' [-Wcast-function-type]
  180 |     const CFISH_TestFormatter_Clone_t method = (CFISH_TestFormatter_Clone_t)cfish_obj_method(self, CFISH_TestFormatter_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:187:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatter *, cfish_Obj *)' [-Wcast-function-type]
  187 |     const CFISH_TestFormatter_Equals_t method = (CFISH_TestFormatter_Equals_t)cfish_obj_method(self, CFISH_TestFormatter_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:194:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatter *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatter *, cfish_Obj *)'} [-Wcast-function-type]
  194 |     const CFISH_TestFormatter_Compare_To_t method = (CFISH_TestFormatter_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatter_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:208:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatter *)' [-Wcast-function-type]
  208 |     const CFISH_TestFormatter_To_String_t method = (CFISH_TestFormatter_To_String_t)cfish_obj_method(self, CFISH_TestFormatter_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:215:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  215 |     const CFISH_TestFormatter_Batch_Prologue_t method = (CFISH_TestFormatter_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatter_Batch_Prologue_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:222:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  222 |     const CFISH_TestFormatter_VTest_Result_t method = (CFISH_TestFormatter_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Result_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:229:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  229 |     const CFISH_TestFormatter_VTest_Skip_t method = (CFISH_TestFormatter_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Skip_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:236:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' [-Wcast-function-type]
  236 |     const CFISH_TestFormatter_VTest_Comment_t method = (CFISH_TestFormatter_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Comment_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:243:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' [-Wcast-function-type]
  243 |     const CFISH_TestFormatter_VBatch_Comment_t method = (CFISH_TestFormatter_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatter_VBatch_Comment_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:250:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  250 |     const CFISH_TestFormatter_Summary_t method = (CFISH_TestFormatter_Summary_t)cfish_obj_method(self, CFISH_TestFormatter_Summary_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:459:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatterCF *, void *)' [-Wcast-function-type]
  459 |     const CFISH_TestFormatterCF_To_Host_t method = (CFISH_TestFormatterCF_To_Host_t)cfish_obj_method(self, CFISH_TestFormatterCF_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:466:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatterCF *)' [-Wcast-function-type]
  466 |     const CFISH_TestFormatterCF_Clone_t method = (CFISH_TestFormatterCF_Clone_t)cfish_obj_method(self, CFISH_TestFormatterCF_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:473:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatterCF *, cfish_Obj *)' [-Wcast-function-type]
  473 |     const CFISH_TestFormatterCF_Equals_t method = (CFISH_TestFormatterCF_Equals_t)cfish_obj_method(self, CFISH_TestFormatterCF_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:480:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatterCF *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatterCF *, cfish_Obj *)'} [-Wcast-function-type]
  480 |     const CFISH_TestFormatterCF_Compare_To_t method = (CFISH_TestFormatterCF_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatterCF_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:494:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatterCF *)' [-Wcast-function-type]
  494 |     const CFISH_TestFormatterCF_To_String_t method = (CFISH_TestFormatterCF_To_String_t)cfish_obj_method(self, CFISH_TestFormatterCF_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:501:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  501 |     const CFISH_TestFormatterCF_Batch_Prologue_t method = (CFISH_TestFormatterCF_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatterCF_Batch_Prologue_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:508:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  508 |     const CFISH_TestFormatterCF_VTest_Result_t method = (CFISH_TestFormatterCF_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Result_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:515:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  515 |     const CFISH_TestFormatterCF_VTest_Skip_t method = (CFISH_TestFormatterCF_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Skip_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:522:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' [-Wcast-function-type]
  522 |     const CFISH_TestFormatterCF_VTest_Comment_t method = (CFISH_TestFormatterCF_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Comment_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:529:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' [-Wcast-function-type]
  529 |     const CFISH_TestFormatterCF_VBatch_Comment_t method = (CFISH_TestFormatterCF_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatterCF_VBatch_Comment_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:536:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  536 |     const CFISH_TestFormatterCF_Summary_t method = (CFISH_TestFormatterCF_Summary_t)cfish_obj_method(self, CFISH_TestFormatterCF_Summary_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:725:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatterTAP *, void *)' [-Wcast-function-type]
  725 |     const CFISH_TestFormatterTAP_To_Host_t method = (CFISH_TestFormatterTAP_To_Host_t)cfish_obj_method(self, CFISH_TestFormatterTAP_To_Host_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:732:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatterTAP *)' [-Wcast-function-type]
  732 |     const CFISH_TestFormatterTAP_Clone_t method = (CFISH_TestFormatterTAP_Clone_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Clone_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:739:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatterTAP *, cfish_Obj *)' [-Wcast-function-type]
  739 |     const CFISH_TestFormatterTAP_Equals_t method = (CFISH_TestFormatterTAP_Equals_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Equals_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:746:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatterTAP *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatterTAP *, cfish_Obj *)'} [-Wcast-function-type]
  746 |     const CFISH_TestFormatterTAP_Compare_To_t method = (CFISH_TestFormatterTAP_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Compare_To_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:760:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatterTAP *)' [-Wcast-function-type]
  760 |     const CFISH_TestFormatterTAP_To_String_t method = (CFISH_TestFormatterTAP_To_String_t)cfish_obj_method(self, CFISH_TestFormatterTAP_To_String_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:767:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  767 |     const CFISH_TestFormatterTAP_Batch_Prologue_t method = (CFISH_TestFormatterTAP_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Batch_Prologue_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:774:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  774 |     const CFISH_TestFormatterTAP_VTest_Result_t method = (CFISH_TestFormatterTAP_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Result_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:781:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  781 |     const CFISH_TestFormatterTAP_VTest_Skip_t method = (CFISH_TestFormatterTAP_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Skip_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:788:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' [-Wcast-function-type]
  788 |     const CFISH_TestFormatterTAP_VTest_Comment_t method = (CFISH_TestFormatterTAP_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Comment_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:795:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' [-Wcast-function-type]
  795 |     const CFISH_TestFormatterTAP_VBatch_Comment_t method = (CFISH_TestFormatterTAP_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VBatch_Comment_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:802:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  802 |     const CFISH_TestFormatterTAP_Summary_t method = (CFISH_TestFormatterTAP_Summary_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Summary_OFFSET);
      |                                                     ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cfcore/Clownfish/TestHarness/TestFormatter.c:24:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/TestHarness/TestFormatter.c:26:
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/TestHarness/TestFormatter.c:27:
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:175:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestSuiteRunner *, void *)' [-Wcast-function-type]
  175 |     const CFISH_TestSuiteRunner_To_Host_t method = (CFISH_TestSuiteRunner_To_Host_t)cfish_obj_method(self, CFISH_TestSuiteRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Clone':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:182:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  182 |     const CFISH_TestSuiteRunner_Clone_t method = (CFISH_TestSuiteRunner_Clone_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Equals':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:189:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *, cfish_Obj *)' [-Wcast-function-type]
  189 |     const CFISH_TestSuiteRunner_Equals_t method = (CFISH_TestSuiteRunner_Equals_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:196:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestSuiteRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestSuiteRunner *, cfish_Obj *)'} [-Wcast-function-type]
  196 |     const CFISH_TestSuiteRunner_Compare_To_t method = (CFISH_TestSuiteRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_To_String':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:210:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  210 |     const CFISH_TestSuiteRunner_To_String_t method = (CFISH_TestSuiteRunner_To_String_t)cfish_obj_method(self, CFISH_TestSuiteRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:217:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  217 |     const CFISH_TestSuiteRunner_Run_Batch_t method = (CFISH_TestSuiteRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Finish':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:224:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  224 |     const CFISH_TestSuiteRunner_Finish_t method = (CFISH_TestSuiteRunner_Finish_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Finish_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:231:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  231 |     const CFISH_TestSuiteRunner_Get_Num_Tests_t method = (CFISH_TestSuiteRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Tests_Failed':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:238:65: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  238 |     const CFISH_TestSuiteRunner_Get_Num_Tests_Failed_t method = (CFISH_TestSuiteRunner_Get_Num_Tests_Failed_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Tests_Failed_OFFSET);
      |                                                                 ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Batches':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:245:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  245 |     const CFISH_TestSuiteRunner_Get_Num_Batches_t method = (CFISH_TestSuiteRunner_Get_Num_Batches_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Batches_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Batches_Failed':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:252:67: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  252 |     const CFISH_TestSuiteRunner_Get_Num_Batches_Failed_t method = (CFISH_TestSuiteRunner_Get_Num_Batches_Failed_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Batches_Failed_OFFSET);
      |                                                                   ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/TestHarness/TestUtils.c -c -o cfcore/Clownfish/TestHarness/TestUtils.o
In file included from autogen/include/Clownfish/CharBuf.h:40,
                 from cfcore/Clownfish/TestHarness/TestUtils.c:26:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/TestHarness/TestUtils.c:27:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/Blob.c -c -o cfcore/Clownfish/Blob.o
In file included from autogen/include/Clownfish/Class.h:40,
                 from cfcore/Clownfish/Blob.c:22:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/Blob.c:24:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/Obj.c -c -o cfcore/Clownfish/Obj.o
In file included from cfcore/Clownfish/Obj.c:27:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cfcore/Clownfish/Obj.c:28:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/Boolean.c -c -o cfcore/Clownfish/Boolean.o
In file included from autogen/include/Clownfish/Boolean.h:40,
                 from cfcore/Clownfish/Boolean.c:21:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cfcore/Clownfish/Boolean.c:24:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/Class.c -c -o cfcore/Clownfish/Class.o
In file included from autogen/include/Clownfish/Class.h:40,
                 from cfcore/Clownfish/Class.c:27:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cfcore/Clownfish/Class.c:28:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/LockFreeRegistry.c -c -o cfcore/Clownfish/LockFreeRegistry.o
In file included from cfcore/Clownfish/LockFreeRegistry.c:19:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/LockFreeRegistry.c:21:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/Hash.c -c -o cfcore/Clownfish/Hash.o
In file included from autogen/include/Clownfish/Class.h:40,
                 from cfcore/Clownfish/Hash.c:23:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cfcore/Clownfish/Hash.c:26:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish/ByteBuf.c -c -o cfcore/Clownfish/ByteBuf.o
In file included from autogen/include/Clownfish/Class.h:40,
                 from cfcore/Clownfish/ByteBuf.c:24:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish/ByteBuf.c:27:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH cfcore/Clownfish.c -c -o cfcore/Clownfish.o
In file included from autogen/include/Clownfish/Boolean.h:40,
                 from cfcore/Clownfish.c:17:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from cfcore/Clownfish.c:20:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_CFISH autogen/source/cfish_parcel.c -c -o autogen/source/cfish_parcel.o
In file included from autogen/include/Clownfish/Class.h:40,
                 from autogen/source/cfish_parcel.c:56:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from autogen/source/cfish_parcel.c:57:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from autogen/source/cfish_parcel.c:65:
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
In file included from autogen/source/cfish_parcel.c:66:
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:175:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestSuiteRunner *, void *)' [-Wcast-function-type]
  175 |     const CFISH_TestSuiteRunner_To_Host_t method = (CFISH_TestSuiteRunner_To_Host_t)cfish_obj_method(self, CFISH_TestSuiteRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Clone':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:182:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  182 |     const CFISH_TestSuiteRunner_Clone_t method = (CFISH_TestSuiteRunner_Clone_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Equals':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:189:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *, cfish_Obj *)' [-Wcast-function-type]
  189 |     const CFISH_TestSuiteRunner_Equals_t method = (CFISH_TestSuiteRunner_Equals_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:196:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestSuiteRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestSuiteRunner *, cfish_Obj *)'} [-Wcast-function-type]
  196 |     const CFISH_TestSuiteRunner_Compare_To_t method = (CFISH_TestSuiteRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_To_String':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:210:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  210 |     const CFISH_TestSuiteRunner_To_String_t method = (CFISH_TestSuiteRunner_To_String_t)cfish_obj_method(self, CFISH_TestSuiteRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:217:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  217 |     const CFISH_TestSuiteRunner_Run_Batch_t method = (CFISH_TestSuiteRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Finish':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:224:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  224 |     const CFISH_TestSuiteRunner_Finish_t method = (CFISH_TestSuiteRunner_Finish_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Finish_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:231:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  231 |     const CFISH_TestSuiteRunner_Get_Num_Tests_t method = (CFISH_TestSuiteRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Tests_Failed':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:238:65: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  238 |     const CFISH_TestSuiteRunner_Get_Num_Tests_Failed_t method = (CFISH_TestSuiteRunner_Get_Num_Tests_Failed_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Tests_Failed_OFFSET);
      |                                                                 ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Batches':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:245:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  245 |     const CFISH_TestSuiteRunner_Get_Num_Batches_t method = (CFISH_TestSuiteRunner_Get_Num_Batches_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Batches_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Batches_Failed':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:252:67: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  252 |     const CFISH_TestSuiteRunner_Get_Num_Batches_Failed_t method = (CFISH_TestSuiteRunner_Get_Num_Batches_Failed_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Batches_Failed_OFFSET);
      |                                                                   ^
In file included from autogen/source/cfish_parcel.c:67:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
In file included from autogen/source/cfish_parcel.c:68:
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:173:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatter *, void *)' [-Wcast-function-type]
  173 |     const CFISH_TestFormatter_To_Host_t method = (CFISH_TestFormatter_To_Host_t)cfish_obj_method(self, CFISH_TestFormatter_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:180:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatter *)' [-Wcast-function-type]
  180 |     const CFISH_TestFormatter_Clone_t method = (CFISH_TestFormatter_Clone_t)cfish_obj_method(self, CFISH_TestFormatter_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:187:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatter *, cfish_Obj *)' [-Wcast-function-type]
  187 |     const CFISH_TestFormatter_Equals_t method = (CFISH_TestFormatter_Equals_t)cfish_obj_method(self, CFISH_TestFormatter_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:194:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatter *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatter *, cfish_Obj *)'} [-Wcast-function-type]
  194 |     const CFISH_TestFormatter_Compare_To_t method = (CFISH_TestFormatter_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatter_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:208:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatter *)' [-Wcast-function-type]
  208 |     const CFISH_TestFormatter_To_String_t method = (CFISH_TestFormatter_To_String_t)cfish_obj_method(self, CFISH_TestFormatter_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:215:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  215 |     const CFISH_TestFormatter_Batch_Prologue_t method = (CFISH_TestFormatter_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatter_Batch_Prologue_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:222:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  222 |     const CFISH_TestFormatter_VTest_Result_t method = (CFISH_TestFormatter_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Result_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:229:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  229 |     const CFISH_TestFormatter_VTest_Skip_t method = (CFISH_TestFormatter_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Skip_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:236:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' [-Wcast-function-type]
  236 |     const CFISH_TestFormatter_VTest_Comment_t method = (CFISH_TestFormatter_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Comment_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:243:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' [-Wcast-function-type]
  243 |     const CFISH_TestFormatter_VBatch_Comment_t method = (CFISH_TestFormatter_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatter_VBatch_Comment_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:250:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  250 |     const CFISH_TestFormatter_Summary_t method = (CFISH_TestFormatter_Summary_t)cfish_obj_method(self, CFISH_TestFormatter_Summary_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:459:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatterCF *, void *)' [-Wcast-function-type]
  459 |     const CFISH_TestFormatterCF_To_Host_t method = (CFISH_TestFormatterCF_To_Host_t)cfish_obj_method(self, CFISH_TestFormatterCF_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:466:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatterCF *)' [-Wcast-function-type]
  466 |     const CFISH_TestFormatterCF_Clone_t method = (CFISH_TestFormatterCF_Clone_t)cfish_obj_method(self, CFISH_TestFormatterCF_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:473:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatterCF *, cfish_Obj *)' [-Wcast-function-type]
  473 |     const CFISH_TestFormatterCF_Equals_t method = (CFISH_TestFormatterCF_Equals_t)cfish_obj_method(self, CFISH_TestFormatterCF_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:480:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatterCF *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatterCF *, cfish_Obj *)'} [-Wcast-function-type]
  480 |     const CFISH_TestFormatterCF_Compare_To_t method = (CFISH_TestFormatterCF_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatterCF_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:494:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatterCF *)' [-Wcast-function-type]
  494 |     const CFISH_TestFormatterCF_To_String_t method = (CFISH_TestFormatterCF_To_String_t)cfish_obj_method(self, CFISH_TestFormatterCF_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:501:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  501 |     const CFISH_TestFormatterCF_Batch_Prologue_t method = (CFISH_TestFormatterCF_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatterCF_Batch_Prologue_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:508:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  508 |     const CFISH_TestFormatterCF_VTest_Result_t method = (CFISH_TestFormatterCF_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Result_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:515:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  515 |     const CFISH_TestFormatterCF_VTest_Skip_t method = (CFISH_TestFormatterCF_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Skip_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:522:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' [-Wcast-function-type]
  522 |     const CFISH_TestFormatterCF_VTest_Comment_t method = (CFISH_TestFormatterCF_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Comment_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:529:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' [-Wcast-function-type]
  529 |     const CFISH_TestFormatterCF_VBatch_Comment_t method = (CFISH_TestFormatterCF_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatterCF_VBatch_Comment_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:536:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  536 |     const CFISH_TestFormatterCF_Summary_t method = (CFISH_TestFormatterCF_Summary_t)cfish_obj_method(self, CFISH_TestFormatterCF_Summary_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:725:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatterTAP *, void *)' [-Wcast-function-type]
  725 |     const CFISH_TestFormatterTAP_To_Host_t method = (CFISH_TestFormatterTAP_To_Host_t)cfish_obj_method(self, CFISH_TestFormatterTAP_To_Host_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:732:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatterTAP *)' [-Wcast-function-type]
  732 |     const CFISH_TestFormatterTAP_Clone_t method = (CFISH_TestFormatterTAP_Clone_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Clone_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:739:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatterTAP *, cfish_Obj *)' [-Wcast-function-type]
  739 |     const CFISH_TestFormatterTAP_Equals_t method = (CFISH_TestFormatterTAP_Equals_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Equals_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:746:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatterTAP *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatterTAP *, cfish_Obj *)'} [-Wcast-function-type]
  746 |     const CFISH_TestFormatterTAP_Compare_To_t method = (CFISH_TestFormatterTAP_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Compare_To_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:760:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatterTAP *)' [-Wcast-function-type]
  760 |     const CFISH_TestFormatterTAP_To_String_t method = (CFISH_TestFormatterTAP_To_String_t)cfish_obj_method(self, CFISH_TestFormatterTAP_To_String_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:767:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  767 |     const CFISH_TestFormatterTAP_Batch_Prologue_t method = (CFISH_TestFormatterTAP_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Batch_Prologue_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:774:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  774 |     const CFISH_TestFormatterTAP_VTest_Result_t method = (CFISH_TestFormatterTAP_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Result_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:781:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  781 |     const CFISH_TestFormatterTAP_VTest_Skip_t method = (CFISH_TestFormatterTAP_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Skip_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:788:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' [-Wcast-function-type]
  788 |     const CFISH_TestFormatterTAP_VTest_Comment_t method = (CFISH_TestFormatterTAP_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Comment_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:795:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' [-Wcast-function-type]
  795 |     const CFISH_TestFormatterTAP_VBatch_Comment_t method = (CFISH_TestFormatterTAP_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VBatch_Comment_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:802:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  802 |     const CFISH_TestFormatterTAP_Summary_t method = (CFISH_TestFormatterTAP_Summary_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Summary_OFFSET);
      |                                                     ^
In file included from autogen/source/cfish_parcel.c:71:
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_To_Host':
autogen/include/Clownfish/TestHarness/TestSuite.h:153:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestSuite *, void *)' [-Wcast-function-type]
  153 |     const CFISH_TestSuite_To_Host_t method = (CFISH_TestSuite_To_Host_t)cfish_obj_method(self, CFISH_TestSuite_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Clone':
autogen/include/Clownfish/TestHarness/TestSuite.h:160:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestSuite *)' [-Wcast-function-type]
  160 |     const CFISH_TestSuite_Clone_t method = (CFISH_TestSuite_Clone_t)cfish_obj_method(self, CFISH_TestSuite_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Equals':
autogen/include/Clownfish/TestHarness/TestSuite.h:167:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuite *, cfish_Obj *)' [-Wcast-function-type]
  167 |     const CFISH_TestSuite_Equals_t method = (CFISH_TestSuite_Equals_t)cfish_obj_method(self, CFISH_TestSuite_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Compare_To':
autogen/include/Clownfish/TestHarness/TestSuite.h:174:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestSuite *, cfish_Obj *)' {aka 'int (*)(cfish_TestSuite *, cfish_Obj *)'} [-Wcast-function-type]
  174 |     const CFISH_TestSuite_Compare_To_t method = (CFISH_TestSuite_Compare_To_t)cfish_obj_method(self, CFISH_TestSuite_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_To_String':
autogen/include/Clownfish/TestHarness/TestSuite.h:188:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestSuite *)' [-Wcast-function-type]
  188 |     const CFISH_TestSuite_To_String_t method = (CFISH_TestSuite_To_String_t)cfish_obj_method(self, CFISH_TestSuite_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Add_Batch':
autogen/include/Clownfish/TestHarness/TestSuite.h:195:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestSuite *, cfish_TestBatch *)' [-Wcast-function-type]
  195 |     const CFISH_TestSuite_Add_Batch_t method = (CFISH_TestSuite_Add_Batch_t)cfish_obj_method(self, CFISH_TestSuite_Add_Batch_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Run_Batch':
autogen/include/Clownfish/TestHarness/TestSuite.h:202:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuite *, cfish_String *, cfish_TestFormatter *)' [-Wcast-function-type]
  202 |     const CFISH_TestSuite_Run_Batch_t method = (CFISH_TestSuite_Run_Batch_t)cfish_obj_method(self, CFISH_TestSuite_Run_Batch_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Run_All_Batches':
autogen/include/Clownfish/TestHarness/TestSuite.h:209:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuite *, cfish_TestFormatter *)' [-Wcast-function-type]
  209 |     const CFISH_TestSuite_Run_All_Batches_t method = (CFISH_TestSuite_Run_All_Batches_t)cfish_obj_method(self, CFISH_TestSuite_Run_All_Batches_OFFSET);
      |                                                      ^
autogen/source/cfish_parcel.c: At top level:
autogen/source/cfish_parcel.c:960:9: warning: cast between incompatible function types from 'void * (*)(cfish_Obj *, void *)' to 'void (*)(const void *)' [-Wcast-function-type]
  960 |         (cfish_method_t)CFISH_Obj_To_Host_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:961:9: warning: cast between incompatible function types from 'void * (*)(cfish_Obj *, void *)' to 'void (*)(const void *)' [-Wcast-function-type]
  961 |         (cfish_method_t)Cfish_Obj_To_Host_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:966:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
  966 |         (cfish_method_t)CFISH_Obj_Clone_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:967:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
  967 |         (cfish_method_t)Cfish_Obj_Clone_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:972:9: warning: cast between incompatible function types from '_Bool (*)(cfish_Obj *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
  972 |         (cfish_method_t)CFISH_Obj_Equals_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:973:9: warning: cast between incompatible function types from '_Bool (*)(cfish_Obj *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
  973 |         (cfish_method_t)Cfish_Obj_Equals_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:978:9: warning: cast between incompatible function types from 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} to 'void (*)(const void *)' [-Wcast-function-type]
  978 |         (cfish_method_t)CFISH_Obj_Compare_To_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:979:9: warning: cast between incompatible function types from 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} to 'void (*)(const void *)' [-Wcast-function-type]
  979 |         (cfish_method_t)Cfish_Obj_Compare_To_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:990:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
  990 |         (cfish_method_t)CFISH_Obj_To_String_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:991:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
  991 |         (cfish_method_t)Cfish_Obj_To_String_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:996:9: warning: cast between incompatible function types from 'void (*)(cfish_Err *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
  996 |         (cfish_method_t)CFISH_Err_Cat_Mess_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:997:9: warning: cast between incompatible function types from 'void (*)(cfish_Err *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
  997 |         (cfish_method_t)Cfish_Err_Cat_Mess_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1002:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Err *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1002 |         (cfish_method_t)CFISH_Err_Get_Mess_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1003:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Err *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1003 |         (cfish_method_t)Cfish_Err_Get_Mess_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1008:9: warning: cast between incompatible function types from 'void (*)(cfish_Err *, const char *, int,  const char *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1008 |         (cfish_method_t)CFISH_Err_Add_Frame_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1009:9: warning: cast between incompatible function types from 'void (*)(cfish_Err *, const char *, int,  const char *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1009 |         (cfish_method_t)Cfish_Err_Add_Frame_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1020:9: warning: cast between incompatible function types from 'void (*)(cfish_Hash *, cfish_String *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1020 |         (cfish_method_t)CFISH_Hash_Store_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1026:9: warning: cast between incompatible function types from 'void (*)(cfish_Hash *, const char *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Hash *, const char *, long unsigned int,  cfish_Obj *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1026 |         (cfish_method_t)CFISH_Hash_Store_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1032:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(cfish_Hash *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1032 |         (cfish_method_t)CFISH_Hash_Fetch_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1038:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(cfish_Hash *, const char *, size_t)' {aka 'cfish_Obj * (*)(cfish_Hash *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1038 |         (cfish_method_t)CFISH_Hash_Fetch_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1044:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(cfish_Hash *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1044 |         (cfish_method_t)CFISH_Hash_Delete_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1050:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(cfish_Hash *, const char *, size_t)' {aka 'cfish_Obj * (*)(cfish_Hash *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1050 |         (cfish_method_t)CFISH_Hash_Delete_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1056:9: warning: cast between incompatible function types from '_Bool (*)(cfish_Hash *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1056 |         (cfish_method_t)CFISH_Hash_Has_Key_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1062:9: warning: cast between incompatible function types from 'cfish_Vector * (*)(cfish_Hash *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1062 |         (cfish_method_t)CFISH_Hash_Keys_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1068:9: warning: cast between incompatible function types from 'cfish_Vector * (*)(cfish_Hash *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1068 |         (cfish_method_t)CFISH_Hash_Values_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1074:9: warning: cast between incompatible function types from 'size_t (*)(cfish_Hash *)' {aka 'long unsigned int (*)(cfish_Hash *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1074 |         (cfish_method_t)CFISH_Hash_Get_Capacity_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1080:9: warning: cast between incompatible function types from 'size_t (*)(cfish_Hash *)' {aka 'long unsigned int (*)(cfish_Hash *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1080 |         (cfish_method_t)CFISH_Hash_Get_Size_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1086:9: warning: cast between incompatible function types from 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1086 |         (cfish_method_t)CFISH_Class_Override_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1092:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(cfish_Class *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1092 |         (cfish_method_t)CFISH_Class_Make_Obj_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1098:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(cfish_Class *, void *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1098 |         (cfish_method_t)CFISH_Class_Init_Obj_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1104:9: warning: cast between incompatible function types from 'void (*)(cfish_Class *, const char *, const char *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1104 |         (cfish_method_t)CFISH_Class_Add_Host_Method_Alias_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1110:9: warning: cast between incompatible function types from 'void (*)(cfish_Class *, const char *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1110 |         (cfish_method_t)CFISH_Class_Exclude_Host_Method_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1116:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Class *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1116 |         (cfish_method_t)CFISH_Class_Get_Name_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1122:9: warning: cast between incompatible function types from 'cfish_Class * (*)(cfish_Class *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1122 |         (cfish_method_t)CFISH_Class_Get_Parent_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1128:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1128 |         (cfish_method_t)CFISH_Class_Get_Obj_Alloc_Size_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1134:9: warning: cast between incompatible function types from 'cfish_Vector * (*)(cfish_Class *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1134 |         (cfish_method_t)CFISH_Class_Get_Methods_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1140:9: warning: cast between incompatible function types from 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1140 |         (cfish_method_t)CFISH_TestBatch_Run_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1141:9: warning: cast between incompatible function types from 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1141 |         (cfish_method_t)Cfish_TestBatch_Run_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1146:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestSuiteRunner *, cfish_TestBatch *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1146 |         (cfish_method_t)CFISH_TestSuiteRunner_Run_Batch_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1147:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestSuiteRunner *, cfish_TestBatch *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1147 |         (cfish_method_t)Cfish_TestSuiteRunner_Run_Batch_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1152:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestSuiteRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1152 |         (cfish_method_t)CFISH_TestSuiteRunner_Finish_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1153:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestSuiteRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1153 |         (cfish_method_t)Cfish_TestSuiteRunner_Finish_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1158:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1158 |         (cfish_method_t)CFISH_TestSuiteRunner_Get_Num_Tests_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1159:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1159 |         (cfish_method_t)Cfish_TestSuiteRunner_Get_Num_Tests_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1164:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1164 |         (cfish_method_t)CFISH_TestSuiteRunner_Get_Num_Tests_Failed_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1165:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1165 |         (cfish_method_t)Cfish_TestSuiteRunner_Get_Num_Tests_Failed_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1170:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1170 |         (cfish_method_t)CFISH_TestSuiteRunner_Get_Num_Batches_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1171:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1171 |         (cfish_method_t)Cfish_TestSuiteRunner_Get_Num_Batches_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1176:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1176 |         (cfish_method_t)CFISH_TestSuiteRunner_Get_Num_Batches_Failed_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1177:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1177 |         (cfish_method_t)Cfish_TestSuiteRunner_Get_Num_Batches_Failed_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1182:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1182 |         (cfish_method_t)CFISH_TestBatchRunner_Run_Batch_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1183:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1183 |         (cfish_method_t)Cfish_TestBatchRunner_Run_Batch_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1188:9: warning: cast between incompatible function types from 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1188 |         (cfish_method_t)CFISH_TestBatchRunner_Plan_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1189:9: warning: cast between incompatible function types from 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1189 |         (cfish_method_t)Cfish_TestBatchRunner_Plan_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1194:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1194 |         (cfish_method_t)CFISH_TestBatchRunner_Get_Num_Planned_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1195:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1195 |         (cfish_method_t)Cfish_TestBatchRunner_Get_Num_Planned_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1200:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1200 |         (cfish_method_t)CFISH_TestBatchRunner_Get_Num_Tests_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1201:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1201 |         (cfish_method_t)Cfish_TestBatchRunner_Get_Num_Tests_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1206:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1206 |         (cfish_method_t)CFISH_TestBatchRunner_Get_Num_Failed_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1207:9: warning: cast between incompatible function types from 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1207 |         (cfish_method_t)Cfish_TestBatchRunner_Get_Num_Failed_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1212:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1212 |         (cfish_method_t)CFISH_TestBatchRunner_VTest_True_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1213:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1213 |         (cfish_method_t)Cfish_TestBatchRunner_VTest_True_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1218:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1218 |         (cfish_method_t)CFISH_TestBatchRunner_VTest_False_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1219:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1219 |         (cfish_method_t)Cfish_TestBatchRunner_VTest_False_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1224:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1224 |         (cfish_method_t)CFISH_TestBatchRunner_VTest_Int_Equals_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1225:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1225 |         (cfish_method_t)Cfish_TestBatchRunner_VTest_Int_Equals_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1230:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1230 |         (cfish_method_t)CFISH_TestBatchRunner_VTest_UInt_Equals_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1231:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1231 |         (cfish_method_t)Cfish_TestBatchRunner_VTest_UInt_Equals_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1236:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1236 |         (cfish_method_t)CFISH_TestBatchRunner_VTest_Float_Equals_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1237:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1237 |         (cfish_method_t)Cfish_TestBatchRunner_VTest_Float_Equals_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1242:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1242 |         (cfish_method_t)CFISH_TestBatchRunner_VTest_String_Equals_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1243:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1243 |         (cfish_method_t)Cfish_TestBatchRunner_VTest_String_Equals_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1248:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1248 |         (cfish_method_t)CFISH_TestBatchRunner_VPass_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1249:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1249 |         (cfish_method_t)Cfish_TestBatchRunner_VPass_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1254:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1254 |         (cfish_method_t)CFISH_TestBatchRunner_VFail_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1255:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1255 |         (cfish_method_t)Cfish_TestBatchRunner_VFail_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1260:9: warning: cast between incompatible function types from 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1260 |         (cfish_method_t)CFISH_TestBatchRunner_VSkip_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1261:9: warning: cast between incompatible function types from 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1261 |         (cfish_method_t)Cfish_TestBatchRunner_VSkip_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1266:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1266 |         (cfish_method_t)CFISH_TestFormatter_Batch_Prologue_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1267:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1267 |         (cfish_method_t)Cfish_TestFormatter_Batch_Prologue_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1272:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatter *, _Bool,  unsigned int,  const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1272 |         (cfish_method_t)CFISH_TestFormatter_VTest_Result_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1273:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatter *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1273 |         (cfish_method_t)Cfish_TestFormatter_VTest_Result_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1278:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatter *, unsigned int,  unsigned int,  const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1278 |         (cfish_method_t)CFISH_TestFormatter_VTest_Skip_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1279:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatter *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1279 |         (cfish_method_t)Cfish_TestFormatter_VTest_Skip_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1284:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1284 |         (cfish_method_t)CFISH_TestFormatter_VTest_Comment_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1285:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1285 |         (cfish_method_t)Cfish_TestFormatter_VTest_Comment_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1290:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1290 |         (cfish_method_t)CFISH_TestFormatter_VBatch_Comment_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1291:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1291 |         (cfish_method_t)Cfish_TestFormatter_VBatch_Comment_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1296:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatter *, cfish_TestSuiteRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1296 |         (cfish_method_t)CFISH_TestFormatter_Summary_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1297:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatter *, cfish_TestSuiteRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1297 |         (cfish_method_t)Cfish_TestFormatter_Summary_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1302:9: warning: cast between incompatible function types from 'void (*)(cfish_TestSuite *, cfish_TestBatch *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1302 |         (cfish_method_t)CFISH_TestSuite_Add_Batch_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1303:9: warning: cast between incompatible function types from 'void (*)(cfish_TestSuite *, cfish_TestBatch *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1303 |         (cfish_method_t)Cfish_TestSuite_Add_Batch_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1308:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestSuite *, cfish_String *, cfish_TestFormatter *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1308 |         (cfish_method_t)CFISH_TestSuite_Run_Batch_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1309:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestSuite *, cfish_String *, cfish_TestFormatter *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1309 |         (cfish_method_t)Cfish_TestSuite_Run_Batch_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1314:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestSuite *, cfish_TestFormatter *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1314 |         (cfish_method_t)CFISH_TestSuite_Run_All_Batches_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1315:9: warning: cast between incompatible function types from '_Bool (*)(cfish_TestSuite *, cfish_TestFormatter *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1315 |         (cfish_method_t)Cfish_TestSuite_Run_All_Batches_OVERRIDE /* callback_func */
      |         ^
autogen/source/cfish_parcel.c:1320:9: warning: cast between incompatible function types from 'size_t (*)(cfish_Blob *)' {aka 'long unsigned int (*)(cfish_Blob *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1320 |         (cfish_method_t)CFISH_Blob_Get_Size_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1326:9: warning: cast between incompatible function types from 'const char * (*)(cfish_Blob *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1326 |         (cfish_method_t)CFISH_Blob_Get_Buf_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1332:9: warning: cast between incompatible function types from '_Bool (*)(cfish_Blob *, const void *, size_t)' {aka '_Bool (*)(cfish_Blob *, const void *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1332 |         (cfish_method_t)CFISH_Blob_Equals_Bytes_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1338:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Method *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1338 |         (cfish_method_t)CFISH_Method_Get_Name_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1344:9: warning: cast between incompatible function types from 'void (*)(cfish_Method *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1344 |         (cfish_method_t)CFISH_Method_Set_Host_Alias_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1350:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Method *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1350 |         (cfish_method_t)CFISH_Method_Get_Host_Alias_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1356:9: warning: cast between incompatible function types from '_Bool (*)(cfish_Method *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1356 |         (cfish_method_t)CFISH_Method_Is_Excluded_From_Host_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1362:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Method *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1362 |         (cfish_method_t)CFISH_Method_Host_Name_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1368:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_String *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1368 |         (cfish_method_t)CFISH_Str_Cat_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1374:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1374 |         (cfish_method_t)CFISH_Str_Cat_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1380:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1380 |         (cfish_method_t)CFISH_Str_Cat_Trusted_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1386:9: warning: cast between incompatible function types from 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1386 |         (cfish_method_t)CFISH_Str_To_I64_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1392:9: warning: cast between incompatible function types from 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1392 |         (cfish_method_t)CFISH_Str_BaseX_To_I64_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1398:9: warning: cast between incompatible function types from 'double (*)(cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1398 |         (cfish_method_t)CFISH_Str_To_F64_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1404:9: warning: cast between incompatible function types from '_Bool (*)(cfish_String *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1404 |         (cfish_method_t)CFISH_Str_Starts_With_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1410:9: warning: cast between incompatible function types from '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1410 |         (cfish_method_t)CFISH_Str_Starts_With_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1416:9: warning: cast between incompatible function types from '_Bool (*)(cfish_String *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1416 |         (cfish_method_t)CFISH_Str_Ends_With_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1422:9: warning: cast between incompatible function types from '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1422 |         (cfish_method_t)CFISH_Str_Ends_With_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1428:9: warning: cast between incompatible function types from '_Bool (*)(cfish_String *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1428 |         (cfish_method_t)CFISH_Str_Contains_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1434:9: warning: cast between incompatible function types from '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1434 |         (cfish_method_t)CFISH_Str_Contains_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1440:9: warning: cast between incompatible function types from 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1440 |         (cfish_method_t)CFISH_Str_Find_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1446:9: warning: cast between incompatible function types from 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1446 |         (cfish_method_t)CFISH_Str_Find_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1452:9: warning: cast between incompatible function types from '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1452 |         (cfish_method_t)CFISH_Str_Equals_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1458:9: warning: cast between incompatible function types from 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1458 |         (cfish_method_t)CFISH_Str_Length_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1464:9: warning: cast between incompatible function types from 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1464 |         (cfish_method_t)CFISH_Str_Get_Size_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1470:9: warning: cast between incompatible function types from 'const char * (*)(cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1470 |         (cfish_method_t)CFISH_Str_Get_Ptr8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1476:9: warning: cast between incompatible function types from 'char * (*)(cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1476 |         (cfish_method_t)CFISH_Str_To_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1482:9: warning: cast between incompatible function types from 'cfish_ByteBuf * (*)(cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1482 |         (cfish_method_t)CFISH_Str_To_ByteBuf_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1488:9: warning: cast between incompatible function types from '_Bool (*)(cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1488 |         (cfish_method_t)CFISH_Str_Is_Copy_On_IncRef_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1494:9: warning: cast between incompatible function types from 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1494 |         (cfish_method_t)CFISH_Str_Hash_Sum_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1500:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1500 |         (cfish_method_t)CFISH_Str_Trim_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1506:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1506 |         (cfish_method_t)CFISH_Str_Trim_Top_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1512:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1512 |         (cfish_method_t)CFISH_Str_Trim_Tail_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1518:9: warning: cast between incompatible function types from 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1518 |         (cfish_method_t)CFISH_Str_Code_Point_At_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1524:9: warning: cast between incompatible function types from 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1524 |         (cfish_method_t)CFISH_Str_Code_Point_From_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1530:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1530 |         (cfish_method_t)CFISH_Str_SubString_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1536:9: warning: cast between incompatible function types from 'cfish_StringIterator * (*)(cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1536 |         (cfish_method_t)CFISH_Str_Top_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1542:9: warning: cast between incompatible function types from 'cfish_StringIterator * (*)(cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1542 |         (cfish_method_t)CFISH_Str_Tail_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1548:9: warning: cast between incompatible function types from 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1548 |         (cfish_method_t)CFISH_StrIter_Assign_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1554:9: warning: cast between incompatible function types from '_Bool (*)(cfish_StringIterator *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1554 |         (cfish_method_t)CFISH_StrIter_Has_Next_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1560:9: warning: cast between incompatible function types from '_Bool (*)(cfish_StringIterator *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1560 |         (cfish_method_t)CFISH_StrIter_Has_Prev_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1566:9: warning: cast between incompatible function types from 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1566 |         (cfish_method_t)CFISH_StrIter_Next_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1572:9: warning: cast between incompatible function types from 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1572 |         (cfish_method_t)CFISH_StrIter_Prev_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1578:9: warning: cast between incompatible function types from 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1578 |         (cfish_method_t)CFISH_StrIter_Advance_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1584:9: warning: cast between incompatible function types from 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1584 |         (cfish_method_t)CFISH_StrIter_Recede_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1590:9: warning: cast between incompatible function types from 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1590 |         (cfish_method_t)CFISH_StrIter_Skip_Whitespace_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1596:9: warning: cast between incompatible function types from 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1596 |         (cfish_method_t)CFISH_StrIter_Skip_Whitespace_Back_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1602:9: warning: cast between incompatible function types from '_Bool (*)(cfish_StringIterator *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1602 |         (cfish_method_t)CFISH_StrIter_Starts_With_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1608:9: warning: cast between incompatible function types from '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1608 |         (cfish_method_t)CFISH_StrIter_Starts_With_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1614:9: warning: cast between incompatible function types from '_Bool (*)(cfish_StringIterator *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1614 |         (cfish_method_t)CFISH_StrIter_Ends_With_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1620:9: warning: cast between incompatible function types from '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1620 |         (cfish_method_t)CFISH_StrIter_Ends_With_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1626:9: warning: cast between incompatible function types from 'void (*)(cfish_Vector *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1626 |         (cfish_method_t)CFISH_Vec_Push_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1632:9: warning: cast between incompatible function types from 'void (*)(cfish_Vector *, cfish_Vector *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1632 |         (cfish_method_t)CFISH_Vec_Push_All_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1638:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(cfish_Vector *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1638 |         (cfish_method_t)CFISH_Vec_Pop_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1644:9: warning: cast between incompatible function types from 'void (*)(cfish_Vector *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Obj *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1644 |         (cfish_method_t)CFISH_Vec_Insert_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1650:9: warning: cast between incompatible function types from 'void (*)(cfish_Vector *, size_t,  cfish_Vector *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Vector *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1650 |         (cfish_method_t)CFISH_Vec_Insert_All_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1656:9: warning: cast between incompatible function types from 'void (*)(cfish_Vector *, size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1656 |         (cfish_method_t)CFISH_Vec_Grow_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1662:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(cfish_Vector *, size_t)' {aka 'cfish_Obj * (*)(cfish_Vector *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1662 |         (cfish_method_t)CFISH_Vec_Fetch_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1668:9: warning: cast between incompatible function types from 'void (*)(cfish_Vector *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Obj *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1668 |         (cfish_method_t)CFISH_Vec_Store_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1674:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(cfish_Vector *, size_t)' {aka 'cfish_Obj * (*)(cfish_Vector *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1674 |         (cfish_method_t)CFISH_Vec_Delete_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1680:9: warning: cast between incompatible function types from 'void (*)(cfish_Vector *, size_t,  size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int,  long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1680 |         (cfish_method_t)CFISH_Vec_Excise_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1692:9: warning: cast between incompatible function types from 'void (*)(cfish_Vector *, size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1692 |         (cfish_method_t)CFISH_Vec_Resize_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1704:9: warning: cast between incompatible function types from 'size_t (*)(cfish_Vector *)' {aka 'long unsigned int (*)(cfish_Vector *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1704 |         (cfish_method_t)CFISH_Vec_Get_Size_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1710:9: warning: cast between incompatible function types from 'size_t (*)(cfish_Vector *)' {aka 'long unsigned int (*)(cfish_Vector *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1710 |         (cfish_method_t)CFISH_Vec_Get_Capacity_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1716:9: warning: cast between incompatible function types from 'cfish_Vector * (*)(cfish_Vector *, size_t,  size_t)' {aka 'cfish_Vector * (*)(cfish_Vector *, long unsigned int,  long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1716 |         (cfish_method_t)CFISH_Vec_Slice_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1722:9: warning: cast between incompatible function types from 'void (*)(cfish_ByteBuf *, size_t)' {aka 'void (*)(cfish_ByteBuf *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1722 |         (cfish_method_t)CFISH_BB_Set_Size_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1728:9: warning: cast between incompatible function types from 'size_t (*)(cfish_ByteBuf *)' {aka 'long unsigned int (*)(cfish_ByteBuf *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1728 |         (cfish_method_t)CFISH_BB_Get_Size_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1734:9: warning: cast between incompatible function types from 'char * (*)(cfish_ByteBuf *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1734 |         (cfish_method_t)CFISH_BB_Get_Buf_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1740:9: warning: cast between incompatible function types from 'size_t (*)(cfish_ByteBuf *)' {aka 'long unsigned int (*)(cfish_ByteBuf *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1740 |         (cfish_method_t)CFISH_BB_Get_Capacity_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1746:9: warning: cast between incompatible function types from 'void (*)(cfish_ByteBuf *, const void *, size_t)' {aka 'void (*)(cfish_ByteBuf *, const void *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1746 |         (cfish_method_t)CFISH_BB_Cat_Bytes_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1752:9: warning: cast between incompatible function types from 'void (*)(cfish_ByteBuf *, cfish_Blob *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1752 |         (cfish_method_t)CFISH_BB_Cat_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1758:9: warning: cast between incompatible function types from 'char * (*)(cfish_ByteBuf *, size_t)' {aka 'char * (*)(cfish_ByteBuf *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1758 |         (cfish_method_t)CFISH_BB_Grow_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1764:9: warning: cast between incompatible function types from 'cfish_Blob * (*)(cfish_ByteBuf *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1764 |         (cfish_method_t)CFISH_BB_Yield_Blob_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1770:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_ByteBuf *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1770 |         (cfish_method_t)CFISH_BB_Utf8_To_String_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1776:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_ByteBuf *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1776 |         (cfish_method_t)CFISH_BB_Trusted_Utf8_To_String_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1782:9: warning: cast between incompatible function types from '_Bool (*)(cfish_ByteBuf *, const void *, size_t)' {aka '_Bool (*)(cfish_ByteBuf *, const void *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1782 |         (cfish_method_t)CFISH_BB_Equals_Bytes_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1788:9: warning: cast between incompatible function types from 'void (*)(cfish_CharBuf *, const char *, size_t)' {aka 'void (*)(cfish_CharBuf *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1788 |         (cfish_method_t)CFISH_CB_Cat_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1794:9: warning: cast between incompatible function types from 'void (*)(cfish_CharBuf *, const char *, size_t)' {aka 'void (*)(cfish_CharBuf *, const char *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1794 |         (cfish_method_t)CFISH_CB_Cat_Trusted_Utf8_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1800:9: warning: cast between incompatible function types from 'void (*)(cfish_CharBuf *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1800 |         (cfish_method_t)CFISH_CB_Cat_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1806:9: warning: cast between incompatible function types from 'void (*)(cfish_CharBuf *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1806 |         (cfish_method_t)CFISH_CB_VCatF_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1812:9: warning: cast between incompatible function types from 'void (*)(cfish_CharBuf *, int32_t)' {aka 'void (*)(cfish_CharBuf *, int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1812 |         (cfish_method_t)CFISH_CB_Cat_Char_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1818:9: warning: cast between incompatible function types from 'void (*)(cfish_CharBuf *, size_t)' {aka 'void (*)(cfish_CharBuf *, long unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1818 |         (cfish_method_t)CFISH_CB_Grow_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1830:9: warning: cast between incompatible function types from 'size_t (*)(cfish_CharBuf *)' {aka 'long unsigned int (*)(cfish_CharBuf *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1830 |         (cfish_method_t)CFISH_CB_Get_Size_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1836:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_CharBuf *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1836 |         (cfish_method_t)CFISH_CB_Yield_String_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1842:9: warning: cast between incompatible function types from '_Bool (*)(cfish_HashIterator *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1842 |         (cfish_method_t)CFISH_HashIter_Next_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1848:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_HashIterator *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1848 |         (cfish_method_t)CFISH_HashIter_Get_Key_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1854:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(cfish_HashIterator *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1854 |         (cfish_method_t)CFISH_HashIter_Get_Value_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1860:9: warning: cast between incompatible function types from 'double (*)(cfish_Float *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1860 |         (cfish_method_t)CFISH_Float_Get_Value_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1866:9: warning: cast between incompatible function types from 'int64_t (*)(cfish_Float *)' {aka 'long int (*)(cfish_Float *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1866 |         (cfish_method_t)CFISH_Float_To_I64_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1872:9: warning: cast between incompatible function types from 'int64_t (*)(cfish_Integer *)' {aka 'long int (*)(cfish_Integer *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1872 |         (cfish_method_t)CFISH_Int_Get_Value_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1878:9: warning: cast between incompatible function types from 'double (*)(cfish_Integer *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1878 |         (cfish_method_t)CFISH_Int_To_F64_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1884:9: warning: cast between incompatible function types from '_Bool (*)(cfish_Boolean *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1884 |         (cfish_method_t)CFISH_Bool_Get_Value_IMP, /* func */
      |         ^
autogen/source/cfish_parcel.c:1898:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Err *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1898 |         (cfish_method_t)CFISH_Err_To_String_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1903:9: warning: cast between incompatible function types from 'void * (*)(cfish_Hash *, void *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1903 |         (cfish_method_t)CFISH_Hash_To_Host_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1908:9: warning: cast between incompatible function types from '_Bool (*)(cfish_Hash *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1908 |         (cfish_method_t)CFISH_Hash_Equals_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1933:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1933 |         (cfish_method_t)CFISH_TestFormatterCF_Batch_Prologue_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1938:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatterCF *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1938 |         (cfish_method_t)CFISH_TestFormatterCF_VTest_Result_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1943:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatterCF *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1943 |         (cfish_method_t)CFISH_TestFormatterCF_VTest_Skip_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1948:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1948 |         (cfish_method_t)CFISH_TestFormatterCF_VTest_Comment_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1953:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1953 |         (cfish_method_t)CFISH_TestFormatterCF_VBatch_Comment_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1958:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatterCF *, cfish_TestSuiteRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1958 |         (cfish_method_t)CFISH_TestFormatterCF_Summary_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1963:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, unsigned int)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1963 |         (cfish_method_t)CFISH_TestFormatterTAP_Batch_Prologue_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1968:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatterTAP *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1968 |         (cfish_method_t)CFISH_TestFormatterTAP_VTest_Result_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1973:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatterTAP *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 1973 |         (cfish_method_t)CFISH_TestFormatterTAP_VTest_Skip_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1978:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1978 |         (cfish_method_t)CFISH_TestFormatterTAP_VTest_Comment_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1983:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1983 |         (cfish_method_t)CFISH_TestFormatterTAP_VBatch_Comment_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1988:9: warning: cast between incompatible function types from 'void (*)(cfish_TestFormatterTAP *, cfish_TestSuiteRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1988 |         (cfish_method_t)CFISH_TestFormatterTAP_Summary_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:1998:9: warning: cast between incompatible function types from 'void * (*)(cfish_Blob *, void *)' to 'void (*)(const void *)' [-Wcast-function-type]
 1998 |         (cfish_method_t)CFISH_Blob_To_Host_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2003:9: warning: cast between incompatible function types from 'cfish_Blob * (*)(cfish_Blob *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2003 |         (cfish_method_t)CFISH_Blob_Clone_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2008:9: warning: cast between incompatible function types from '_Bool (*)(cfish_Blob *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2008 |         (cfish_method_t)CFISH_Blob_Equals_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2013:9: warning: cast between incompatible function types from 'int32_t (*)(cfish_Blob *, cfish_Obj *)' {aka 'int (*)(cfish_Blob *, cfish_Obj *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 2013 |         (cfish_method_t)CFISH_Blob_Compare_To_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2028:9: warning: cast between incompatible function types from 'void * (*)(cfish_String *, void *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2028 |         (cfish_method_t)CFISH_Str_To_Host_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2033:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2033 |         (cfish_method_t)CFISH_Str_Clone_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2038:9: warning: cast between incompatible function types from '_Bool (*)(cfish_String *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2038 |         (cfish_method_t)CFISH_Str_Equals_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2043:9: warning: cast between incompatible function types from 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 2043 |         (cfish_method_t)CFISH_Str_Compare_To_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2053:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2053 |         (cfish_method_t)CFISH_Str_To_String_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2058:9: warning: cast between incompatible function types from 'cfish_StringIterator * (*)(cfish_StringIterator *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2058 |         (cfish_method_t)CFISH_StrIter_Clone_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2063:9: warning: cast between incompatible function types from '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2063 |         (cfish_method_t)CFISH_StrIter_Equals_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2068:9: warning: cast between incompatible function types from 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 2068 |         (cfish_method_t)CFISH_StrIter_Compare_To_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2078:9: warning: cast between incompatible function types from 'void * (*)(cfish_Vector *, void *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2078 |         (cfish_method_t)CFISH_Vec_To_Host_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2083:9: warning: cast between incompatible function types from 'cfish_Vector * (*)(cfish_Vector *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2083 |         (cfish_method_t)CFISH_Vec_Clone_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2088:9: warning: cast between incompatible function types from '_Bool (*)(cfish_Vector *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2088 |         (cfish_method_t)CFISH_Vec_Equals_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2098:9: warning: cast between incompatible function types from 'void * (*)(cfish_ByteBuf *, void *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2098 |         (cfish_method_t)CFISH_BB_To_Host_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2103:9: warning: cast between incompatible function types from 'cfish_ByteBuf * (*)(cfish_ByteBuf *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2103 |         (cfish_method_t)CFISH_BB_Clone_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2108:9: warning: cast between incompatible function types from '_Bool (*)(cfish_ByteBuf *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2108 |         (cfish_method_t)CFISH_BB_Equals_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2113:9: warning: cast between incompatible function types from 'int32_t (*)(cfish_ByteBuf *, cfish_Obj *)' {aka 'int (*)(cfish_ByteBuf *, cfish_Obj *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 2113 |         (cfish_method_t)CFISH_BB_Compare_To_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2123:9: warning: cast between incompatible function types from 'cfish_CharBuf * (*)(cfish_CharBuf *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2123 |         (cfish_method_t)CFISH_CB_Clone_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2133:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_CharBuf *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2133 |         (cfish_method_t)CFISH_CB_To_String_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2143:9: warning: cast between incompatible function types from 'void * (*)(cfish_Float *, void *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2143 |         (cfish_method_t)CFISH_Float_To_Host_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2148:9: warning: cast between incompatible function types from 'cfish_Float * (*)(cfish_Float *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2148 |         (cfish_method_t)CFISH_Float_Clone_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2153:9: warning: cast between incompatible function types from '_Bool (*)(cfish_Float *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2153 |         (cfish_method_t)CFISH_Float_Equals_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2158:9: warning: cast between incompatible function types from 'int32_t (*)(cfish_Float *, cfish_Obj *)' {aka 'int (*)(cfish_Float *, cfish_Obj *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 2158 |         (cfish_method_t)CFISH_Float_Compare_To_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2163:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Float *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2163 |         (cfish_method_t)CFISH_Float_To_String_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2168:9: warning: cast between incompatible function types from 'void * (*)(cfish_Integer *, void *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2168 |         (cfish_method_t)CFISH_Int_To_Host_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2173:9: warning: cast between incompatible function types from 'cfish_Integer * (*)(cfish_Integer *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2173 |         (cfish_method_t)CFISH_Int_Clone_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2178:9: warning: cast between incompatible function types from '_Bool (*)(cfish_Integer *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2178 |         (cfish_method_t)CFISH_Int_Equals_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2183:9: warning: cast between incompatible function types from 'int32_t (*)(cfish_Integer *, cfish_Obj *)' {aka 'int (*)(cfish_Integer *, cfish_Obj *)'} to 'void (*)(const void *)' [-Wcast-function-type]
 2183 |         (cfish_method_t)CFISH_Int_Compare_To_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2188:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Integer *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2188 |         (cfish_method_t)CFISH_Int_To_String_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2193:9: warning: cast between incompatible function types from 'void * (*)(cfish_Boolean *, void *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2193 |         (cfish_method_t)CFISH_Bool_To_Host_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2198:9: warning: cast between incompatible function types from 'cfish_Boolean * (*)(cfish_Boolean *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2198 |         (cfish_method_t)CFISH_Bool_Clone_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2203:9: warning: cast between incompatible function types from '_Bool (*)(cfish_Boolean *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2203 |         (cfish_method_t)CFISH_Bool_Equals_IMP /* func */
      |         ^
autogen/source/cfish_parcel.c:2213:9: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Boolean *)' to 'void (*)(const void *)' [-Wcast-function-type]
 2213 |         (cfish_method_t)CFISH_Bool_To_String_IMP /* func */
      |         ^
gcc -Icfcore -Ixs -I. -Iautogen/include -I/usr/lib64/perl5/CORE -fPIC -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC '-std=gnu99' -D_GNU_SOURCE '-fvisibility=hidden' -c -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat '-Werror=format-security' '-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3' '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection '-fcf-protection=full' -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE '-D_FILE_OFFSET_BITS=64' -O2 -g -pipe -Wformat '-Werror=format-security' '-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3' '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection '-fcf-protection=full' -g -o xs/XSBind.o xs/XSBind.c
In file included from xs/XSBind.h:23,
                 from xs/XSBind.c:27:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/String.h:44,
                 from xs/XSBind.h:26:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from /usr/lib64/perl5/CORE/perl.h:46,
                 from xs/XSBind.h:37:
/usr/lib64/perl5/CORE/thread.h: At top level:
/usr/lib64/perl5/CORE/config.h:5222:27: warning: ISO C99 does not support '_Thread_local' [-Wpedantic]
 5222 | #define PERL_THREAD_LOCAL _Thread_local /**/
      |                           ^~~~~~~~~~~~~
/usr/lib64/perl5/CORE/thread.h:404:8: note: in expansion of macro 'PERL_THREAD_LOCAL'
  404 | extern PERL_THREAD_LOCAL void *PL_current_context;
      |        ^~~~~~~~~~~~~~~~~
gcc -Icfcore -Ixs -I. -Iautogen/include -I/usr/lib64/perl5/CORE -fPIC -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC '-std=gnu99' -D_GNU_SOURCE '-fvisibility=hidden' -c -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat '-Werror=format-security' '-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3' '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection '-fcf-protection=full' -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE '-D_FILE_OFFSET_BITS=64' -O2 -g -pipe -Wformat '-Werror=format-security' '-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3' '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection '-fcf-protection=full' -g -o autogen/source/cfish_perl.o autogen/source/cfish_perl.c
In file included from xs/XSBind.h:23,
                 from autogen/source/cfish_perl.c:29:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/String.h:44,
                 from xs/XSBind.h:26:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from /usr/lib64/perl5/CORE/perl.h:46,
                 from xs/XSBind.h:37:
/usr/lib64/perl5/CORE/thread.h: At top level:
/usr/lib64/perl5/CORE/config.h:5222:27: warning: ISO C99 does not support '_Thread_local' [-Wpedantic]
 5222 | #define PERL_THREAD_LOCAL _Thread_local /**/
      |                           ^~~~~~~~~~~~~
/usr/lib64/perl5/CORE/thread.h:404:8: note: in expansion of macro 'PERL_THREAD_LOCAL'
  404 | extern PERL_THREAD_LOCAL void *PL_current_context;
      |        ^~~~~~~~~~~~~~~~~
In file included from autogen/source/cfish_perl.c:37:
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
In file included from autogen/source/cfish_perl.c:38:
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:175:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestSuiteRunner *, void *)' [-Wcast-function-type]
  175 |     const CFISH_TestSuiteRunner_To_Host_t method = (CFISH_TestSuiteRunner_To_Host_t)cfish_obj_method(self, CFISH_TestSuiteRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Clone':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:182:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  182 |     const CFISH_TestSuiteRunner_Clone_t method = (CFISH_TestSuiteRunner_Clone_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Equals':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:189:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *, cfish_Obj *)' [-Wcast-function-type]
  189 |     const CFISH_TestSuiteRunner_Equals_t method = (CFISH_TestSuiteRunner_Equals_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:196:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestSuiteRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestSuiteRunner *, cfish_Obj *)'} [-Wcast-function-type]
  196 |     const CFISH_TestSuiteRunner_Compare_To_t method = (CFISH_TestSuiteRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_To_String':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:210:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  210 |     const CFISH_TestSuiteRunner_To_String_t method = (CFISH_TestSuiteRunner_To_String_t)cfish_obj_method(self, CFISH_TestSuiteRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:217:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  217 |     const CFISH_TestSuiteRunner_Run_Batch_t method = (CFISH_TestSuiteRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Finish':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:224:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuiteRunner *)' [-Wcast-function-type]
  224 |     const CFISH_TestSuiteRunner_Finish_t method = (CFISH_TestSuiteRunner_Finish_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Finish_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:231:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  231 |     const CFISH_TestSuiteRunner_Get_Num_Tests_t method = (CFISH_TestSuiteRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Tests_Failed':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:238:65: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  238 |     const CFISH_TestSuiteRunner_Get_Num_Tests_Failed_t method = (CFISH_TestSuiteRunner_Get_Num_Tests_Failed_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Tests_Failed_OFFSET);
      |                                                                 ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Batches':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:245:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  245 |     const CFISH_TestSuiteRunner_Get_Num_Batches_t method = (CFISH_TestSuiteRunner_Get_Num_Batches_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Batches_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h: In function 'CFISH_TestSuiteRunner_Get_Num_Batches_Failed':
autogen/include/Clownfish/TestHarness/TestSuiteRunner.h:252:67: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestSuiteRunner *)' {aka 'unsigned int (*)(cfish_TestSuiteRunner *)'} [-Wcast-function-type]
  252 |     const CFISH_TestSuiteRunner_Get_Num_Batches_Failed_t method = (CFISH_TestSuiteRunner_Get_Num_Batches_Failed_t)cfish_obj_method(self, CFISH_TestSuiteRunner_Get_Num_Batches_Failed_OFFSET);
      |                                                                   ^
In file included from autogen/source/cfish_perl.c:39:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
In file included from autogen/source/cfish_perl.c:40:
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:173:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatter *, void *)' [-Wcast-function-type]
  173 |     const CFISH_TestFormatter_To_Host_t method = (CFISH_TestFormatter_To_Host_t)cfish_obj_method(self, CFISH_TestFormatter_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:180:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatter *)' [-Wcast-function-type]
  180 |     const CFISH_TestFormatter_Clone_t method = (CFISH_TestFormatter_Clone_t)cfish_obj_method(self, CFISH_TestFormatter_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:187:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatter *, cfish_Obj *)' [-Wcast-function-type]
  187 |     const CFISH_TestFormatter_Equals_t method = (CFISH_TestFormatter_Equals_t)cfish_obj_method(self, CFISH_TestFormatter_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:194:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatter *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatter *, cfish_Obj *)'} [-Wcast-function-type]
  194 |     const CFISH_TestFormatter_Compare_To_t method = (CFISH_TestFormatter_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatter_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:208:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatter *)' [-Wcast-function-type]
  208 |     const CFISH_TestFormatter_To_String_t method = (CFISH_TestFormatter_To_String_t)cfish_obj_method(self, CFISH_TestFormatter_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:215:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatter *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  215 |     const CFISH_TestFormatter_Batch_Prologue_t method = (CFISH_TestFormatter_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatter_Batch_Prologue_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:222:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  222 |     const CFISH_TestFormatter_VTest_Result_t method = (CFISH_TestFormatter_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Result_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:229:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatter *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  229 |     const CFISH_TestFormatter_VTest_Skip_t method = (CFISH_TestFormatter_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Skip_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:236:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' [-Wcast-function-type]
  236 |     const CFISH_TestFormatter_VTest_Comment_t method = (CFISH_TestFormatter_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatter_VTest_Comment_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:243:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, const char *, __va_list_tag *)' [-Wcast-function-type]
  243 |     const CFISH_TestFormatter_VBatch_Comment_t method = (CFISH_TestFormatter_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatter_VBatch_Comment_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatter_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:250:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatter *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  250 |     const CFISH_TestFormatter_Summary_t method = (CFISH_TestFormatter_Summary_t)cfish_obj_method(self, CFISH_TestFormatter_Summary_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:459:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatterCF *, void *)' [-Wcast-function-type]
  459 |     const CFISH_TestFormatterCF_To_Host_t method = (CFISH_TestFormatterCF_To_Host_t)cfish_obj_method(self, CFISH_TestFormatterCF_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:466:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatterCF *)' [-Wcast-function-type]
  466 |     const CFISH_TestFormatterCF_Clone_t method = (CFISH_TestFormatterCF_Clone_t)cfish_obj_method(self, CFISH_TestFormatterCF_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:473:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatterCF *, cfish_Obj *)' [-Wcast-function-type]
  473 |     const CFISH_TestFormatterCF_Equals_t method = (CFISH_TestFormatterCF_Equals_t)cfish_obj_method(self, CFISH_TestFormatterCF_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:480:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatterCF *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatterCF *, cfish_Obj *)'} [-Wcast-function-type]
  480 |     const CFISH_TestFormatterCF_Compare_To_t method = (CFISH_TestFormatterCF_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatterCF_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:494:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatterCF *)' [-Wcast-function-type]
  494 |     const CFISH_TestFormatterCF_To_String_t method = (CFISH_TestFormatterCF_To_String_t)cfish_obj_method(self, CFISH_TestFormatterCF_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:501:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterCF *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  501 |     const CFISH_TestFormatterCF_Batch_Prologue_t method = (CFISH_TestFormatterCF_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatterCF_Batch_Prologue_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:508:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  508 |     const CFISH_TestFormatterCF_VTest_Result_t method = (CFISH_TestFormatterCF_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Result_OFFSET);
      |                                                         ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:515:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterCF *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  515 |     const CFISH_TestFormatterCF_VTest_Skip_t method = (CFISH_TestFormatterCF_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Skip_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:522:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' [-Wcast-function-type]
  522 |     const CFISH_TestFormatterCF_VTest_Comment_t method = (CFISH_TestFormatterCF_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatterCF_VTest_Comment_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:529:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, const char *, __va_list_tag *)' [-Wcast-function-type]
  529 |     const CFISH_TestFormatterCF_VBatch_Comment_t method = (CFISH_TestFormatterCF_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatterCF_VBatch_Comment_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterCF_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:536:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterCF *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  536 |     const CFISH_TestFormatterCF_Summary_t method = (CFISH_TestFormatterCF_Summary_t)cfish_obj_method(self, CFISH_TestFormatterCF_Summary_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_To_Host':
autogen/include/Clownfish/TestHarness/TestFormatter.h:725:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestFormatterTAP *, void *)' [-Wcast-function-type]
  725 |     const CFISH_TestFormatterTAP_To_Host_t method = (CFISH_TestFormatterTAP_To_Host_t)cfish_obj_method(self, CFISH_TestFormatterTAP_To_Host_OFFSET);
      |                                                     ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Clone':
autogen/include/Clownfish/TestHarness/TestFormatter.h:732:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestFormatterTAP *)' [-Wcast-function-type]
  732 |     const CFISH_TestFormatterTAP_Clone_t method = (CFISH_TestFormatterTAP_Clone_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Clone_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Equals':
autogen/include/Clownfish/TestHarness/TestFormatter.h:739:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestFormatterTAP *, cfish_Obj *)' [-Wcast-function-type]
  739 |     const CFISH_TestFormatterTAP_Equals_t method = (CFISH_TestFormatterTAP_Equals_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Equals_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Compare_To':
autogen/include/Clownfish/TestHarness/TestFormatter.h:746:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestFormatterTAP *, cfish_Obj *)' {aka 'int (*)(cfish_TestFormatterTAP *, cfish_Obj *)'} [-Wcast-function-type]
  746 |     const CFISH_TestFormatterTAP_Compare_To_t method = (CFISH_TestFormatterTAP_Compare_To_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Compare_To_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_To_String':
autogen/include/Clownfish/TestHarness/TestFormatter.h:760:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestFormatterTAP *)' [-Wcast-function-type]
  760 |     const CFISH_TestFormatterTAP_To_String_t method = (CFISH_TestFormatterTAP_To_String_t)cfish_obj_method(self, CFISH_TestFormatterTAP_To_String_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Batch_Prologue':
autogen/include/Clownfish/TestHarness/TestFormatter.h:767:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestFormatterTAP *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  767 |     const CFISH_TestFormatterTAP_Batch_Prologue_t method = (CFISH_TestFormatterTAP_Batch_Prologue_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Batch_Prologue_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Result':
autogen/include/Clownfish/TestHarness/TestFormatter.h:774:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, _Bool,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, _Bool,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  774 |     const CFISH_TestFormatterTAP_VTest_Result_t method = (CFISH_TestFormatterTAP_VTest_Result_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Result_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Skip':
autogen/include/Clownfish/TestHarness/TestFormatter.h:781:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, uint32_t,  uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestFormatterTAP *, unsigned int,  unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  781 |     const CFISH_TestFormatterTAP_VTest_Skip_t method = (CFISH_TestFormatterTAP_VTest_Skip_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Skip_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VTest_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:788:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' [-Wcast-function-type]
  788 |     const CFISH_TestFormatterTAP_VTest_Comment_t method = (CFISH_TestFormatterTAP_VTest_Comment_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VTest_Comment_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_VBatch_Comment':
autogen/include/Clownfish/TestHarness/TestFormatter.h:795:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, const char *, __va_list_tag *)' [-Wcast-function-type]
  795 |     const CFISH_TestFormatterTAP_VBatch_Comment_t method = (CFISH_TestFormatterTAP_VBatch_Comment_t)cfish_obj_method(self, CFISH_TestFormatterTAP_VBatch_Comment_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestFormatter.h: In function 'CFISH_TestFormatterTAP_Summary':
autogen/include/Clownfish/TestHarness/TestFormatter.h:802:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestFormatterTAP *, cfish_TestSuiteRunner *)' [-Wcast-function-type]
  802 |     const CFISH_TestFormatterTAP_Summary_t method = (CFISH_TestFormatterTAP_Summary_t)cfish_obj_method(self, CFISH_TestFormatterTAP_Summary_OFFSET);
      |                                                     ^
In file included from autogen/source/cfish_perl.c:43:
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_To_Host':
autogen/include/Clownfish/TestHarness/TestSuite.h:153:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestSuite *, void *)' [-Wcast-function-type]
  153 |     const CFISH_TestSuite_To_Host_t method = (CFISH_TestSuite_To_Host_t)cfish_obj_method(self, CFISH_TestSuite_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Clone':
autogen/include/Clownfish/TestHarness/TestSuite.h:160:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestSuite *)' [-Wcast-function-type]
  160 |     const CFISH_TestSuite_Clone_t method = (CFISH_TestSuite_Clone_t)cfish_obj_method(self, CFISH_TestSuite_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Equals':
autogen/include/Clownfish/TestHarness/TestSuite.h:167:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuite *, cfish_Obj *)' [-Wcast-function-type]
  167 |     const CFISH_TestSuite_Equals_t method = (CFISH_TestSuite_Equals_t)cfish_obj_method(self, CFISH_TestSuite_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Compare_To':
autogen/include/Clownfish/TestHarness/TestSuite.h:174:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestSuite *, cfish_Obj *)' {aka 'int (*)(cfish_TestSuite *, cfish_Obj *)'} [-Wcast-function-type]
  174 |     const CFISH_TestSuite_Compare_To_t method = (CFISH_TestSuite_Compare_To_t)cfish_obj_method(self, CFISH_TestSuite_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_To_String':
autogen/include/Clownfish/TestHarness/TestSuite.h:188:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestSuite *)' [-Wcast-function-type]
  188 |     const CFISH_TestSuite_To_String_t method = (CFISH_TestSuite_To_String_t)cfish_obj_method(self, CFISH_TestSuite_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Add_Batch':
autogen/include/Clownfish/TestHarness/TestSuite.h:195:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestSuite *, cfish_TestBatch *)' [-Wcast-function-type]
  195 |     const CFISH_TestSuite_Add_Batch_t method = (CFISH_TestSuite_Add_Batch_t)cfish_obj_method(self, CFISH_TestSuite_Add_Batch_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Run_Batch':
autogen/include/Clownfish/TestHarness/TestSuite.h:202:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuite *, cfish_String *, cfish_TestFormatter *)' [-Wcast-function-type]
  202 |     const CFISH_TestSuite_Run_Batch_t method = (CFISH_TestSuite_Run_Batch_t)cfish_obj_method(self, CFISH_TestSuite_Run_Batch_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Run_All_Batches':
autogen/include/Clownfish/TestHarness/TestSuite.h:209:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuite *, cfish_TestFormatter *)' [-Wcast-function-type]
  209 |     const CFISH_TestSuite_Run_All_Batches_t method = (CFISH_TestSuite_Run_All_Batches_t)cfish_obj_method(self, CFISH_TestSuite_Run_All_Batches_OFFSET);
      |                                                      ^
autogen/source/cfish_perl.c: At top level:
autogen/source/cfish_perl.c:111:1: warning: 'S_finish_callback_f64' defined but not used [-Wunused-function]
  111 | S_finish_callback_f64(pTHX_ const char *meth_name) {
      | ^~~~~~~~~~~~~~~~~~~~~
gcc -Icfcore -Ixs -I. -Iautogen/include -I/usr/lib64/perl5/CORE '-DVERSION="0.6.3"' '-DXS_VERSION="0.6.3"' -fPIC -c -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat '-Werror=format-security' '-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3' '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection '-fcf-protection=full' -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE '-D_FILE_OFFSET_BITS=64' -O2 -g -pipe -Wformat '-Werror=format-security' '-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3' '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection '-fcf-protection=full' -g -o lib/Clownfish.o lib/Clownfish.c
gcc -lpthread -shared -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-O1 '-Wl,--build-id=sha1' -Wl,--enable-new-dtags '-specs=/usr/lib/rpm/redhat/redhat-hardened-ld' -L/usr/local/lib -fstack-protector-strong -o blib/arch/auto/Clownfish/Clownfish.so lib/Clownfish.o cfcore/Clownfish/Method.o cfcore/Clownfish/Vector.o cfcore/Clownfish/Num.o cfcore/Clownfish/CharBuf.o cfcore/Clownfish/Util/Memory.o cfcore/Clownfish/Util/SortUtils.o cfcore/Clownfish/Util/Atomic.o cfcore/Clownfish/Err.o cfcore/Clownfish/String.o cfcore/Clownfish/HashIterator.o cfcore/Clownfish/PtrHash.o cfcore/Clownfish/TestHarness/TestBatchRunner.o cfcore/Clownfish/TestHarness/TestSuiteRunner.o cfcore/Clownfish/TestHarness/TestSuite.o cfcore/Clownfish/TestHarness/TestFormatter.o cfcore/Clownfish/TestHarness/TestUtils.o cfcore/Clownfish/Blob.o cfcore/Clownfish/Obj.o cfcore/Clownfish/Boolean.o cfcore/Clownfish/Class.o cfcore/Clownfish/LockFreeRegistry.o cfcore/Clownfish/Hash.o cfcore/Clownfish/ByteBuf.o cfcore/Clownfish.o autogen/source/cfish_parcel.o xs/XSBind.o autogen/source/cfish_perl.o -lperl -l m
make test_objects
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestBlob.c -c -o cftest/Clownfish/Test/TestBlob.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestBlob.h:40,
                 from cftest/Clownfish/Test/TestBlob.c:20:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_To_Host':
autogen/include/Clownfish/Test/TestBlob.h:130:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestBlob *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestBlob_To_Host_t method = (TESTCFISH_TestBlob_To_Host_t)cfish_obj_method(self, TESTCFISH_TestBlob_To_Host_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Clone':
autogen/include/Clownfish/Test/TestBlob.h:137:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestBlob *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestBlob_Clone_t method = (TESTCFISH_TestBlob_Clone_t)cfish_obj_method(self, TESTCFISH_TestBlob_Clone_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Equals':
autogen/include/Clownfish/Test/TestBlob.h:144:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestBlob *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestBlob_Equals_t method = (TESTCFISH_TestBlob_Equals_t)cfish_obj_method(self, TESTCFISH_TestBlob_Equals_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Compare_To':
autogen/include/Clownfish/Test/TestBlob.h:151:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestBlob *, cfish_Obj *)' {aka 'int (*)(testcfish_TestBlob *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestBlob_Compare_To_t method = (TESTCFISH_TestBlob_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestBlob_Compare_To_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_To_String':
autogen/include/Clownfish/Test/TestBlob.h:165:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestBlob *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestBlob_To_String_t method = (TESTCFISH_TestBlob_To_String_t)cfish_obj_method(self, TESTCFISH_TestBlob_To_String_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Run':
autogen/include/Clownfish/Test/TestBlob.h:172:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestBlob *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestBlob_Run_t method = (TESTCFISH_TestBlob_Run_t)cfish_obj_method(self, TESTCFISH_TestBlob_Run_OFFSET);
      |                                             ^
In file included from cftest/Clownfish/Test/TestBlob.c:22:
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_To_Host':
autogen/include/Clownfish/Blob.h:182:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Blob *, void *)' [-Wcast-function-type]
  182 |     const CFISH_Blob_To_Host_t method = (CFISH_Blob_To_Host_t)cfish_obj_method(self, CFISH_Blob_To_Host_OFFSET);
      |                                         ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Clone':
autogen/include/Clownfish/Blob.h:193:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Blob * (*)(cfish_Blob *)' [-Wcast-function-type]
  193 |     const CFISH_Blob_Clone_t method = (CFISH_Blob_Clone_t)cfish_obj_method(self, CFISH_Blob_Clone_OFFSET);
      |                                       ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Equals':
autogen/include/Clownfish/Blob.h:204:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Blob *, cfish_Obj *)' [-Wcast-function-type]
  204 |     const CFISH_Blob_Equals_t method = (CFISH_Blob_Equals_t)cfish_obj_method(self, CFISH_Blob_Equals_OFFSET);
      |                                        ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Compare_To':
autogen/include/Clownfish/Blob.h:215:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Blob *, cfish_Obj *)' {aka 'int (*)(cfish_Blob *, cfish_Obj *)'} [-Wcast-function-type]
  215 |     const CFISH_Blob_Compare_To_t method = (CFISH_Blob_Compare_To_t)cfish_obj_method(self, CFISH_Blob_Compare_To_OFFSET);
      |                                            ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_To_String':
autogen/include/Clownfish/Blob.h:237:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Blob *)' [-Wcast-function-type]
  237 |     const CFISH_Blob_To_String_t method = (CFISH_Blob_To_String_t)cfish_obj_method(self, CFISH_Blob_To_String_OFFSET);
      |                                           ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Get_Size':
autogen/include/Clownfish/Blob.h:248:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Blob *)' {aka 'long unsigned int (*)(cfish_Blob *)'} [-Wcast-function-type]
  248 |     const CFISH_Blob_Get_Size_t method = (CFISH_Blob_Get_Size_t)cfish_obj_method(self, CFISH_Blob_Get_Size_OFFSET);
      |                                          ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Get_Buf':
autogen/include/Clownfish/Blob.h:259:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_Blob *)' [-Wcast-function-type]
  259 |     const CFISH_Blob_Get_Buf_t method = (CFISH_Blob_Get_Buf_t)cfish_obj_method(self, CFISH_Blob_Get_Buf_OFFSET);
      |                                         ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Equals_Bytes':
autogen/include/Clownfish/Blob.h:270:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Blob *, const void *, size_t)' {aka '_Bool (*)(cfish_Blob *, const void *, long unsigned int)'} [-Wcast-function-type]
  270 |     const CFISH_Blob_Equals_Bytes_t method = (CFISH_Blob_Equals_Bytes_t)cfish_obj_method(self, CFISH_Blob_Equals_Bytes_OFFSET);
      |                                              ^
In file included from cftest/Clownfish/Test/TestBlob.c:24:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
In file included from cftest/Clownfish/Test/TestBlob.c:26:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestHash.c -c -o cftest/Clownfish/Test/TestHash.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestHash.h:40,
                 from cftest/Clownfish/Test/TestHash.c:24:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_To_Host':
autogen/include/Clownfish/Test/TestHash.h:130:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHash *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestHash_To_Host_t method = (TESTCFISH_TestHash_To_Host_t)cfish_obj_method(self, TESTCFISH_TestHash_To_Host_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Clone':
autogen/include/Clownfish/Test/TestHash.h:137:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHash *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestHash_Clone_t method = (TESTCFISH_TestHash_Clone_t)cfish_obj_method(self, TESTCFISH_TestHash_Clone_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Equals':
autogen/include/Clownfish/Test/TestHash.h:144:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHash *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestHash_Equals_t method = (TESTCFISH_TestHash_Equals_t)cfish_obj_method(self, TESTCFISH_TestHash_Equals_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Compare_To':
autogen/include/Clownfish/Test/TestHash.h:151:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHash *, cfish_Obj *)' {aka 'int (*)(testcfish_TestHash *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestHash_Compare_To_t method = (TESTCFISH_TestHash_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestHash_Compare_To_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_To_String':
autogen/include/Clownfish/Test/TestHash.h:165:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHash *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestHash_To_String_t method = (TESTCFISH_TestHash_To_String_t)cfish_obj_method(self, TESTCFISH_TestHash_To_String_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Run':
autogen/include/Clownfish/Test/TestHash.h:172:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestHash *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestHash_Run_t method = (TESTCFISH_TestHash_Run_t)cfish_obj_method(self, TESTCFISH_TestHash_Run_OFFSET);
      |                                             ^
In file included from autogen/include/Clownfish/String.h:41,
                 from cftest/Clownfish/Test/TestHash.c:26:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from autogen/include/Clownfish/String.h:44:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from cftest/Clownfish/Test/TestHash.c:27:
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_To_Host':
autogen/include/Clownfish/Boolean.h:159:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Boolean *, void *)' [-Wcast-function-type]
  159 |     const CFISH_Bool_To_Host_t method = (CFISH_Bool_To_Host_t)cfish_obj_method(self, CFISH_Bool_To_Host_OFFSET);
      |                                         ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Clone':
autogen/include/Clownfish/Boolean.h:170:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Boolean * (*)(cfish_Boolean *)' [-Wcast-function-type]
  170 |     const CFISH_Bool_Clone_t method = (CFISH_Bool_Clone_t)cfish_obj_method(self, CFISH_Bool_Clone_OFFSET);
      |                                       ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Equals':
autogen/include/Clownfish/Boolean.h:181:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Boolean *, cfish_Obj *)' [-Wcast-function-type]
  181 |     const CFISH_Bool_Equals_t method = (CFISH_Bool_Equals_t)cfish_obj_method(self, CFISH_Bool_Equals_OFFSET);
      |                                        ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Compare_To':
autogen/include/Clownfish/Boolean.h:192:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Boolean *, cfish_Obj *)' {aka 'int (*)(cfish_Boolean *, cfish_Obj *)'} [-Wcast-function-type]
  192 |     const CFISH_Bool_Compare_To_t method = (CFISH_Bool_Compare_To_t)cfish_obj_method(self, CFISH_Bool_Compare_To_OFFSET);
      |                                            ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_To_String':
autogen/include/Clownfish/Boolean.h:214:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Boolean *)' [-Wcast-function-type]
  214 |     const CFISH_Bool_To_String_t method = (CFISH_Bool_To_String_t)cfish_obj_method(self, CFISH_Bool_To_String_OFFSET);
      |                                           ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Get_Value':
autogen/include/Clownfish/Boolean.h:225:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Boolean *)' [-Wcast-function-type]
  225 |     const CFISH_Bool_Get_Value_t method = (CFISH_Bool_Get_Value_t)cfish_obj_method(self, CFISH_Bool_Get_Value_OFFSET);
      |                                           ^
In file included from cftest/Clownfish/Test/TestHash.c:28:
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_To_Host':
autogen/include/Clownfish/Hash.h:225:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Hash *, void *)' [-Wcast-function-type]
  225 |     const CFISH_Hash_To_Host_t method = (CFISH_Hash_To_Host_t)cfish_obj_method(self, CFISH_Hash_To_Host_OFFSET);
      |                                         ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Clone':
autogen/include/Clownfish/Hash.h:236:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *)' [-Wcast-function-type]
  236 |     const CFISH_Hash_Clone_t method = (CFISH_Hash_Clone_t)cfish_obj_method(self, CFISH_Hash_Clone_OFFSET);
      |                                       ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Equals':
autogen/include/Clownfish/Hash.h:247:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Hash *, cfish_Obj *)' [-Wcast-function-type]
  247 |     const CFISH_Hash_Equals_t method = (CFISH_Hash_Equals_t)cfish_obj_method(self, CFISH_Hash_Equals_OFFSET);
      |                                        ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Compare_To':
autogen/include/Clownfish/Hash.h:258:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Hash *, cfish_Obj *)' {aka 'int (*)(cfish_Hash *, cfish_Obj *)'} [-Wcast-function-type]
  258 |     const CFISH_Hash_Compare_To_t method = (CFISH_Hash_Compare_To_t)cfish_obj_method(self, CFISH_Hash_Compare_To_OFFSET);
      |                                            ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_To_String':
autogen/include/Clownfish/Hash.h:280:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Hash *)' [-Wcast-function-type]
  280 |     const CFISH_Hash_To_String_t method = (CFISH_Hash_To_String_t)cfish_obj_method(self, CFISH_Hash_To_String_OFFSET);
      |                                           ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Store':
autogen/include/Clownfish/Hash.h:302:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Hash *, cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  302 |     const CFISH_Hash_Store_t method = (CFISH_Hash_Store_t)cfish_obj_method(self, CFISH_Hash_Store_OFFSET);
      |                                       ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Store_Utf8':
autogen/include/Clownfish/Hash.h:313:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Hash *, const char *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Hash *, const char *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  313 |     const CFISH_Hash_Store_Utf8_t method = (CFISH_Hash_Store_Utf8_t)cfish_obj_method(self, CFISH_Hash_Store_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Fetch':
autogen/include/Clownfish/Hash.h:324:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *, cfish_String *)' [-Wcast-function-type]
  324 |     const CFISH_Hash_Fetch_t method = (CFISH_Hash_Fetch_t)cfish_obj_method(self, CFISH_Hash_Fetch_OFFSET);
      |                                       ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Fetch_Utf8':
autogen/include/Clownfish/Hash.h:335:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *, const char *, size_t)' {aka 'cfish_Obj * (*)(cfish_Hash *, const char *, long unsigned int)'} [-Wcast-function-type]
  335 |     const CFISH_Hash_Fetch_Utf8_t method = (CFISH_Hash_Fetch_Utf8_t)cfish_obj_method(self, CFISH_Hash_Fetch_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Delete':
autogen/include/Clownfish/Hash.h:346:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *, cfish_String *)' [-Wcast-function-type]
  346 |     const CFISH_Hash_Delete_t method = (CFISH_Hash_Delete_t)cfish_obj_method(self, CFISH_Hash_Delete_OFFSET);
      |                                        ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Delete_Utf8':
autogen/include/Clownfish/Hash.h:357:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *, const char *, size_t)' {aka 'cfish_Obj * (*)(cfish_Hash *, const char *, long unsigned int)'} [-Wcast-function-type]
  357 |     const CFISH_Hash_Delete_Utf8_t method = (CFISH_Hash_Delete_Utf8_t)cfish_obj_method(self, CFISH_Hash_Delete_Utf8_OFFSET);
      |                                             ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Has_Key':
autogen/include/Clownfish/Hash.h:368:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Hash *, cfish_String *)' [-Wcast-function-type]
  368 |     const CFISH_Hash_Has_Key_t method = (CFISH_Hash_Has_Key_t)cfish_obj_method(self, CFISH_Hash_Has_Key_OFFSET);
      |                                         ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Keys':
autogen/include/Clownfish/Hash.h:379:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Hash *)' [-Wcast-function-type]
  379 |     const CFISH_Hash_Keys_t method = (CFISH_Hash_Keys_t)cfish_obj_method(self, CFISH_Hash_Keys_OFFSET);
      |                                      ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Values':
autogen/include/Clownfish/Hash.h:390:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Hash *)' [-Wcast-function-type]
  390 |     const CFISH_Hash_Values_t method = (CFISH_Hash_Values_t)cfish_obj_method(self, CFISH_Hash_Values_OFFSET);
      |                                        ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Get_Capacity':
autogen/include/Clownfish/Hash.h:401:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Hash *)' {aka 'long unsigned int (*)(cfish_Hash *)'} [-Wcast-function-type]
  401 |     const CFISH_Hash_Get_Capacity_t method = (CFISH_Hash_Get_Capacity_t)cfish_obj_method(self, CFISH_Hash_Get_Capacity_OFFSET);
      |                                              ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Get_Size':
autogen/include/Clownfish/Hash.h:412:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Hash *)' {aka 'long unsigned int (*)(cfish_Hash *)'} [-Wcast-function-type]
  412 |     const CFISH_Hash_Get_Size_t method = (CFISH_Hash_Get_Size_t)cfish_obj_method(self, CFISH_Hash_Get_Size_OFFSET);
      |                                          ^
In file included from cftest/Clownfish/Test/TestHash.c:30:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
In file included from cftest/Clownfish/Test/TestHash.c:32:
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_To_Host':
autogen/include/Clownfish/Vector.h:245:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Vector *, void *)' [-Wcast-function-type]
  245 |     const CFISH_Vec_To_Host_t method = (CFISH_Vec_To_Host_t)cfish_obj_method(self, CFISH_Vec_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Clone':
autogen/include/Clownfish/Vector.h:256:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Vector *)' [-Wcast-function-type]
  256 |     const CFISH_Vec_Clone_t method = (CFISH_Vec_Clone_t)cfish_obj_method(self, CFISH_Vec_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Equals':
autogen/include/Clownfish/Vector.h:267:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Vector *, cfish_Obj *)' [-Wcast-function-type]
  267 |     const CFISH_Vec_Equals_t method = (CFISH_Vec_Equals_t)cfish_obj_method(self, CFISH_Vec_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Compare_To':
autogen/include/Clownfish/Vector.h:278:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Vector *, cfish_Obj *)' {aka 'int (*)(cfish_Vector *, cfish_Obj *)'} [-Wcast-function-type]
  278 |     const CFISH_Vec_Compare_To_t method = (CFISH_Vec_Compare_To_t)cfish_obj_method(self, CFISH_Vec_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_To_String':
autogen/include/Clownfish/Vector.h:300:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Vector *)' [-Wcast-function-type]
  300 |     const CFISH_Vec_To_String_t method = (CFISH_Vec_To_String_t)cfish_obj_method(self, CFISH_Vec_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Push':
autogen/include/Clownfish/Vector.h:311:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, cfish_Obj *)' [-Wcast-function-type]
  311 |     const CFISH_Vec_Push_t method = (CFISH_Vec_Push_t)cfish_obj_method(self, CFISH_Vec_Push_OFFSET);
      |                                     ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Push_All':
autogen/include/Clownfish/Vector.h:322:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, cfish_Vector *)' [-Wcast-function-type]
  322 |     const CFISH_Vec_Push_All_t method = (CFISH_Vec_Push_All_t)cfish_obj_method(self, CFISH_Vec_Push_All_OFFSET);
      |                                         ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Pop':
autogen/include/Clownfish/Vector.h:333:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *)' [-Wcast-function-type]
  333 |     const CFISH_Vec_Pop_t method = (CFISH_Vec_Pop_t)cfish_obj_method(self, CFISH_Vec_Pop_OFFSET);
      |                                    ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Insert':
autogen/include/Clownfish/Vector.h:344:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  344 |     const CFISH_Vec_Insert_t method = (CFISH_Vec_Insert_t)cfish_obj_method(self, CFISH_Vec_Insert_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Insert_All':
autogen/include/Clownfish/Vector.h:355:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Vector *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Vector *)'} [-Wcast-function-type]
  355 |     const CFISH_Vec_Insert_All_t method = (CFISH_Vec_Insert_All_t)cfish_obj_method(self, CFISH_Vec_Insert_All_OFFSET);
      |                                           ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Grow':
autogen/include/Clownfish/Vector.h:366:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  366 |     const CFISH_Vec_Grow_t method = (CFISH_Vec_Grow_t)cfish_obj_method(self, CFISH_Vec_Grow_OFFSET);
      |                                     ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Fetch':
autogen/include/Clownfish/Vector.h:377:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *, size_t)' {aka 'cfish_Obj * (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  377 |     const CFISH_Vec_Fetch_t method = (CFISH_Vec_Fetch_t)cfish_obj_method(self, CFISH_Vec_Fetch_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Store':
autogen/include/Clownfish/Vector.h:388:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  388 |     const CFISH_Vec_Store_t method = (CFISH_Vec_Store_t)cfish_obj_method(self, CFISH_Vec_Store_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Delete':
autogen/include/Clownfish/Vector.h:399:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *, size_t)' {aka 'cfish_Obj * (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  399 |     const CFISH_Vec_Delete_t method = (CFISH_Vec_Delete_t)cfish_obj_method(self, CFISH_Vec_Delete_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Excise':
autogen/include/Clownfish/Vector.h:410:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  410 |     const CFISH_Vec_Excise_t method = (CFISH_Vec_Excise_t)cfish_obj_method(self, CFISH_Vec_Excise_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Resize':
autogen/include/Clownfish/Vector.h:432:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  432 |     const CFISH_Vec_Resize_t method = (CFISH_Vec_Resize_t)cfish_obj_method(self, CFISH_Vec_Resize_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Get_Size':
autogen/include/Clownfish/Vector.h:454:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Vector *)' {aka 'long unsigned int (*)(cfish_Vector *)'} [-Wcast-function-type]
  454 |     const CFISH_Vec_Get_Size_t method = (CFISH_Vec_Get_Size_t)cfish_obj_method(self, CFISH_Vec_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Get_Capacity':
autogen/include/Clownfish/Vector.h:465:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Vector *)' {aka 'long unsigned int (*)(cfish_Vector *)'} [-Wcast-function-type]
  465 |     const CFISH_Vec_Get_Capacity_t method = (CFISH_Vec_Get_Capacity_t)cfish_obj_method(self, CFISH_Vec_Get_Capacity_OFFSET);
      |                                             ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Slice':
autogen/include/Clownfish/Vector.h:476:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Vector *, size_t,  size_t)' {aka 'cfish_Vector * (*)(cfish_Vector *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  476 |     const CFISH_Vec_Slice_t method = (CFISH_Vec_Slice_t)cfish_obj_method(self, CFISH_Vec_Slice_OFFSET);
      |                                      ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/Util/TestAtomic.c -c -o cftest/Clownfish/Test/Util/TestAtomic.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/Util/TestAtomic.h:40,
                 from cftest/Clownfish/Test/Util/TestAtomic.c:20:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_To_Host':
autogen/include/Clownfish/Test/Util/TestAtomic.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestAtomic *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestAtomic_To_Host_t method = (TESTCFISH_TestAtomic_To_Host_t)cfish_obj_method(self, TESTCFISH_TestAtomic_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Clone':
autogen/include/Clownfish/Test/Util/TestAtomic.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestAtomic *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestAtomic_Clone_t method = (TESTCFISH_TestAtomic_Clone_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Equals':
autogen/include/Clownfish/Test/Util/TestAtomic.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestAtomic *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestAtomic_Equals_t method = (TESTCFISH_TestAtomic_Equals_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Compare_To':
autogen/include/Clownfish/Test/Util/TestAtomic.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestAtomic *, cfish_Obj *)' {aka 'int (*)(testcfish_TestAtomic *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestAtomic_Compare_To_t method = (TESTCFISH_TestAtomic_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_To_String':
autogen/include/Clownfish/Test/Util/TestAtomic.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestAtomic *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestAtomic_To_String_t method = (TESTCFISH_TestAtomic_To_String_t)cfish_obj_method(self, TESTCFISH_TestAtomic_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Run':
autogen/include/Clownfish/Test/Util/TestAtomic.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestAtomic *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestAtomic_Run_t method = (TESTCFISH_TestAtomic_Run_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Run_OFFSET);
      |                                               ^
In file included from cftest/Clownfish/Test/Util/TestAtomic.c:23:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
In file included from cftest/Clownfish/Test/Util/TestAtomic.c:25:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/Util/TestMemory.c -c -o cftest/Clownfish/Test/Util/TestMemory.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/Util/TestMemory.h:40,
                 from cftest/Clownfish/Test/Util/TestMemory.c:22:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_To_Host':
autogen/include/Clownfish/Test/Util/TestMemory.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestMemory *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestMemory_To_Host_t method = (TESTCFISH_TestMemory_To_Host_t)cfish_obj_method(self, TESTCFISH_TestMemory_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Clone':
autogen/include/Clownfish/Test/Util/TestMemory.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestMemory *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestMemory_Clone_t method = (TESTCFISH_TestMemory_Clone_t)cfish_obj_method(self, TESTCFISH_TestMemory_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Equals':
autogen/include/Clownfish/Test/Util/TestMemory.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestMemory *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestMemory_Equals_t method = (TESTCFISH_TestMemory_Equals_t)cfish_obj_method(self, TESTCFISH_TestMemory_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Compare_To':
autogen/include/Clownfish/Test/Util/TestMemory.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestMemory *, cfish_Obj *)' {aka 'int (*)(testcfish_TestMemory *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestMemory_Compare_To_t method = (TESTCFISH_TestMemory_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestMemory_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_To_String':
autogen/include/Clownfish/Test/Util/TestMemory.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestMemory *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestMemory_To_String_t method = (TESTCFISH_TestMemory_To_String_t)cfish_obj_method(self, TESTCFISH_TestMemory_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Run':
autogen/include/Clownfish/Test/Util/TestMemory.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestMemory *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestMemory_Run_t method = (TESTCFISH_TestMemory_Run_t)cfish_obj_method(self, TESTCFISH_TestMemory_Run_OFFSET);
      |                                               ^
In file included from cftest/Clownfish/Test/Util/TestMemory.c:25:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
In file included from cftest/Clownfish/Test/Util/TestMemory.c:27:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestVector.c -c -o cftest/Clownfish/Test/TestVector.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestVector.h:40,
                 from cftest/Clownfish/Test/TestVector.c:26:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_To_Host':
autogen/include/Clownfish/Test/TestVector.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestVector *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestVector_To_Host_t method = (TESTCFISH_TestVector_To_Host_t)cfish_obj_method(self, TESTCFISH_TestVector_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Clone':
autogen/include/Clownfish/Test/TestVector.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestVector *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestVector_Clone_t method = (TESTCFISH_TestVector_Clone_t)cfish_obj_method(self, TESTCFISH_TestVector_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Equals':
autogen/include/Clownfish/Test/TestVector.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestVector *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestVector_Equals_t method = (TESTCFISH_TestVector_Equals_t)cfish_obj_method(self, TESTCFISH_TestVector_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Compare_To':
autogen/include/Clownfish/Test/TestVector.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestVector *, cfish_Obj *)' {aka 'int (*)(testcfish_TestVector *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestVector_Compare_To_t method = (TESTCFISH_TestVector_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestVector_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_To_String':
autogen/include/Clownfish/Test/TestVector.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestVector *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestVector_To_String_t method = (TESTCFISH_TestVector_To_String_t)cfish_obj_method(self, TESTCFISH_TestVector_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Run':
autogen/include/Clownfish/Test/TestVector.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestVector *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestVector_Run_t method = (TESTCFISH_TestVector_Run_t)cfish_obj_method(self, TESTCFISH_TestVector_Run_OFFSET);
      |                                               ^
In file included from autogen/include/Clownfish/String.h:41,
                 from cftest/Clownfish/Test/TestVector.c:28:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from autogen/include/Clownfish/String.h:44:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from cftest/Clownfish/Test/TestVector.c:29:
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_To_Host':
autogen/include/Clownfish/Boolean.h:159:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Boolean *, void *)' [-Wcast-function-type]
  159 |     const CFISH_Bool_To_Host_t method = (CFISH_Bool_To_Host_t)cfish_obj_method(self, CFISH_Bool_To_Host_OFFSET);
      |                                         ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Clone':
autogen/include/Clownfish/Boolean.h:170:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Boolean * (*)(cfish_Boolean *)' [-Wcast-function-type]
  170 |     const CFISH_Bool_Clone_t method = (CFISH_Bool_Clone_t)cfish_obj_method(self, CFISH_Bool_Clone_OFFSET);
      |                                       ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Equals':
autogen/include/Clownfish/Boolean.h:181:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Boolean *, cfish_Obj *)' [-Wcast-function-type]
  181 |     const CFISH_Bool_Equals_t method = (CFISH_Bool_Equals_t)cfish_obj_method(self, CFISH_Bool_Equals_OFFSET);
      |                                        ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Compare_To':
autogen/include/Clownfish/Boolean.h:192:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Boolean *, cfish_Obj *)' {aka 'int (*)(cfish_Boolean *, cfish_Obj *)'} [-Wcast-function-type]
  192 |     const CFISH_Bool_Compare_To_t method = (CFISH_Bool_Compare_To_t)cfish_obj_method(self, CFISH_Bool_Compare_To_OFFSET);
      |                                            ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_To_String':
autogen/include/Clownfish/Boolean.h:214:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Boolean *)' [-Wcast-function-type]
  214 |     const CFISH_Bool_To_String_t method = (CFISH_Bool_To_String_t)cfish_obj_method(self, CFISH_Bool_To_String_OFFSET);
      |                                           ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Get_Value':
autogen/include/Clownfish/Boolean.h:225:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Boolean *)' [-Wcast-function-type]
  225 |     const CFISH_Bool_Get_Value_t method = (CFISH_Bool_Get_Value_t)cfish_obj_method(self, CFISH_Bool_Get_Value_OFFSET);
      |                                           ^
In file included from cftest/Clownfish/Test/TestVector.c:31:
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_To_Host':
autogen/include/Clownfish/Num.h:162:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Float *, void *)' [-Wcast-function-type]
  162 |     const CFISH_Float_To_Host_t method = (CFISH_Float_To_Host_t)cfish_obj_method(self, CFISH_Float_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Clone':
autogen/include/Clownfish/Num.h:173:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Float * (*)(cfish_Float *)' [-Wcast-function-type]
  173 |     const CFISH_Float_Clone_t method = (CFISH_Float_Clone_t)cfish_obj_method(self, CFISH_Float_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Equals':
autogen/include/Clownfish/Num.h:184:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Float *, cfish_Obj *)' [-Wcast-function-type]
  184 |     const CFISH_Float_Equals_t method = (CFISH_Float_Equals_t)cfish_obj_method(self, CFISH_Float_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Compare_To':
autogen/include/Clownfish/Num.h:195:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Float *, cfish_Obj *)' {aka 'int (*)(cfish_Float *, cfish_Obj *)'} [-Wcast-function-type]
  195 |     const CFISH_Float_Compare_To_t method = (CFISH_Float_Compare_To_t)cfish_obj_method(self, CFISH_Float_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_To_String':
autogen/include/Clownfish/Num.h:217:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Float *)' [-Wcast-function-type]
  217 |     const CFISH_Float_To_String_t method = (CFISH_Float_To_String_t)cfish_obj_method(self, CFISH_Float_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Get_Value':
autogen/include/Clownfish/Num.h:228:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_Float *)' [-Wcast-function-type]
  228 |     const CFISH_Float_Get_Value_t method = (CFISH_Float_Get_Value_t)cfish_obj_method(self, CFISH_Float_Get_Value_OFFSET);
      |                                            ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_To_I64':
autogen/include/Clownfish/Num.h:239:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_Float *)' {aka 'long int (*)(cfish_Float *)'} [-Wcast-function-type]
  239 |     const CFISH_Float_To_I64_t method = (CFISH_Float_To_I64_t)cfish_obj_method(self, CFISH_Float_To_I64_OFFSET);
      |                                         ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_To_Host':
autogen/include/Clownfish/Num.h:417:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Integer *, void *)' [-Wcast-function-type]
  417 |     const CFISH_Int_To_Host_t method = (CFISH_Int_To_Host_t)cfish_obj_method(self, CFISH_Int_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Clone':
autogen/include/Clownfish/Num.h:428:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Integer * (*)(cfish_Integer *)' [-Wcast-function-type]
  428 |     const CFISH_Int_Clone_t method = (CFISH_Int_Clone_t)cfish_obj_method(self, CFISH_Int_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Equals':
autogen/include/Clownfish/Num.h:439:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Integer *, cfish_Obj *)' [-Wcast-function-type]
  439 |     const CFISH_Int_Equals_t method = (CFISH_Int_Equals_t)cfish_obj_method(self, CFISH_Int_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Compare_To':
autogen/include/Clownfish/Num.h:450:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Integer *, cfish_Obj *)' {aka 'int (*)(cfish_Integer *, cfish_Obj *)'} [-Wcast-function-type]
  450 |     const CFISH_Int_Compare_To_t method = (CFISH_Int_Compare_To_t)cfish_obj_method(self, CFISH_Int_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_To_String':
autogen/include/Clownfish/Num.h:472:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Integer *)' [-Wcast-function-type]
  472 |     const CFISH_Int_To_String_t method = (CFISH_Int_To_String_t)cfish_obj_method(self, CFISH_Int_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Get_Value':
autogen/include/Clownfish/Num.h:483:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_Integer *)' {aka 'long int (*)(cfish_Integer *)'} [-Wcast-function-type]
  483 |     const CFISH_Int_Get_Value_t method = (CFISH_Int_Get_Value_t)cfish_obj_method(self, CFISH_Int_Get_Value_OFFSET);
      |                                          ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_To_F64':
autogen/include/Clownfish/Num.h:494:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_Integer *)' [-Wcast-function-type]
  494 |     const CFISH_Int_To_F64_t method = (CFISH_Int_To_F64_t)cfish_obj_method(self, CFISH_Int_To_F64_OFFSET);
      |                                       ^
In file included from cftest/Clownfish/Test/TestVector.c:33:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
In file included from cftest/Clownfish/Test/TestVector.c:35:
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_To_Host':
autogen/include/Clownfish/Vector.h:245:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Vector *, void *)' [-Wcast-function-type]
  245 |     const CFISH_Vec_To_Host_t method = (CFISH_Vec_To_Host_t)cfish_obj_method(self, CFISH_Vec_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Clone':
autogen/include/Clownfish/Vector.h:256:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Vector *)' [-Wcast-function-type]
  256 |     const CFISH_Vec_Clone_t method = (CFISH_Vec_Clone_t)cfish_obj_method(self, CFISH_Vec_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Equals':
autogen/include/Clownfish/Vector.h:267:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Vector *, cfish_Obj *)' [-Wcast-function-type]
  267 |     const CFISH_Vec_Equals_t method = (CFISH_Vec_Equals_t)cfish_obj_method(self, CFISH_Vec_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Compare_To':
autogen/include/Clownfish/Vector.h:278:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Vector *, cfish_Obj *)' {aka 'int (*)(cfish_Vector *, cfish_Obj *)'} [-Wcast-function-type]
  278 |     const CFISH_Vec_Compare_To_t method = (CFISH_Vec_Compare_To_t)cfish_obj_method(self, CFISH_Vec_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_To_String':
autogen/include/Clownfish/Vector.h:300:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Vector *)' [-Wcast-function-type]
  300 |     const CFISH_Vec_To_String_t method = (CFISH_Vec_To_String_t)cfish_obj_method(self, CFISH_Vec_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Push':
autogen/include/Clownfish/Vector.h:311:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, cfish_Obj *)' [-Wcast-function-type]
  311 |     const CFISH_Vec_Push_t method = (CFISH_Vec_Push_t)cfish_obj_method(self, CFISH_Vec_Push_OFFSET);
      |                                     ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Push_All':
autogen/include/Clownfish/Vector.h:322:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, cfish_Vector *)' [-Wcast-function-type]
  322 |     const CFISH_Vec_Push_All_t method = (CFISH_Vec_Push_All_t)cfish_obj_method(self, CFISH_Vec_Push_All_OFFSET);
      |                                         ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Pop':
autogen/include/Clownfish/Vector.h:333:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *)' [-Wcast-function-type]
  333 |     const CFISH_Vec_Pop_t method = (CFISH_Vec_Pop_t)cfish_obj_method(self, CFISH_Vec_Pop_OFFSET);
      |                                    ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Insert':
autogen/include/Clownfish/Vector.h:344:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  344 |     const CFISH_Vec_Insert_t method = (CFISH_Vec_Insert_t)cfish_obj_method(self, CFISH_Vec_Insert_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Insert_All':
autogen/include/Clownfish/Vector.h:355:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Vector *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Vector *)'} [-Wcast-function-type]
  355 |     const CFISH_Vec_Insert_All_t method = (CFISH_Vec_Insert_All_t)cfish_obj_method(self, CFISH_Vec_Insert_All_OFFSET);
      |                                           ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Grow':
autogen/include/Clownfish/Vector.h:366:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  366 |     const CFISH_Vec_Grow_t method = (CFISH_Vec_Grow_t)cfish_obj_method(self, CFISH_Vec_Grow_OFFSET);
      |                                     ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Fetch':
autogen/include/Clownfish/Vector.h:377:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *, size_t)' {aka 'cfish_Obj * (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  377 |     const CFISH_Vec_Fetch_t method = (CFISH_Vec_Fetch_t)cfish_obj_method(self, CFISH_Vec_Fetch_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Store':
autogen/include/Clownfish/Vector.h:388:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  388 |     const CFISH_Vec_Store_t method = (CFISH_Vec_Store_t)cfish_obj_method(self, CFISH_Vec_Store_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Delete':
autogen/include/Clownfish/Vector.h:399:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *, size_t)' {aka 'cfish_Obj * (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  399 |     const CFISH_Vec_Delete_t method = (CFISH_Vec_Delete_t)cfish_obj_method(self, CFISH_Vec_Delete_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Excise':
autogen/include/Clownfish/Vector.h:410:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  410 |     const CFISH_Vec_Excise_t method = (CFISH_Vec_Excise_t)cfish_obj_method(self, CFISH_Vec_Excise_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Resize':
autogen/include/Clownfish/Vector.h:432:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  432 |     const CFISH_Vec_Resize_t method = (CFISH_Vec_Resize_t)cfish_obj_method(self, CFISH_Vec_Resize_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Get_Size':
autogen/include/Clownfish/Vector.h:454:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Vector *)' {aka 'long unsigned int (*)(cfish_Vector *)'} [-Wcast-function-type]
  454 |     const CFISH_Vec_Get_Size_t method = (CFISH_Vec_Get_Size_t)cfish_obj_method(self, CFISH_Vec_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Get_Capacity':
autogen/include/Clownfish/Vector.h:465:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Vector *)' {aka 'long unsigned int (*)(cfish_Vector *)'} [-Wcast-function-type]
  465 |     const CFISH_Vec_Get_Capacity_t method = (CFISH_Vec_Get_Capacity_t)cfish_obj_method(self, CFISH_Vec_Get_Capacity_OFFSET);
      |                                             ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Slice':
autogen/include/Clownfish/Vector.h:476:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Vector *, size_t,  size_t)' {aka 'cfish_Vector * (*)(cfish_Vector *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  476 |     const CFISH_Vec_Slice_t method = (CFISH_Vec_Slice_t)cfish_obj_method(self, CFISH_Vec_Slice_OFFSET);
      |                                      ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestObj.c -c -o cftest/Clownfish/Test/TestObj.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestObj.h:40,
                 from cftest/Clownfish/Test/TestObj.c:24:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_To_Host':
autogen/include/Clownfish/Test/TestObj.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestObj *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestObj_To_Host_t method = (TESTCFISH_TestObj_To_Host_t)cfish_obj_method(self, TESTCFISH_TestObj_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Clone':
autogen/include/Clownfish/Test/TestObj.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestObj *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestObj_Clone_t method = (TESTCFISH_TestObj_Clone_t)cfish_obj_method(self, TESTCFISH_TestObj_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Equals':
autogen/include/Clownfish/Test/TestObj.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestObj *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestObj_Equals_t method = (TESTCFISH_TestObj_Equals_t)cfish_obj_method(self, TESTCFISH_TestObj_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Compare_To':
autogen/include/Clownfish/Test/TestObj.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestObj *, cfish_Obj *)' {aka 'int (*)(testcfish_TestObj *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestObj_Compare_To_t method = (TESTCFISH_TestObj_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestObj_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_To_String':
autogen/include/Clownfish/Test/TestObj.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestObj *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestObj_To_String_t method = (TESTCFISH_TestObj_To_String_t)cfish_obj_method(self, TESTCFISH_TestObj_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Run':
autogen/include/Clownfish/Test/TestObj.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestObj *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestObj_Run_t method = (TESTCFISH_TestObj_Run_t)cfish_obj_method(self, TESTCFISH_TestObj_Run_OFFSET);
      |                                            ^
In file included from autogen/include/Clownfish/String.h:41,
                 from cftest/Clownfish/Test/TestObj.c:26:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from autogen/include/Clownfish/String.h:44:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from cftest/Clownfish/Test/TestObj.c:29:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestErr.c -c -o cftest/Clownfish/Test/TestErr.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestErr.h:40,
                 from cftest/Clownfish/Test/TestErr.c:20:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_To_Host':
autogen/include/Clownfish/Test/TestErr.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestErr *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestErr_To_Host_t method = (TESTCFISH_TestErr_To_Host_t)cfish_obj_method(self, TESTCFISH_TestErr_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Clone':
autogen/include/Clownfish/Test/TestErr.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestErr *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestErr_Clone_t method = (TESTCFISH_TestErr_Clone_t)cfish_obj_method(self, TESTCFISH_TestErr_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Equals':
autogen/include/Clownfish/Test/TestErr.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestErr *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestErr_Equals_t method = (TESTCFISH_TestErr_Equals_t)cfish_obj_method(self, TESTCFISH_TestErr_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Compare_To':
autogen/include/Clownfish/Test/TestErr.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestErr *, cfish_Obj *)' {aka 'int (*)(testcfish_TestErr *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestErr_Compare_To_t method = (TESTCFISH_TestErr_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestErr_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_To_String':
autogen/include/Clownfish/Test/TestErr.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestErr *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestErr_To_String_t method = (TESTCFISH_TestErr_To_String_t)cfish_obj_method(self, TESTCFISH_TestErr_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Run':
autogen/include/Clownfish/Test/TestErr.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestErr *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestErr_Run_t method = (TESTCFISH_TestErr_Run_t)cfish_obj_method(self, TESTCFISH_TestErr_Run_OFFSET);
      |                                            ^
In file included from autogen/include/Clownfish/String.h:41,
                 from cftest/Clownfish/Test/TestErr.c:22:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from autogen/include/Clownfish/String.h:44:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from cftest/Clownfish/Test/TestErr.c:25:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestLockFreeRegistry.c -c -o cftest/Clownfish/Test/TestLockFreeRegistry.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestLockFreeRegistry.h:40,
                 from cftest/Clownfish/Test/TestLockFreeRegistry.c:23:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_To_Host':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:130:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestLockFreeRegistry *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestLFReg_To_Host_t method = (TESTCFISH_TestLFReg_To_Host_t)cfish_obj_method(self, TESTCFISH_TestLFReg_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Clone':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:137:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestLockFreeRegistry *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestLFReg_Clone_t method = (TESTCFISH_TestLFReg_Clone_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Equals':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:144:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestLockFreeRegistry *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestLFReg_Equals_t method = (TESTCFISH_TestLFReg_Equals_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Compare_To':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:151:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestLockFreeRegistry *, cfish_Obj *)' {aka 'int (*)(testcfish_TestLockFreeRegistry *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestLFReg_Compare_To_t method = (TESTCFISH_TestLFReg_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_To_String':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:165:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestLockFreeRegistry *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestLFReg_To_String_t method = (TESTCFISH_TestLFReg_To_String_t)cfish_obj_method(self, TESTCFISH_TestLFReg_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Run':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:172:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestLockFreeRegistry *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestLFReg_Run_t method = (TESTCFISH_TestLFReg_Run_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Run_OFFSET);
      |                                              ^
In file included from cftest/Clownfish/Test/TestLockFreeRegistry.c:25:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cftest/Clownfish/Test/TestLockFreeRegistry.c:27:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from cftest/Clownfish/Test/TestLockFreeRegistry.c:29:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestHashIterator.c -c -o cftest/Clownfish/Test/TestHashIterator.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestHashIterator.h:40,
                 from cftest/Clownfish/Test/TestHashIterator.c:23:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_To_Host':
autogen/include/Clownfish/Test/TestHashIterator.h:130:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHashIterator *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestHashIterator_To_Host_t method = (TESTCFISH_TestHashIterator_To_Host_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_To_Host_OFFSET);
      |                                                         ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Clone':
autogen/include/Clownfish/Test/TestHashIterator.h:137:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHashIterator *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestHashIterator_Clone_t method = (TESTCFISH_TestHashIterator_Clone_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Clone_OFFSET);
      |                                                       ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Equals':
autogen/include/Clownfish/Test/TestHashIterator.h:144:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHashIterator *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestHashIterator_Equals_t method = (TESTCFISH_TestHashIterator_Equals_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Equals_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Compare_To':
autogen/include/Clownfish/Test/TestHashIterator.h:151:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHashIterator *, cfish_Obj *)' {aka 'int (*)(testcfish_TestHashIterator *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestHashIterator_Compare_To_t method = (TESTCFISH_TestHashIterator_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Compare_To_OFFSET);
      |                                                            ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_To_String':
autogen/include/Clownfish/Test/TestHashIterator.h:165:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHashIterator *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestHashIterator_To_String_t method = (TESTCFISH_TestHashIterator_To_String_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_To_String_OFFSET);
      |                                                           ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Run':
autogen/include/Clownfish/Test/TestHashIterator.h:172:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestHashIterator *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestHashIterator_Run_t method = (TESTCFISH_TestHashIterator_Run_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Run_OFFSET);
      |                                                     ^
In file included from cftest/Clownfish/Test/TestHashIterator.c:25:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/String.h:41,
                 from cftest/Clownfish/Test/TestHashIterator.c:26:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from cftest/Clownfish/Test/TestHashIterator.c:27:
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_To_Host':
autogen/include/Clownfish/Hash.h:225:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Hash *, void *)' [-Wcast-function-type]
  225 |     const CFISH_Hash_To_Host_t method = (CFISH_Hash_To_Host_t)cfish_obj_method(self, CFISH_Hash_To_Host_OFFSET);
      |                                         ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Clone':
autogen/include/Clownfish/Hash.h:236:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *)' [-Wcast-function-type]
  236 |     const CFISH_Hash_Clone_t method = (CFISH_Hash_Clone_t)cfish_obj_method(self, CFISH_Hash_Clone_OFFSET);
      |                                       ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Equals':
autogen/include/Clownfish/Hash.h:247:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Hash *, cfish_Obj *)' [-Wcast-function-type]
  247 |     const CFISH_Hash_Equals_t method = (CFISH_Hash_Equals_t)cfish_obj_method(self, CFISH_Hash_Equals_OFFSET);
      |                                        ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Compare_To':
autogen/include/Clownfish/Hash.h:258:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Hash *, cfish_Obj *)' {aka 'int (*)(cfish_Hash *, cfish_Obj *)'} [-Wcast-function-type]
  258 |     const CFISH_Hash_Compare_To_t method = (CFISH_Hash_Compare_To_t)cfish_obj_method(self, CFISH_Hash_Compare_To_OFFSET);
      |                                            ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_To_String':
autogen/include/Clownfish/Hash.h:280:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Hash *)' [-Wcast-function-type]
  280 |     const CFISH_Hash_To_String_t method = (CFISH_Hash_To_String_t)cfish_obj_method(self, CFISH_Hash_To_String_OFFSET);
      |                                           ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Store':
autogen/include/Clownfish/Hash.h:302:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Hash *, cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  302 |     const CFISH_Hash_Store_t method = (CFISH_Hash_Store_t)cfish_obj_method(self, CFISH_Hash_Store_OFFSET);
      |                                       ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Store_Utf8':
autogen/include/Clownfish/Hash.h:313:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Hash *, const char *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Hash *, const char *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  313 |     const CFISH_Hash_Store_Utf8_t method = (CFISH_Hash_Store_Utf8_t)cfish_obj_method(self, CFISH_Hash_Store_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Fetch':
autogen/include/Clownfish/Hash.h:324:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *, cfish_String *)' [-Wcast-function-type]
  324 |     const CFISH_Hash_Fetch_t method = (CFISH_Hash_Fetch_t)cfish_obj_method(self, CFISH_Hash_Fetch_OFFSET);
      |                                       ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Fetch_Utf8':
autogen/include/Clownfish/Hash.h:335:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *, const char *, size_t)' {aka 'cfish_Obj * (*)(cfish_Hash *, const char *, long unsigned int)'} [-Wcast-function-type]
  335 |     const CFISH_Hash_Fetch_Utf8_t method = (CFISH_Hash_Fetch_Utf8_t)cfish_obj_method(self, CFISH_Hash_Fetch_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Delete':
autogen/include/Clownfish/Hash.h:346:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *, cfish_String *)' [-Wcast-function-type]
  346 |     const CFISH_Hash_Delete_t method = (CFISH_Hash_Delete_t)cfish_obj_method(self, CFISH_Hash_Delete_OFFSET);
      |                                        ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Delete_Utf8':
autogen/include/Clownfish/Hash.h:357:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *, const char *, size_t)' {aka 'cfish_Obj * (*)(cfish_Hash *, const char *, long unsigned int)'} [-Wcast-function-type]
  357 |     const CFISH_Hash_Delete_Utf8_t method = (CFISH_Hash_Delete_Utf8_t)cfish_obj_method(self, CFISH_Hash_Delete_Utf8_OFFSET);
      |                                             ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Has_Key':
autogen/include/Clownfish/Hash.h:368:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Hash *, cfish_String *)' [-Wcast-function-type]
  368 |     const CFISH_Hash_Has_Key_t method = (CFISH_Hash_Has_Key_t)cfish_obj_method(self, CFISH_Hash_Has_Key_OFFSET);
      |                                         ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Keys':
autogen/include/Clownfish/Hash.h:379:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Hash *)' [-Wcast-function-type]
  379 |     const CFISH_Hash_Keys_t method = (CFISH_Hash_Keys_t)cfish_obj_method(self, CFISH_Hash_Keys_OFFSET);
      |                                      ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Values':
autogen/include/Clownfish/Hash.h:390:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Hash *)' [-Wcast-function-type]
  390 |     const CFISH_Hash_Values_t method = (CFISH_Hash_Values_t)cfish_obj_method(self, CFISH_Hash_Values_OFFSET);
      |                                        ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Get_Capacity':
autogen/include/Clownfish/Hash.h:401:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Hash *)' {aka 'long unsigned int (*)(cfish_Hash *)'} [-Wcast-function-type]
  401 |     const CFISH_Hash_Get_Capacity_t method = (CFISH_Hash_Get_Capacity_t)cfish_obj_method(self, CFISH_Hash_Get_Capacity_OFFSET);
      |                                              ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Get_Size':
autogen/include/Clownfish/Hash.h:412:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Hash *)' {aka 'long unsigned int (*)(cfish_Hash *)'} [-Wcast-function-type]
  412 |     const CFISH_Hash_Get_Size_t method = (CFISH_Hash_Get_Size_t)cfish_obj_method(self, CFISH_Hash_Get_Size_OFFSET);
      |                                          ^
In file included from cftest/Clownfish/Test/TestHashIterator.c:28:
autogen/include/Clownfish/HashIterator.h: In function 'CFISH_HashIter_To_Host':
autogen/include/Clownfish/HashIterator.h:161:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_HashIterator *, void *)' [-Wcast-function-type]
  161 |     const CFISH_HashIter_To_Host_t method = (CFISH_HashIter_To_Host_t)cfish_obj_method(self, CFISH_HashIter_To_Host_OFFSET);
      |                                             ^
autogen/include/Clownfish/HashIterator.h: In function 'CFISH_HashIter_Clone':
autogen/include/Clownfish/HashIterator.h:172:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_HashIterator *)' [-Wcast-function-type]
  172 |     const CFISH_HashIter_Clone_t method = (CFISH_HashIter_Clone_t)cfish_obj_method(self, CFISH_HashIter_Clone_OFFSET);
      |                                           ^
autogen/include/Clownfish/HashIterator.h: In function 'CFISH_HashIter_Equals':
autogen/include/Clownfish/HashIterator.h:183:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_HashIterator *, cfish_Obj *)' [-Wcast-function-type]
  183 |     const CFISH_HashIter_Equals_t method = (CFISH_HashIter_Equals_t)cfish_obj_method(self, CFISH_HashIter_Equals_OFFSET);
      |                                            ^
autogen/include/Clownfish/HashIterator.h: In function 'CFISH_HashIter_Compare_To':
autogen/include/Clownfish/HashIterator.h:194:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_HashIterator *, cfish_Obj *)' {aka 'int (*)(cfish_HashIterator *, cfish_Obj *)'} [-Wcast-function-type]
  194 |     const CFISH_HashIter_Compare_To_t method = (CFISH_HashIter_Compare_To_t)cfish_obj_method(self, CFISH_HashIter_Compare_To_OFFSET);
      |                                                ^
autogen/include/Clownfish/HashIterator.h: In function 'CFISH_HashIter_To_String':
autogen/include/Clownfish/HashIterator.h:216:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_HashIterator *)' [-Wcast-function-type]
  216 |     const CFISH_HashIter_To_String_t method = (CFISH_HashIter_To_String_t)cfish_obj_method(self, CFISH_HashIter_To_String_OFFSET);
      |                                               ^
autogen/include/Clownfish/HashIterator.h: In function 'CFISH_HashIter_Next':
autogen/include/Clownfish/HashIterator.h:227:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_HashIterator *)' [-Wcast-function-type]
  227 |     const CFISH_HashIter_Next_t method = (CFISH_HashIter_Next_t)cfish_obj_method(self, CFISH_HashIter_Next_OFFSET);
      |                                          ^
autogen/include/Clownfish/HashIterator.h: In function 'CFISH_HashIter_Get_Key':
autogen/include/Clownfish/HashIterator.h:238:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_HashIterator *)' [-Wcast-function-type]
  238 |     const CFISH_HashIter_Get_Key_t method = (CFISH_HashIter_Get_Key_t)cfish_obj_method(self, CFISH_HashIter_Get_Key_OFFSET);
      |                                             ^
autogen/include/Clownfish/HashIterator.h: In function 'CFISH_HashIter_Get_Value':
autogen/include/Clownfish/HashIterator.h:249:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_HashIterator *)' [-Wcast-function-type]
  249 |     const CFISH_HashIter_Get_Value_t method = (CFISH_HashIter_Get_Value_t)cfish_obj_method(self, CFISH_HashIter_Get_Value_OFFSET);
      |                                               ^
In file included from cftest/Clownfish/Test/TestHashIterator.c:30:
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_To_Host':
autogen/include/Clownfish/Vector.h:245:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Vector *, void *)' [-Wcast-function-type]
  245 |     const CFISH_Vec_To_Host_t method = (CFISH_Vec_To_Host_t)cfish_obj_method(self, CFISH_Vec_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Clone':
autogen/include/Clownfish/Vector.h:256:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Vector *)' [-Wcast-function-type]
  256 |     const CFISH_Vec_Clone_t method = (CFISH_Vec_Clone_t)cfish_obj_method(self, CFISH_Vec_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Equals':
autogen/include/Clownfish/Vector.h:267:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Vector *, cfish_Obj *)' [-Wcast-function-type]
  267 |     const CFISH_Vec_Equals_t method = (CFISH_Vec_Equals_t)cfish_obj_method(self, CFISH_Vec_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Compare_To':
autogen/include/Clownfish/Vector.h:278:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Vector *, cfish_Obj *)' {aka 'int (*)(cfish_Vector *, cfish_Obj *)'} [-Wcast-function-type]
  278 |     const CFISH_Vec_Compare_To_t method = (CFISH_Vec_Compare_To_t)cfish_obj_method(self, CFISH_Vec_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_To_String':
autogen/include/Clownfish/Vector.h:300:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Vector *)' [-Wcast-function-type]
  300 |     const CFISH_Vec_To_String_t method = (CFISH_Vec_To_String_t)cfish_obj_method(self, CFISH_Vec_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Push':
autogen/include/Clownfish/Vector.h:311:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, cfish_Obj *)' [-Wcast-function-type]
  311 |     const CFISH_Vec_Push_t method = (CFISH_Vec_Push_t)cfish_obj_method(self, CFISH_Vec_Push_OFFSET);
      |                                     ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Push_All':
autogen/include/Clownfish/Vector.h:322:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, cfish_Vector *)' [-Wcast-function-type]
  322 |     const CFISH_Vec_Push_All_t method = (CFISH_Vec_Push_All_t)cfish_obj_method(self, CFISH_Vec_Push_All_OFFSET);
      |                                         ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Pop':
autogen/include/Clownfish/Vector.h:333:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *)' [-Wcast-function-type]
  333 |     const CFISH_Vec_Pop_t method = (CFISH_Vec_Pop_t)cfish_obj_method(self, CFISH_Vec_Pop_OFFSET);
      |                                    ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Insert':
autogen/include/Clownfish/Vector.h:344:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  344 |     const CFISH_Vec_Insert_t method = (CFISH_Vec_Insert_t)cfish_obj_method(self, CFISH_Vec_Insert_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Insert_All':
autogen/include/Clownfish/Vector.h:355:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Vector *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Vector *)'} [-Wcast-function-type]
  355 |     const CFISH_Vec_Insert_All_t method = (CFISH_Vec_Insert_All_t)cfish_obj_method(self, CFISH_Vec_Insert_All_OFFSET);
      |                                           ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Grow':
autogen/include/Clownfish/Vector.h:366:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  366 |     const CFISH_Vec_Grow_t method = (CFISH_Vec_Grow_t)cfish_obj_method(self, CFISH_Vec_Grow_OFFSET);
      |                                     ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Fetch':
autogen/include/Clownfish/Vector.h:377:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *, size_t)' {aka 'cfish_Obj * (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  377 |     const CFISH_Vec_Fetch_t method = (CFISH_Vec_Fetch_t)cfish_obj_method(self, CFISH_Vec_Fetch_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Store':
autogen/include/Clownfish/Vector.h:388:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  388 |     const CFISH_Vec_Store_t method = (CFISH_Vec_Store_t)cfish_obj_method(self, CFISH_Vec_Store_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Delete':
autogen/include/Clownfish/Vector.h:399:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *, size_t)' {aka 'cfish_Obj * (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  399 |     const CFISH_Vec_Delete_t method = (CFISH_Vec_Delete_t)cfish_obj_method(self, CFISH_Vec_Delete_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Excise':
autogen/include/Clownfish/Vector.h:410:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  410 |     const CFISH_Vec_Excise_t method = (CFISH_Vec_Excise_t)cfish_obj_method(self, CFISH_Vec_Excise_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Resize':
autogen/include/Clownfish/Vector.h:432:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  432 |     const CFISH_Vec_Resize_t method = (CFISH_Vec_Resize_t)cfish_obj_method(self, CFISH_Vec_Resize_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Get_Size':
autogen/include/Clownfish/Vector.h:454:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Vector *)' {aka 'long unsigned int (*)(cfish_Vector *)'} [-Wcast-function-type]
  454 |     const CFISH_Vec_Get_Size_t method = (CFISH_Vec_Get_Size_t)cfish_obj_method(self, CFISH_Vec_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Get_Capacity':
autogen/include/Clownfish/Vector.h:465:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Vector *)' {aka 'long unsigned int (*)(cfish_Vector *)'} [-Wcast-function-type]
  465 |     const CFISH_Vec_Get_Capacity_t method = (CFISH_Vec_Get_Capacity_t)cfish_obj_method(self, CFISH_Vec_Get_Capacity_OFFSET);
      |                                             ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Slice':
autogen/include/Clownfish/Vector.h:476:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Vector *, size_t,  size_t)' {aka 'cfish_Vector * (*)(cfish_Vector *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  476 |     const CFISH_Vec_Slice_t method = (CFISH_Vec_Slice_t)cfish_obj_method(self, CFISH_Vec_Slice_OFFSET);
      |                                      ^
In file included from cftest/Clownfish/Test/TestHashIterator.c:31:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestByteBuf.c -c -o cftest/Clownfish/Test/TestByteBuf.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestByteBuf.h:40,
                 from cftest/Clownfish/Test/TestByteBuf.c:22:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_To_Host':
autogen/include/Clownfish/Test/TestByteBuf.h:130:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestByteBuf *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestBB_To_Host_t method = (TESTCFISH_TestBB_To_Host_t)cfish_obj_method(self, TESTCFISH_TestBB_To_Host_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Clone':
autogen/include/Clownfish/Test/TestByteBuf.h:137:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestByteBuf *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestBB_Clone_t method = (TESTCFISH_TestBB_Clone_t)cfish_obj_method(self, TESTCFISH_TestBB_Clone_OFFSET);
      |                                             ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Equals':
autogen/include/Clownfish/Test/TestByteBuf.h:144:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestByteBuf *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestBB_Equals_t method = (TESTCFISH_TestBB_Equals_t)cfish_obj_method(self, TESTCFISH_TestBB_Equals_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Compare_To':
autogen/include/Clownfish/Test/TestByteBuf.h:151:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestByteBuf *, cfish_Obj *)' {aka 'int (*)(testcfish_TestByteBuf *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestBB_Compare_To_t method = (TESTCFISH_TestBB_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestBB_Compare_To_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_To_String':
autogen/include/Clownfish/Test/TestByteBuf.h:165:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestByteBuf *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestBB_To_String_t method = (TESTCFISH_TestBB_To_String_t)cfish_obj_method(self, TESTCFISH_TestBB_To_String_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Run':
autogen/include/Clownfish/Test/TestByteBuf.h:172:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestByteBuf *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestBB_Run_t method = (TESTCFISH_TestBB_Run_t)cfish_obj_method(self, TESTCFISH_TestBB_Run_OFFSET);
      |                                           ^
In file included from cftest/Clownfish/Test/TestByteBuf.c:24:
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_To_Host':
autogen/include/Clownfish/ByteBuf.h:230:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_ByteBuf *, void *)' [-Wcast-function-type]
  230 |     const CFISH_BB_To_Host_t method = (CFISH_BB_To_Host_t)cfish_obj_method(self, CFISH_BB_To_Host_OFFSET);
      |                                       ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Clone':
autogen/include/Clownfish/ByteBuf.h:241:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  241 |     const CFISH_BB_Clone_t method = (CFISH_BB_Clone_t)cfish_obj_method(self, CFISH_BB_Clone_OFFSET);
      |                                     ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Equals':
autogen/include/Clownfish/ByteBuf.h:252:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_ByteBuf *, cfish_Obj *)' [-Wcast-function-type]
  252 |     const CFISH_BB_Equals_t method = (CFISH_BB_Equals_t)cfish_obj_method(self, CFISH_BB_Equals_OFFSET);
      |                                      ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Compare_To':
autogen/include/Clownfish/ByteBuf.h:263:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_ByteBuf *, cfish_Obj *)' {aka 'int (*)(cfish_ByteBuf *, cfish_Obj *)'} [-Wcast-function-type]
  263 |     const CFISH_BB_Compare_To_t method = (CFISH_BB_Compare_To_t)cfish_obj_method(self, CFISH_BB_Compare_To_OFFSET);
      |                                          ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_To_String':
autogen/include/Clownfish/ByteBuf.h:285:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  285 |     const CFISH_BB_To_String_t method = (CFISH_BB_To_String_t)cfish_obj_method(self, CFISH_BB_To_String_OFFSET);
      |                                         ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Set_Size':
autogen/include/Clownfish/ByteBuf.h:296:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_ByteBuf *, size_t)' {aka 'void (*)(cfish_ByteBuf *, long unsigned int)'} [-Wcast-function-type]
  296 |     const CFISH_BB_Set_Size_t method = (CFISH_BB_Set_Size_t)cfish_obj_method(self, CFISH_BB_Set_Size_OFFSET);
      |                                        ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Get_Size':
autogen/include/Clownfish/ByteBuf.h:307:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_ByteBuf *)' {aka 'long unsigned int (*)(cfish_ByteBuf *)'} [-Wcast-function-type]
  307 |     const CFISH_BB_Get_Size_t method = (CFISH_BB_Get_Size_t)cfish_obj_method(self, CFISH_BB_Get_Size_OFFSET);
      |                                        ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Get_Buf':
autogen/include/Clownfish/ByteBuf.h:318:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  318 |     const CFISH_BB_Get_Buf_t method = (CFISH_BB_Get_Buf_t)cfish_obj_method(self, CFISH_BB_Get_Buf_OFFSET);
      |                                       ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Get_Capacity':
autogen/include/Clownfish/ByteBuf.h:329:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_ByteBuf *)' {aka 'long unsigned int (*)(cfish_ByteBuf *)'} [-Wcast-function-type]
  329 |     const CFISH_BB_Get_Capacity_t method = (CFISH_BB_Get_Capacity_t)cfish_obj_method(self, CFISH_BB_Get_Capacity_OFFSET);
      |                                            ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Cat_Bytes':
autogen/include/Clownfish/ByteBuf.h:340:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_ByteBuf *, const void *, size_t)' {aka 'void (*)(cfish_ByteBuf *, const void *, long unsigned int)'} [-Wcast-function-type]
  340 |     const CFISH_BB_Cat_Bytes_t method = (CFISH_BB_Cat_Bytes_t)cfish_obj_method(self, CFISH_BB_Cat_Bytes_OFFSET);
      |                                         ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Cat':
autogen/include/Clownfish/ByteBuf.h:351:35: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_ByteBuf *, cfish_Blob *)' [-Wcast-function-type]
  351 |     const CFISH_BB_Cat_t method = (CFISH_BB_Cat_t)cfish_obj_method(self, CFISH_BB_Cat_OFFSET);
      |                                   ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Grow':
autogen/include/Clownfish/ByteBuf.h:362:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_ByteBuf *, size_t)' {aka 'char * (*)(cfish_ByteBuf *, long unsigned int)'} [-Wcast-function-type]
  362 |     const CFISH_BB_Grow_t method = (CFISH_BB_Grow_t)cfish_obj_method(self, CFISH_BB_Grow_OFFSET);
      |                                    ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Yield_Blob':
autogen/include/Clownfish/ByteBuf.h:373:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Blob * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  373 |     const CFISH_BB_Yield_Blob_t method = (CFISH_BB_Yield_Blob_t)cfish_obj_method(self, CFISH_BB_Yield_Blob_OFFSET);
      |                                          ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Utf8_To_String':
autogen/include/Clownfish/ByteBuf.h:384:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  384 |     const CFISH_BB_Utf8_To_String_t method = (CFISH_BB_Utf8_To_String_t)cfish_obj_method(self, CFISH_BB_Utf8_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Trusted_Utf8_To_String':
autogen/include/Clownfish/ByteBuf.h:395:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  395 |     const CFISH_BB_Trusted_Utf8_To_String_t method = (CFISH_BB_Trusted_Utf8_To_String_t)cfish_obj_method(self, CFISH_BB_Trusted_Utf8_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Equals_Bytes':
autogen/include/Clownfish/ByteBuf.h:406:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_ByteBuf *, const void *, size_t)' {aka '_Bool (*)(cfish_ByteBuf *, const void *, long unsigned int)'} [-Wcast-function-type]
  406 |     const CFISH_BB_Equals_Bytes_t method = (CFISH_BB_Equals_Bytes_t)cfish_obj_method(self, CFISH_BB_Equals_Bytes_OFFSET);
      |                                            ^
In file included from cftest/Clownfish/Test/TestByteBuf.c:26:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
In file included from cftest/Clownfish/Test/TestByteBuf.c:28:
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_To_Host':
autogen/include/Clownfish/Blob.h:182:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Blob *, void *)' [-Wcast-function-type]
  182 |     const CFISH_Blob_To_Host_t method = (CFISH_Blob_To_Host_t)cfish_obj_method(self, CFISH_Blob_To_Host_OFFSET);
      |                                         ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Clone':
autogen/include/Clownfish/Blob.h:193:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Blob * (*)(cfish_Blob *)' [-Wcast-function-type]
  193 |     const CFISH_Blob_Clone_t method = (CFISH_Blob_Clone_t)cfish_obj_method(self, CFISH_Blob_Clone_OFFSET);
      |                                       ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Equals':
autogen/include/Clownfish/Blob.h:204:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Blob *, cfish_Obj *)' [-Wcast-function-type]
  204 |     const CFISH_Blob_Equals_t method = (CFISH_Blob_Equals_t)cfish_obj_method(self, CFISH_Blob_Equals_OFFSET);
      |                                        ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Compare_To':
autogen/include/Clownfish/Blob.h:215:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Blob *, cfish_Obj *)' {aka 'int (*)(cfish_Blob *, cfish_Obj *)'} [-Wcast-function-type]
  215 |     const CFISH_Blob_Compare_To_t method = (CFISH_Blob_Compare_To_t)cfish_obj_method(self, CFISH_Blob_Compare_To_OFFSET);
      |                                            ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_To_String':
autogen/include/Clownfish/Blob.h:237:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Blob *)' [-Wcast-function-type]
  237 |     const CFISH_Blob_To_String_t method = (CFISH_Blob_To_String_t)cfish_obj_method(self, CFISH_Blob_To_String_OFFSET);
      |                                           ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Get_Size':
autogen/include/Clownfish/Blob.h:248:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Blob *)' {aka 'long unsigned int (*)(cfish_Blob *)'} [-Wcast-function-type]
  248 |     const CFISH_Blob_Get_Size_t method = (CFISH_Blob_Get_Size_t)cfish_obj_method(self, CFISH_Blob_Get_Size_OFFSET);
      |                                          ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Get_Buf':
autogen/include/Clownfish/Blob.h:259:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_Blob *)' [-Wcast-function-type]
  259 |     const CFISH_Blob_Get_Buf_t method = (CFISH_Blob_Get_Buf_t)cfish_obj_method(self, CFISH_Blob_Get_Buf_OFFSET);
      |                                         ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Equals_Bytes':
autogen/include/Clownfish/Blob.h:270:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Blob *, const void *, size_t)' {aka '_Bool (*)(cfish_Blob *, const void *, long unsigned int)'} [-Wcast-function-type]
  270 |     const CFISH_Blob_Equals_Bytes_t method = (CFISH_Blob_Equals_Bytes_t)cfish_obj_method(self, CFISH_Blob_Equals_Bytes_OFFSET);
      |                                              ^
In file included from cftest/Clownfish/Test/TestByteBuf.c:29:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from cftest/Clownfish/Test/TestByteBuf.c:30:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from cftest/Clownfish/Test/TestByteBuf.c:31:
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestCharBuf.c -c -o cftest/Clownfish/Test/TestCharBuf.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestCharBuf.h:40,
                 from cftest/Clownfish/Test/TestCharBuf.c:26:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_To_Host':
autogen/include/Clownfish/Test/TestCharBuf.h:130:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestCharBuf *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestCB_To_Host_t method = (TESTCFISH_TestCB_To_Host_t)cfish_obj_method(self, TESTCFISH_TestCB_To_Host_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Clone':
autogen/include/Clownfish/Test/TestCharBuf.h:137:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestCharBuf *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestCB_Clone_t method = (TESTCFISH_TestCB_Clone_t)cfish_obj_method(self, TESTCFISH_TestCB_Clone_OFFSET);
      |                                             ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Equals':
autogen/include/Clownfish/Test/TestCharBuf.h:144:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestCharBuf *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestCB_Equals_t method = (TESTCFISH_TestCB_Equals_t)cfish_obj_method(self, TESTCFISH_TestCB_Equals_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Compare_To':
autogen/include/Clownfish/Test/TestCharBuf.h:151:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestCharBuf *, cfish_Obj *)' {aka 'int (*)(testcfish_TestCharBuf *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestCB_Compare_To_t method = (TESTCFISH_TestCB_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestCB_Compare_To_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_To_String':
autogen/include/Clownfish/Test/TestCharBuf.h:165:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestCharBuf *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestCB_To_String_t method = (TESTCFISH_TestCB_To_String_t)cfish_obj_method(self, TESTCFISH_TestCB_To_String_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Run':
autogen/include/Clownfish/Test/TestCharBuf.h:172:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestCharBuf *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestCB_Run_t method = (TESTCFISH_TestCB_Run_t)cfish_obj_method(self, TESTCFISH_TestCB_Run_OFFSET);
      |                                           ^
In file included from cftest/Clownfish/Test/TestCharBuf.c:28:
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_To_Host':
autogen/include/Clownfish/CharBuf.h:203:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_CharBuf *, void *)' [-Wcast-function-type]
  203 |     const CFISH_CB_To_Host_t method = (CFISH_CB_To_Host_t)cfish_obj_method(self, CFISH_CB_To_Host_OFFSET);
      |                                       ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Clone':
autogen/include/Clownfish/CharBuf.h:214:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_CharBuf * (*)(cfish_CharBuf *)' [-Wcast-function-type]
  214 |     const CFISH_CB_Clone_t method = (CFISH_CB_Clone_t)cfish_obj_method(self, CFISH_CB_Clone_OFFSET);
      |                                     ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Equals':
autogen/include/Clownfish/CharBuf.h:225:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_CharBuf *, cfish_Obj *)' [-Wcast-function-type]
  225 |     const CFISH_CB_Equals_t method = (CFISH_CB_Equals_t)cfish_obj_method(self, CFISH_CB_Equals_OFFSET);
      |                                      ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Compare_To':
autogen/include/Clownfish/CharBuf.h:236:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_CharBuf *, cfish_Obj *)' {aka 'int (*)(cfish_CharBuf *, cfish_Obj *)'} [-Wcast-function-type]
  236 |     const CFISH_CB_Compare_To_t method = (CFISH_CB_Compare_To_t)cfish_obj_method(self, CFISH_CB_Compare_To_OFFSET);
      |                                          ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_To_String':
autogen/include/Clownfish/CharBuf.h:258:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_CharBuf *)' [-Wcast-function-type]
  258 |     const CFISH_CB_To_String_t method = (CFISH_CB_To_String_t)cfish_obj_method(self, CFISH_CB_To_String_OFFSET);
      |                                         ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Cat_Utf8':
autogen/include/Clownfish/CharBuf.h:269:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_CharBuf *, const char *, size_t)' {aka 'void (*)(cfish_CharBuf *, const char *, long unsigned int)'} [-Wcast-function-type]
  269 |     const CFISH_CB_Cat_Utf8_t method = (CFISH_CB_Cat_Utf8_t)cfish_obj_method(self, CFISH_CB_Cat_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Cat_Trusted_Utf8':
autogen/include/Clownfish/CharBuf.h:280:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_CharBuf *, const char *, size_t)' {aka 'void (*)(cfish_CharBuf *, const char *, long unsigned int)'} [-Wcast-function-type]
  280 |     const CFISH_CB_Cat_Trusted_Utf8_t method = (CFISH_CB_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_CB_Cat_Trusted_Utf8_OFFSET);
      |                                                ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Cat':
autogen/include/Clownfish/CharBuf.h:291:35: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_CharBuf *, cfish_String *)' [-Wcast-function-type]
  291 |     const CFISH_CB_Cat_t method = (CFISH_CB_Cat_t)cfish_obj_method(self, CFISH_CB_Cat_OFFSET);
      |                                   ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_VCatF':
autogen/include/Clownfish/CharBuf.h:302:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_CharBuf *, const char *, __va_list_tag *)' [-Wcast-function-type]
  302 |     const CFISH_CB_VCatF_t method = (CFISH_CB_VCatF_t)cfish_obj_method(self, CFISH_CB_VCatF_OFFSET);
      |                                     ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Cat_Char':
autogen/include/Clownfish/CharBuf.h:313:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_CharBuf *, int32_t)' {aka 'void (*)(cfish_CharBuf *, int)'} [-Wcast-function-type]
  313 |     const CFISH_CB_Cat_Char_t method = (CFISH_CB_Cat_Char_t)cfish_obj_method(self, CFISH_CB_Cat_Char_OFFSET);
      |                                        ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Grow':
autogen/include/Clownfish/CharBuf.h:324:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_CharBuf *, size_t)' {aka 'void (*)(cfish_CharBuf *, long unsigned int)'} [-Wcast-function-type]
  324 |     const CFISH_CB_Grow_t method = (CFISH_CB_Grow_t)cfish_obj_method(self, CFISH_CB_Grow_OFFSET);
      |                                    ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Get_Size':
autogen/include/Clownfish/CharBuf.h:346:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_CharBuf *)' {aka 'long unsigned int (*)(cfish_CharBuf *)'} [-Wcast-function-type]
  346 |     const CFISH_CB_Get_Size_t method = (CFISH_CB_Get_Size_t)cfish_obj_method(self, CFISH_CB_Get_Size_OFFSET);
      |                                        ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Yield_String':
autogen/include/Clownfish/CharBuf.h:357:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_CharBuf *)' [-Wcast-function-type]
  357 |     const CFISH_CB_Yield_String_t method = (CFISH_CB_Yield_String_t)cfish_obj_method(self, CFISH_CB_Yield_String_OFFSET);
      |                                            ^
In file included from cftest/Clownfish/Test/TestCharBuf.c:29:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from cftest/Clownfish/Test/TestCharBuf.c:30:
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_To_Host':
autogen/include/Clownfish/Num.h:162:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Float *, void *)' [-Wcast-function-type]
  162 |     const CFISH_Float_To_Host_t method = (CFISH_Float_To_Host_t)cfish_obj_method(self, CFISH_Float_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Clone':
autogen/include/Clownfish/Num.h:173:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Float * (*)(cfish_Float *)' [-Wcast-function-type]
  173 |     const CFISH_Float_Clone_t method = (CFISH_Float_Clone_t)cfish_obj_method(self, CFISH_Float_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Equals':
autogen/include/Clownfish/Num.h:184:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Float *, cfish_Obj *)' [-Wcast-function-type]
  184 |     const CFISH_Float_Equals_t method = (CFISH_Float_Equals_t)cfish_obj_method(self, CFISH_Float_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Compare_To':
autogen/include/Clownfish/Num.h:195:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Float *, cfish_Obj *)' {aka 'int (*)(cfish_Float *, cfish_Obj *)'} [-Wcast-function-type]
  195 |     const CFISH_Float_Compare_To_t method = (CFISH_Float_Compare_To_t)cfish_obj_method(self, CFISH_Float_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_To_String':
autogen/include/Clownfish/Num.h:217:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Float *)' [-Wcast-function-type]
  217 |     const CFISH_Float_To_String_t method = (CFISH_Float_To_String_t)cfish_obj_method(self, CFISH_Float_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Get_Value':
autogen/include/Clownfish/Num.h:228:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_Float *)' [-Wcast-function-type]
  228 |     const CFISH_Float_Get_Value_t method = (CFISH_Float_Get_Value_t)cfish_obj_method(self, CFISH_Float_Get_Value_OFFSET);
      |                                            ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_To_I64':
autogen/include/Clownfish/Num.h:239:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_Float *)' {aka 'long int (*)(cfish_Float *)'} [-Wcast-function-type]
  239 |     const CFISH_Float_To_I64_t method = (CFISH_Float_To_I64_t)cfish_obj_method(self, CFISH_Float_To_I64_OFFSET);
      |                                         ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_To_Host':
autogen/include/Clownfish/Num.h:417:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Integer *, void *)' [-Wcast-function-type]
  417 |     const CFISH_Int_To_Host_t method = (CFISH_Int_To_Host_t)cfish_obj_method(self, CFISH_Int_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Clone':
autogen/include/Clownfish/Num.h:428:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Integer * (*)(cfish_Integer *)' [-Wcast-function-type]
  428 |     const CFISH_Int_Clone_t method = (CFISH_Int_Clone_t)cfish_obj_method(self, CFISH_Int_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Equals':
autogen/include/Clownfish/Num.h:439:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Integer *, cfish_Obj *)' [-Wcast-function-type]
  439 |     const CFISH_Int_Equals_t method = (CFISH_Int_Equals_t)cfish_obj_method(self, CFISH_Int_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Compare_To':
autogen/include/Clownfish/Num.h:450:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Integer *, cfish_Obj *)' {aka 'int (*)(cfish_Integer *, cfish_Obj *)'} [-Wcast-function-type]
  450 |     const CFISH_Int_Compare_To_t method = (CFISH_Int_Compare_To_t)cfish_obj_method(self, CFISH_Int_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_To_String':
autogen/include/Clownfish/Num.h:472:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Integer *)' [-Wcast-function-type]
  472 |     const CFISH_Int_To_String_t method = (CFISH_Int_To_String_t)cfish_obj_method(self, CFISH_Int_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Get_Value':
autogen/include/Clownfish/Num.h:483:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_Integer *)' {aka 'long int (*)(cfish_Integer *)'} [-Wcast-function-type]
  483 |     const CFISH_Int_Get_Value_t method = (CFISH_Int_Get_Value_t)cfish_obj_method(self, CFISH_Int_Get_Value_OFFSET);
      |                                          ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_To_F64':
autogen/include/Clownfish/Num.h:494:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_Integer *)' [-Wcast-function-type]
  494 |     const CFISH_Int_To_F64_t method = (CFISH_Int_To_F64_t)cfish_obj_method(self, CFISH_Int_To_F64_OFFSET);
      |                                       ^
In file included from autogen/include/Clownfish/String.h:41,
                 from cftest/Clownfish/Test/TestCharBuf.c:31:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from cftest/Clownfish/Test/TestCharBuf.c:33:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestString.c -c -o cftest/Clownfish/Test/TestString.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestString.h:40,
                 from cftest/Clownfish/Test/TestString.c:23:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_To_Host':
autogen/include/Clownfish/Test/TestString.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestString *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestStr_To_Host_t method = (TESTCFISH_TestStr_To_Host_t)cfish_obj_method(self, TESTCFISH_TestStr_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Clone':
autogen/include/Clownfish/Test/TestString.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestString *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestStr_Clone_t method = (TESTCFISH_TestStr_Clone_t)cfish_obj_method(self, TESTCFISH_TestStr_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Equals':
autogen/include/Clownfish/Test/TestString.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestString *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestStr_Equals_t method = (TESTCFISH_TestStr_Equals_t)cfish_obj_method(self, TESTCFISH_TestStr_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Compare_To':
autogen/include/Clownfish/Test/TestString.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestString *, cfish_Obj *)' {aka 'int (*)(testcfish_TestString *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestStr_Compare_To_t method = (TESTCFISH_TestStr_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestStr_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_To_String':
autogen/include/Clownfish/Test/TestString.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestString *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestStr_To_String_t method = (TESTCFISH_TestStr_To_String_t)cfish_obj_method(self, TESTCFISH_TestStr_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Run':
autogen/include/Clownfish/Test/TestString.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestString *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestStr_Run_t method = (TESTCFISH_TestStr_Run_t)cfish_obj_method(self, TESTCFISH_TestStr_Run_OFFSET);
      |                                            ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_To_Host':
autogen/include/Clownfish/Test/TestString.h:311:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_StringCallbackTest *, void *)' [-Wcast-function-type]
  311 |     const TESTCFISH_StrCbTest_To_Host_t method = (TESTCFISH_StrCbTest_To_Host_t)cfish_obj_method(self, TESTCFISH_StrCbTest_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Clone':
autogen/include/Clownfish/Test/TestString.h:318:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_StringCallbackTest *)' [-Wcast-function-type]
  318 |     const TESTCFISH_StrCbTest_Clone_t method = (TESTCFISH_StrCbTest_Clone_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Equals':
autogen/include/Clownfish/Test/TestString.h:325:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_StringCallbackTest *, cfish_Obj *)' [-Wcast-function-type]
  325 |     const TESTCFISH_StrCbTest_Equals_t method = (TESTCFISH_StrCbTest_Equals_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Compare_To':
autogen/include/Clownfish/Test/TestString.h:332:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_StringCallbackTest *, cfish_Obj *)' {aka 'int (*)(testcfish_StringCallbackTest *, cfish_Obj *)'} [-Wcast-function-type]
  332 |     const TESTCFISH_StrCbTest_Compare_To_t method = (TESTCFISH_StrCbTest_Compare_To_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_To_String':
autogen/include/Clownfish/Test/TestString.h:346:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_StringCallbackTest *)' [-Wcast-function-type]
  346 |     const TESTCFISH_StrCbTest_To_String_t method = (TESTCFISH_StrCbTest_To_String_t)cfish_obj_method(self, TESTCFISH_StrCbTest_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Unchanged_By_Callback':
autogen/include/Clownfish/Test/TestString.h:353:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_StringCallbackTest *, cfish_String *)' [-Wcast-function-type]
  353 |     const TESTCFISH_StrCbTest_Unchanged_By_Callback_t method = (TESTCFISH_StrCbTest_Unchanged_By_Callback_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Unchanged_By_Callback_OFFSET);
      |                                                                ^
In file included from autogen/include/Clownfish/String.h:41,
                 from cftest/Clownfish/Test/TestString.c:25:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from autogen/include/Clownfish/String.h:44:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from cftest/Clownfish/Test/TestString.c:26:
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_To_Host':
autogen/include/Clownfish/Boolean.h:159:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Boolean *, void *)' [-Wcast-function-type]
  159 |     const CFISH_Bool_To_Host_t method = (CFISH_Bool_To_Host_t)cfish_obj_method(self, CFISH_Bool_To_Host_OFFSET);
      |                                         ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Clone':
autogen/include/Clownfish/Boolean.h:170:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Boolean * (*)(cfish_Boolean *)' [-Wcast-function-type]
  170 |     const CFISH_Bool_Clone_t method = (CFISH_Bool_Clone_t)cfish_obj_method(self, CFISH_Bool_Clone_OFFSET);
      |                                       ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Equals':
autogen/include/Clownfish/Boolean.h:181:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Boolean *, cfish_Obj *)' [-Wcast-function-type]
  181 |     const CFISH_Bool_Equals_t method = (CFISH_Bool_Equals_t)cfish_obj_method(self, CFISH_Bool_Equals_OFFSET);
      |                                        ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Compare_To':
autogen/include/Clownfish/Boolean.h:192:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Boolean *, cfish_Obj *)' {aka 'int (*)(cfish_Boolean *, cfish_Obj *)'} [-Wcast-function-type]
  192 |     const CFISH_Bool_Compare_To_t method = (CFISH_Bool_Compare_To_t)cfish_obj_method(self, CFISH_Bool_Compare_To_OFFSET);
      |                                            ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_To_String':
autogen/include/Clownfish/Boolean.h:214:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Boolean *)' [-Wcast-function-type]
  214 |     const CFISH_Bool_To_String_t method = (CFISH_Bool_To_String_t)cfish_obj_method(self, CFISH_Bool_To_String_OFFSET);
      |                                           ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Get_Value':
autogen/include/Clownfish/Boolean.h:225:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Boolean *)' [-Wcast-function-type]
  225 |     const CFISH_Bool_Get_Value_t method = (CFISH_Bool_Get_Value_t)cfish_obj_method(self, CFISH_Bool_Get_Value_OFFSET);
      |                                           ^
In file included from cftest/Clownfish/Test/TestString.c:27:
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_To_Host':
autogen/include/Clownfish/ByteBuf.h:230:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_ByteBuf *, void *)' [-Wcast-function-type]
  230 |     const CFISH_BB_To_Host_t method = (CFISH_BB_To_Host_t)cfish_obj_method(self, CFISH_BB_To_Host_OFFSET);
      |                                       ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Clone':
autogen/include/Clownfish/ByteBuf.h:241:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  241 |     const CFISH_BB_Clone_t method = (CFISH_BB_Clone_t)cfish_obj_method(self, CFISH_BB_Clone_OFFSET);
      |                                     ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Equals':
autogen/include/Clownfish/ByteBuf.h:252:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_ByteBuf *, cfish_Obj *)' [-Wcast-function-type]
  252 |     const CFISH_BB_Equals_t method = (CFISH_BB_Equals_t)cfish_obj_method(self, CFISH_BB_Equals_OFFSET);
      |                                      ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Compare_To':
autogen/include/Clownfish/ByteBuf.h:263:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_ByteBuf *, cfish_Obj *)' {aka 'int (*)(cfish_ByteBuf *, cfish_Obj *)'} [-Wcast-function-type]
  263 |     const CFISH_BB_Compare_To_t method = (CFISH_BB_Compare_To_t)cfish_obj_method(self, CFISH_BB_Compare_To_OFFSET);
      |                                          ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_To_String':
autogen/include/Clownfish/ByteBuf.h:285:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  285 |     const CFISH_BB_To_String_t method = (CFISH_BB_To_String_t)cfish_obj_method(self, CFISH_BB_To_String_OFFSET);
      |                                         ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Set_Size':
autogen/include/Clownfish/ByteBuf.h:296:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_ByteBuf *, size_t)' {aka 'void (*)(cfish_ByteBuf *, long unsigned int)'} [-Wcast-function-type]
  296 |     const CFISH_BB_Set_Size_t method = (CFISH_BB_Set_Size_t)cfish_obj_method(self, CFISH_BB_Set_Size_OFFSET);
      |                                        ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Get_Size':
autogen/include/Clownfish/ByteBuf.h:307:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_ByteBuf *)' {aka 'long unsigned int (*)(cfish_ByteBuf *)'} [-Wcast-function-type]
  307 |     const CFISH_BB_Get_Size_t method = (CFISH_BB_Get_Size_t)cfish_obj_method(self, CFISH_BB_Get_Size_OFFSET);
      |                                        ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Get_Buf':
autogen/include/Clownfish/ByteBuf.h:318:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  318 |     const CFISH_BB_Get_Buf_t method = (CFISH_BB_Get_Buf_t)cfish_obj_method(self, CFISH_BB_Get_Buf_OFFSET);
      |                                       ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Get_Capacity':
autogen/include/Clownfish/ByteBuf.h:329:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_ByteBuf *)' {aka 'long unsigned int (*)(cfish_ByteBuf *)'} [-Wcast-function-type]
  329 |     const CFISH_BB_Get_Capacity_t method = (CFISH_BB_Get_Capacity_t)cfish_obj_method(self, CFISH_BB_Get_Capacity_OFFSET);
      |                                            ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Cat_Bytes':
autogen/include/Clownfish/ByteBuf.h:340:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_ByteBuf *, const void *, size_t)' {aka 'void (*)(cfish_ByteBuf *, const void *, long unsigned int)'} [-Wcast-function-type]
  340 |     const CFISH_BB_Cat_Bytes_t method = (CFISH_BB_Cat_Bytes_t)cfish_obj_method(self, CFISH_BB_Cat_Bytes_OFFSET);
      |                                         ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Cat':
autogen/include/Clownfish/ByteBuf.h:351:35: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_ByteBuf *, cfish_Blob *)' [-Wcast-function-type]
  351 |     const CFISH_BB_Cat_t method = (CFISH_BB_Cat_t)cfish_obj_method(self, CFISH_BB_Cat_OFFSET);
      |                                   ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Grow':
autogen/include/Clownfish/ByteBuf.h:362:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_ByteBuf *, size_t)' {aka 'char * (*)(cfish_ByteBuf *, long unsigned int)'} [-Wcast-function-type]
  362 |     const CFISH_BB_Grow_t method = (CFISH_BB_Grow_t)cfish_obj_method(self, CFISH_BB_Grow_OFFSET);
      |                                    ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Yield_Blob':
autogen/include/Clownfish/ByteBuf.h:373:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Blob * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  373 |     const CFISH_BB_Yield_Blob_t method = (CFISH_BB_Yield_Blob_t)cfish_obj_method(self, CFISH_BB_Yield_Blob_OFFSET);
      |                                          ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Utf8_To_String':
autogen/include/Clownfish/ByteBuf.h:384:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  384 |     const CFISH_BB_Utf8_To_String_t method = (CFISH_BB_Utf8_To_String_t)cfish_obj_method(self, CFISH_BB_Utf8_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Trusted_Utf8_To_String':
autogen/include/Clownfish/ByteBuf.h:395:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  395 |     const CFISH_BB_Trusted_Utf8_To_String_t method = (CFISH_BB_Trusted_Utf8_To_String_t)cfish_obj_method(self, CFISH_BB_Trusted_Utf8_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Equals_Bytes':
autogen/include/Clownfish/ByteBuf.h:406:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_ByteBuf *, const void *, size_t)' {aka '_Bool (*)(cfish_ByteBuf *, const void *, long unsigned int)'} [-Wcast-function-type]
  406 |     const CFISH_BB_Equals_Bytes_t method = (CFISH_BB_Equals_Bytes_t)cfish_obj_method(self, CFISH_BB_Equals_Bytes_OFFSET);
      |                                            ^
In file included from cftest/Clownfish/Test/TestString.c:28:
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_To_Host':
autogen/include/Clownfish/CharBuf.h:203:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_CharBuf *, void *)' [-Wcast-function-type]
  203 |     const CFISH_CB_To_Host_t method = (CFISH_CB_To_Host_t)cfish_obj_method(self, CFISH_CB_To_Host_OFFSET);
      |                                       ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Clone':
autogen/include/Clownfish/CharBuf.h:214:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_CharBuf * (*)(cfish_CharBuf *)' [-Wcast-function-type]
  214 |     const CFISH_CB_Clone_t method = (CFISH_CB_Clone_t)cfish_obj_method(self, CFISH_CB_Clone_OFFSET);
      |                                     ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Equals':
autogen/include/Clownfish/CharBuf.h:225:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_CharBuf *, cfish_Obj *)' [-Wcast-function-type]
  225 |     const CFISH_CB_Equals_t method = (CFISH_CB_Equals_t)cfish_obj_method(self, CFISH_CB_Equals_OFFSET);
      |                                      ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Compare_To':
autogen/include/Clownfish/CharBuf.h:236:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_CharBuf *, cfish_Obj *)' {aka 'int (*)(cfish_CharBuf *, cfish_Obj *)'} [-Wcast-function-type]
  236 |     const CFISH_CB_Compare_To_t method = (CFISH_CB_Compare_To_t)cfish_obj_method(self, CFISH_CB_Compare_To_OFFSET);
      |                                          ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_To_String':
autogen/include/Clownfish/CharBuf.h:258:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_CharBuf *)' [-Wcast-function-type]
  258 |     const CFISH_CB_To_String_t method = (CFISH_CB_To_String_t)cfish_obj_method(self, CFISH_CB_To_String_OFFSET);
      |                                         ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Cat_Utf8':
autogen/include/Clownfish/CharBuf.h:269:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_CharBuf *, const char *, size_t)' {aka 'void (*)(cfish_CharBuf *, const char *, long unsigned int)'} [-Wcast-function-type]
  269 |     const CFISH_CB_Cat_Utf8_t method = (CFISH_CB_Cat_Utf8_t)cfish_obj_method(self, CFISH_CB_Cat_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Cat_Trusted_Utf8':
autogen/include/Clownfish/CharBuf.h:280:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_CharBuf *, const char *, size_t)' {aka 'void (*)(cfish_CharBuf *, const char *, long unsigned int)'} [-Wcast-function-type]
  280 |     const CFISH_CB_Cat_Trusted_Utf8_t method = (CFISH_CB_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_CB_Cat_Trusted_Utf8_OFFSET);
      |                                                ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Cat':
autogen/include/Clownfish/CharBuf.h:291:35: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_CharBuf *, cfish_String *)' [-Wcast-function-type]
  291 |     const CFISH_CB_Cat_t method = (CFISH_CB_Cat_t)cfish_obj_method(self, CFISH_CB_Cat_OFFSET);
      |                                   ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_VCatF':
autogen/include/Clownfish/CharBuf.h:302:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_CharBuf *, const char *, __va_list_tag *)' [-Wcast-function-type]
  302 |     const CFISH_CB_VCatF_t method = (CFISH_CB_VCatF_t)cfish_obj_method(self, CFISH_CB_VCatF_OFFSET);
      |                                     ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Cat_Char':
autogen/include/Clownfish/CharBuf.h:313:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_CharBuf *, int32_t)' {aka 'void (*)(cfish_CharBuf *, int)'} [-Wcast-function-type]
  313 |     const CFISH_CB_Cat_Char_t method = (CFISH_CB_Cat_Char_t)cfish_obj_method(self, CFISH_CB_Cat_Char_OFFSET);
      |                                        ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Grow':
autogen/include/Clownfish/CharBuf.h:324:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_CharBuf *, size_t)' {aka 'void (*)(cfish_CharBuf *, long unsigned int)'} [-Wcast-function-type]
  324 |     const CFISH_CB_Grow_t method = (CFISH_CB_Grow_t)cfish_obj_method(self, CFISH_CB_Grow_OFFSET);
      |                                    ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Get_Size':
autogen/include/Clownfish/CharBuf.h:346:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_CharBuf *)' {aka 'long unsigned int (*)(cfish_CharBuf *)'} [-Wcast-function-type]
  346 |     const CFISH_CB_Get_Size_t method = (CFISH_CB_Get_Size_t)cfish_obj_method(self, CFISH_CB_Get_Size_OFFSET);
      |                                        ^
autogen/include/Clownfish/CharBuf.h: In function 'CFISH_CB_Yield_String':
autogen/include/Clownfish/CharBuf.h:357:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_CharBuf *)' [-Wcast-function-type]
  357 |     const CFISH_CB_Yield_String_t method = (CFISH_CB_Yield_String_t)cfish_obj_method(self, CFISH_CB_Yield_String_OFFSET);
      |                                            ^
In file included from cftest/Clownfish/Test/TestString.c:31:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestHost.c -c -o cftest/Clownfish/Test/TestHost.o
In file included from autogen/include/Clownfish/Test/TestHost.h:40,
                 from cftest/Clownfish/Test/TestHost.c:20:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_To_Host':
autogen/include/Clownfish/Test/TestHost.h:220:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHost *, void *)' [-Wcast-function-type]
  220 |     const TESTCFISH_TestHost_To_Host_t method = (TESTCFISH_TestHost_To_Host_t)cfish_obj_method(self, TESTCFISH_TestHost_To_Host_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Clone':
autogen/include/Clownfish/Test/TestHost.h:227:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  227 |     const TESTCFISH_TestHost_Clone_t method = (TESTCFISH_TestHost_Clone_t)cfish_obj_method(self, TESTCFISH_TestHost_Clone_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Equals':
autogen/include/Clownfish/Test/TestHost.h:234:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, cfish_Obj *)' [-Wcast-function-type]
  234 |     const TESTCFISH_TestHost_Equals_t method = (TESTCFISH_TestHost_Equals_t)cfish_obj_method(self, TESTCFISH_TestHost_Equals_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Compare_To':
autogen/include/Clownfish/Test/TestHost.h:241:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, cfish_Obj *)' {aka 'int (*)(testcfish_TestHost *, cfish_Obj *)'} [-Wcast-function-type]
  241 |     const TESTCFISH_TestHost_Compare_To_t method = (TESTCFISH_TestHost_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestHost_Compare_To_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_To_String':
autogen/include/Clownfish/Test/TestHost.h:255:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  255 |     const TESTCFISH_TestHost_To_String_t method = (TESTCFISH_TestHost_To_String_t)cfish_obj_method(self, TESTCFISH_TestHost_To_String_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Obj_Pos_Arg':
autogen/include/Clownfish/Test/TestHost.h:262:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *)' [-Wcast-function-type]
  262 |     const TESTCFISH_TestHost_Test_Obj_Pos_Arg_t method = (TESTCFISH_TestHost_Test_Obj_Pos_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Obj_Pos_Arg_OFFSET);
      |                                                          ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:269:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *)' [-Wcast-function-type]
  269 |     const TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def_t method = (TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def_OFFSET);
      |                                                              ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Obj_Label_Arg':
autogen/include/Clownfish/Test/TestHost.h:276:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *, _Bool)' [-Wcast-function-type]
  276 |     const TESTCFISH_TestHost_Test_Obj_Label_Arg_t method = (TESTCFISH_TestHost_Test_Obj_Label_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Obj_Label_Arg_OFFSET);
      |                                                            ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Obj_Label_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:283:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *, _Bool)' [-Wcast-function-type]
  283 |     const TESTCFISH_TestHost_Test_Obj_Label_Arg_Def_t method = (TESTCFISH_TestHost_Test_Obj_Label_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Obj_Label_Arg_Def_OFFSET);
      |                                                                ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Int32_Pos_Arg':
autogen/include/Clownfish/Test/TestHost.h:290:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, int32_t)' {aka 'int (*)(testcfish_TestHost *, int)'} [-Wcast-function-type]
  290 |     const TESTCFISH_TestHost_Test_Int32_Pos_Arg_t method = (TESTCFISH_TestHost_Test_Int32_Pos_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Int32_Pos_Arg_OFFSET);
      |                                                            ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:297:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, int32_t)' {aka 'int (*)(testcfish_TestHost *, int)'} [-Wcast-function-type]
  297 |     const TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def_t method = (TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def_OFFSET);
      |                                                                ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Int32_Label_Arg':
autogen/include/Clownfish/Test/TestHost.h:304:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, int32_t,  _Bool)' {aka 'int (*)(testcfish_TestHost *, int,  _Bool)'} [-Wcast-function-type]
  304 |     const TESTCFISH_TestHost_Test_Int32_Label_Arg_t method = (TESTCFISH_TestHost_Test_Int32_Label_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Int32_Label_Arg_OFFSET);
      |                                                              ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Int32_Label_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:311:66: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, int32_t,  _Bool)' {aka 'int (*)(testcfish_TestHost *, int,  _Bool)'} [-Wcast-function-type]
  311 |     const TESTCFISH_TestHost_Test_Int32_Label_Arg_Def_t method = (TESTCFISH_TestHost_Test_Int32_Label_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Int32_Label_Arg_Def_OFFSET);
      |                                                                  ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Bool_Pos_Arg':
autogen/include/Clownfish/Test/TestHost.h:318:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, _Bool)' [-Wcast-function-type]
  318 |     const TESTCFISH_TestHost_Test_Bool_Pos_Arg_t method = (TESTCFISH_TestHost_Test_Bool_Pos_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Bool_Pos_Arg_OFFSET);
      |                                                           ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:325:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, _Bool)' [-Wcast-function-type]
  325 |     const TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def_t method = (TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def_OFFSET);
      |                                                               ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Bool_Label_Arg':
autogen/include/Clownfish/Test/TestHost.h:332:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, _Bool,  _Bool)' [-Wcast-function-type]
  332 |     const TESTCFISH_TestHost_Test_Bool_Label_Arg_t method = (TESTCFISH_TestHost_Test_Bool_Label_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Bool_Label_Arg_OFFSET);
      |                                                             ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Bool_Label_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:339:65: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, _Bool,  _Bool)' [-Wcast-function-type]
  339 |     const TESTCFISH_TestHost_Test_Bool_Label_Arg_Def_t method = (TESTCFISH_TestHost_Test_Bool_Label_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Bool_Label_Arg_Def_OFFSET);
      |                                                                 ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Invalid_Callback':
autogen/include/Clownfish/Test/TestHost.h:346:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  346 |     const TESTCFISH_TestHost_Invalid_Callback_t method = (TESTCFISH_TestHost_Invalid_Callback_t)cfish_obj_method(self, TESTCFISH_TestHost_Invalid_Callback_OFFSET);
      |                                                          ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Aliased':
autogen/include/Clownfish/Test/TestHost.h:360:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  360 |     const TESTCFISH_TestHost_Aliased_t method = (TESTCFISH_TestHost_Aliased_t)cfish_obj_method(self, TESTCFISH_TestHost_Aliased_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Invoke_Aliased_From_C':
autogen/include/Clownfish/Test/TestHost.h:367:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  367 |     const TESTCFISH_TestHost_Invoke_Aliased_From_C_t method = (TESTCFISH_TestHost_Invoke_Aliased_From_C_t)cfish_obj_method(self, TESTCFISH_TestHost_Invoke_Aliased_From_C_OFFSET);
      |                                                               ^
In file included from cftest/Clownfish/Test/TestHost.c:21:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cftest/Clownfish/Test/TestHost.c:22:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestMethod.c -c -o cftest/Clownfish/Test/TestMethod.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestMethod.h:40,
                 from cftest/Clownfish/Test/TestMethod.c:20:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_To_Host':
autogen/include/Clownfish/Test/TestMethod.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestMethod *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestMethod_To_Host_t method = (TESTCFISH_TestMethod_To_Host_t)cfish_obj_method(self, TESTCFISH_TestMethod_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Clone':
autogen/include/Clownfish/Test/TestMethod.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestMethod *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestMethod_Clone_t method = (TESTCFISH_TestMethod_Clone_t)cfish_obj_method(self, TESTCFISH_TestMethod_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Equals':
autogen/include/Clownfish/Test/TestMethod.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestMethod *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestMethod_Equals_t method = (TESTCFISH_TestMethod_Equals_t)cfish_obj_method(self, TESTCFISH_TestMethod_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Compare_To':
autogen/include/Clownfish/Test/TestMethod.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestMethod *, cfish_Obj *)' {aka 'int (*)(testcfish_TestMethod *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestMethod_Compare_To_t method = (TESTCFISH_TestMethod_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestMethod_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_To_String':
autogen/include/Clownfish/Test/TestMethod.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestMethod *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestMethod_To_String_t method = (TESTCFISH_TestMethod_To_String_t)cfish_obj_method(self, TESTCFISH_TestMethod_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Run':
autogen/include/Clownfish/Test/TestMethod.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestMethod *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestMethod_Run_t method = (TESTCFISH_TestMethod_Run_t)cfish_obj_method(self, TESTCFISH_TestMethod_Run_OFFSET);
      |                                               ^
In file included from cftest/Clownfish/Test/TestMethod.c:22:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from cftest/Clownfish/Test/TestMethod.c:23:
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_To_Host':
autogen/include/Clownfish/Method.h:177:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Method *, void *)' [-Wcast-function-type]
  177 |     const CFISH_Method_To_Host_t method = (CFISH_Method_To_Host_t)cfish_obj_method(self, CFISH_Method_To_Host_OFFSET);
      |                                           ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Clone':
autogen/include/Clownfish/Method.h:188:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Method *)' [-Wcast-function-type]
  188 |     const CFISH_Method_Clone_t method = (CFISH_Method_Clone_t)cfish_obj_method(self, CFISH_Method_Clone_OFFSET);
      |                                         ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Equals':
autogen/include/Clownfish/Method.h:199:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Method *, cfish_Obj *)' [-Wcast-function-type]
  199 |     const CFISH_Method_Equals_t method = (CFISH_Method_Equals_t)cfish_obj_method(self, CFISH_Method_Equals_OFFSET);
      |                                          ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Compare_To':
autogen/include/Clownfish/Method.h:210:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Method *, cfish_Obj *)' {aka 'int (*)(cfish_Method *, cfish_Obj *)'} [-Wcast-function-type]
  210 |     const CFISH_Method_Compare_To_t method = (CFISH_Method_Compare_To_t)cfish_obj_method(self, CFISH_Method_Compare_To_OFFSET);
      |                                              ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_To_String':
autogen/include/Clownfish/Method.h:232:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Method *)' [-Wcast-function-type]
  232 |     const CFISH_Method_To_String_t method = (CFISH_Method_To_String_t)cfish_obj_method(self, CFISH_Method_To_String_OFFSET);
      |                                             ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Get_Name':
autogen/include/Clownfish/Method.h:243:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Method *)' [-Wcast-function-type]
  243 |     const CFISH_Method_Get_Name_t method = (CFISH_Method_Get_Name_t)cfish_obj_method(self, CFISH_Method_Get_Name_OFFSET);
      |                                            ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Set_Host_Alias':
autogen/include/Clownfish/Method.h:254:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Method *, cfish_String *)' [-Wcast-function-type]
  254 |     const CFISH_Method_Set_Host_Alias_t method = (CFISH_Method_Set_Host_Alias_t)cfish_obj_method(self, CFISH_Method_Set_Host_Alias_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Get_Host_Alias':
autogen/include/Clownfish/Method.h:265:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Method *)' [-Wcast-function-type]
  265 |     const CFISH_Method_Get_Host_Alias_t method = (CFISH_Method_Get_Host_Alias_t)cfish_obj_method(self, CFISH_Method_Get_Host_Alias_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Is_Excluded_From_Host':
autogen/include/Clownfish/Method.h:276:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Method *)' [-Wcast-function-type]
  276 |     const CFISH_Method_Is_Excluded_From_Host_t method = (CFISH_Method_Is_Excluded_From_Host_t)cfish_obj_method(self, CFISH_Method_Is_Excluded_From_Host_OFFSET);
      |                                                         ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Host_Name':
autogen/include/Clownfish/Method.h:287:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Method *)' [-Wcast-function-type]
  287 |     const CFISH_Method_Host_Name_t method = (CFISH_Method_Host_Name_t)cfish_obj_method(self, CFISH_Method_Host_Name_OFFSET);
      |                                             ^
In file included from autogen/include/Clownfish/String.h:41,
                 from cftest/Clownfish/Test/TestMethod.c:24:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from cftest/Clownfish/Test/TestMethod.c:25:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestBoolean.c -c -o cftest/Clownfish/Test/TestBoolean.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestBoolean.h:40,
                 from cftest/Clownfish/Test/TestBoolean.c:20:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_To_Host':
autogen/include/Clownfish/Test/TestBoolean.h:130:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestBoolean *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestBoolean_To_Host_t method = (TESTCFISH_TestBoolean_To_Host_t)cfish_obj_method(self, TESTCFISH_TestBoolean_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Clone':
autogen/include/Clownfish/Test/TestBoolean.h:137:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestBoolean *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestBoolean_Clone_t method = (TESTCFISH_TestBoolean_Clone_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Equals':
autogen/include/Clownfish/Test/TestBoolean.h:144:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestBoolean *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestBoolean_Equals_t method = (TESTCFISH_TestBoolean_Equals_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Compare_To':
autogen/include/Clownfish/Test/TestBoolean.h:151:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestBoolean *, cfish_Obj *)' {aka 'int (*)(testcfish_TestBoolean *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestBoolean_Compare_To_t method = (TESTCFISH_TestBoolean_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_To_String':
autogen/include/Clownfish/Test/TestBoolean.h:165:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestBoolean *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestBoolean_To_String_t method = (TESTCFISH_TestBoolean_To_String_t)cfish_obj_method(self, TESTCFISH_TestBoolean_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Run':
autogen/include/Clownfish/Test/TestBoolean.h:172:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestBoolean *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestBoolean_Run_t method = (TESTCFISH_TestBoolean_Run_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Run_OFFSET);
      |                                                ^
In file included from autogen/include/Clownfish/String.h:41,
                 from cftest/Clownfish/Test/TestBoolean.c:22:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from autogen/include/Clownfish/String.h:44:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from cftest/Clownfish/Test/TestBoolean.c:23:
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_To_Host':
autogen/include/Clownfish/Boolean.h:159:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Boolean *, void *)' [-Wcast-function-type]
  159 |     const CFISH_Bool_To_Host_t method = (CFISH_Bool_To_Host_t)cfish_obj_method(self, CFISH_Bool_To_Host_OFFSET);
      |                                         ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Clone':
autogen/include/Clownfish/Boolean.h:170:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Boolean * (*)(cfish_Boolean *)' [-Wcast-function-type]
  170 |     const CFISH_Bool_Clone_t method = (CFISH_Bool_Clone_t)cfish_obj_method(self, CFISH_Bool_Clone_OFFSET);
      |                                       ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Equals':
autogen/include/Clownfish/Boolean.h:181:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Boolean *, cfish_Obj *)' [-Wcast-function-type]
  181 |     const CFISH_Bool_Equals_t method = (CFISH_Bool_Equals_t)cfish_obj_method(self, CFISH_Bool_Equals_OFFSET);
      |                                        ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Compare_To':
autogen/include/Clownfish/Boolean.h:192:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Boolean *, cfish_Obj *)' {aka 'int (*)(cfish_Boolean *, cfish_Obj *)'} [-Wcast-function-type]
  192 |     const CFISH_Bool_Compare_To_t method = (CFISH_Bool_Compare_To_t)cfish_obj_method(self, CFISH_Bool_Compare_To_OFFSET);
      |                                            ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_To_String':
autogen/include/Clownfish/Boolean.h:214:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Boolean *)' [-Wcast-function-type]
  214 |     const CFISH_Bool_To_String_t method = (CFISH_Bool_To_String_t)cfish_obj_method(self, CFISH_Bool_To_String_OFFSET);
      |                                           ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Get_Value':
autogen/include/Clownfish/Boolean.h:225:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Boolean *)' [-Wcast-function-type]
  225 |     const CFISH_Bool_Get_Value_t method = (CFISH_Bool_Get_Value_t)cfish_obj_method(self, CFISH_Bool_Get_Value_OFFSET);
      |                                           ^
In file included from cftest/Clownfish/Test/TestBoolean.c:25:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestClass.c -c -o cftest/Clownfish/Test/TestClass.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestClass.h:40,
                 from cftest/Clownfish/Test/TestClass.c:28:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_To_Host':
autogen/include/Clownfish/Test/TestClass.h:130:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestClass *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestClass_To_Host_t method = (TESTCFISH_TestClass_To_Host_t)cfish_obj_method(self, TESTCFISH_TestClass_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Clone':
autogen/include/Clownfish/Test/TestClass.h:137:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestClass *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestClass_Clone_t method = (TESTCFISH_TestClass_Clone_t)cfish_obj_method(self, TESTCFISH_TestClass_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Equals':
autogen/include/Clownfish/Test/TestClass.h:144:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestClass *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestClass_Equals_t method = (TESTCFISH_TestClass_Equals_t)cfish_obj_method(self, TESTCFISH_TestClass_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Compare_To':
autogen/include/Clownfish/Test/TestClass.h:151:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestClass *, cfish_Obj *)' {aka 'int (*)(testcfish_TestClass *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestClass_Compare_To_t method = (TESTCFISH_TestClass_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestClass_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_To_String':
autogen/include/Clownfish/Test/TestClass.h:165:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestClass *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestClass_To_String_t method = (TESTCFISH_TestClass_To_String_t)cfish_obj_method(self, TESTCFISH_TestClass_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Run':
autogen/include/Clownfish/Test/TestClass.h:172:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestClass *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestClass_Run_t method = (TESTCFISH_TestClass_Run_t)cfish_obj_method(self, TESTCFISH_TestClass_Run_OFFSET);
      |                                              ^
In file included from cftest/Clownfish/Test/TestClass.c:30:
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_To_Host':
autogen/include/Clownfish/Boolean.h:159:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Boolean *, void *)' [-Wcast-function-type]
  159 |     const CFISH_Bool_To_Host_t method = (CFISH_Bool_To_Host_t)cfish_obj_method(self, CFISH_Bool_To_Host_OFFSET);
      |                                         ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Clone':
autogen/include/Clownfish/Boolean.h:170:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Boolean * (*)(cfish_Boolean *)' [-Wcast-function-type]
  170 |     const CFISH_Bool_Clone_t method = (CFISH_Bool_Clone_t)cfish_obj_method(self, CFISH_Bool_Clone_OFFSET);
      |                                       ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Equals':
autogen/include/Clownfish/Boolean.h:181:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Boolean *, cfish_Obj *)' [-Wcast-function-type]
  181 |     const CFISH_Bool_Equals_t method = (CFISH_Bool_Equals_t)cfish_obj_method(self, CFISH_Bool_Equals_OFFSET);
      |                                        ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Compare_To':
autogen/include/Clownfish/Boolean.h:192:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Boolean *, cfish_Obj *)' {aka 'int (*)(cfish_Boolean *, cfish_Obj *)'} [-Wcast-function-type]
  192 |     const CFISH_Bool_Compare_To_t method = (CFISH_Bool_Compare_To_t)cfish_obj_method(self, CFISH_Bool_Compare_To_OFFSET);
      |                                            ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_To_String':
autogen/include/Clownfish/Boolean.h:214:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Boolean *)' [-Wcast-function-type]
  214 |     const CFISH_Bool_To_String_t method = (CFISH_Bool_To_String_t)cfish_obj_method(self, CFISH_Bool_To_String_OFFSET);
      |                                           ^
autogen/include/Clownfish/Boolean.h: In function 'CFISH_Bool_Get_Value':
autogen/include/Clownfish/Boolean.h:225:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Boolean *)' [-Wcast-function-type]
  225 |     const CFISH_Bool_Get_Value_t method = (CFISH_Bool_Get_Value_t)cfish_obj_method(self, CFISH_Bool_Get_Value_OFFSET);
      |                                           ^
In file included from cftest/Clownfish/Test/TestClass.c:31:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from cftest/Clownfish/Test/TestClass.c:32:
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_To_Host':
autogen/include/Clownfish/Method.h:177:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Method *, void *)' [-Wcast-function-type]
  177 |     const CFISH_Method_To_Host_t method = (CFISH_Method_To_Host_t)cfish_obj_method(self, CFISH_Method_To_Host_OFFSET);
      |                                           ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Clone':
autogen/include/Clownfish/Method.h:188:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Method *)' [-Wcast-function-type]
  188 |     const CFISH_Method_Clone_t method = (CFISH_Method_Clone_t)cfish_obj_method(self, CFISH_Method_Clone_OFFSET);
      |                                         ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Equals':
autogen/include/Clownfish/Method.h:199:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Method *, cfish_Obj *)' [-Wcast-function-type]
  199 |     const CFISH_Method_Equals_t method = (CFISH_Method_Equals_t)cfish_obj_method(self, CFISH_Method_Equals_OFFSET);
      |                                          ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Compare_To':
autogen/include/Clownfish/Method.h:210:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Method *, cfish_Obj *)' {aka 'int (*)(cfish_Method *, cfish_Obj *)'} [-Wcast-function-type]
  210 |     const CFISH_Method_Compare_To_t method = (CFISH_Method_Compare_To_t)cfish_obj_method(self, CFISH_Method_Compare_To_OFFSET);
      |                                              ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_To_String':
autogen/include/Clownfish/Method.h:232:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Method *)' [-Wcast-function-type]
  232 |     const CFISH_Method_To_String_t method = (CFISH_Method_To_String_t)cfish_obj_method(self, CFISH_Method_To_String_OFFSET);
      |                                             ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Get_Name':
autogen/include/Clownfish/Method.h:243:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Method *)' [-Wcast-function-type]
  243 |     const CFISH_Method_Get_Name_t method = (CFISH_Method_Get_Name_t)cfish_obj_method(self, CFISH_Method_Get_Name_OFFSET);
      |                                            ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Set_Host_Alias':
autogen/include/Clownfish/Method.h:254:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Method *, cfish_String *)' [-Wcast-function-type]
  254 |     const CFISH_Method_Set_Host_Alias_t method = (CFISH_Method_Set_Host_Alias_t)cfish_obj_method(self, CFISH_Method_Set_Host_Alias_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Get_Host_Alias':
autogen/include/Clownfish/Method.h:265:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Method *)' [-Wcast-function-type]
  265 |     const CFISH_Method_Get_Host_Alias_t method = (CFISH_Method_Get_Host_Alias_t)cfish_obj_method(self, CFISH_Method_Get_Host_Alias_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Is_Excluded_From_Host':
autogen/include/Clownfish/Method.h:276:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Method *)' [-Wcast-function-type]
  276 |     const CFISH_Method_Is_Excluded_From_Host_t method = (CFISH_Method_Is_Excluded_From_Host_t)cfish_obj_method(self, CFISH_Method_Is_Excluded_From_Host_OFFSET);
      |                                                         ^
autogen/include/Clownfish/Method.h: In function 'CFISH_Method_Host_Name':
autogen/include/Clownfish/Method.h:287:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Method *)' [-Wcast-function-type]
  287 |     const CFISH_Method_Host_Name_t method = (CFISH_Method_Host_Name_t)cfish_obj_method(self, CFISH_Method_Host_Name_OFFSET);
      |                                             ^
In file included from autogen/include/Clownfish/String.h:44,
                 from cftest/Clownfish/Test/TestClass.c:33:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from cftest/Clownfish/Test/TestClass.c:34:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
In file included from cftest/Clownfish/Test/TestClass.c:36:
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_To_Host':
autogen/include/Clownfish/Vector.h:245:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Vector *, void *)' [-Wcast-function-type]
  245 |     const CFISH_Vec_To_Host_t method = (CFISH_Vec_To_Host_t)cfish_obj_method(self, CFISH_Vec_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Clone':
autogen/include/Clownfish/Vector.h:256:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Vector *)' [-Wcast-function-type]
  256 |     const CFISH_Vec_Clone_t method = (CFISH_Vec_Clone_t)cfish_obj_method(self, CFISH_Vec_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Equals':
autogen/include/Clownfish/Vector.h:267:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Vector *, cfish_Obj *)' [-Wcast-function-type]
  267 |     const CFISH_Vec_Equals_t method = (CFISH_Vec_Equals_t)cfish_obj_method(self, CFISH_Vec_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Compare_To':
autogen/include/Clownfish/Vector.h:278:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Vector *, cfish_Obj *)' {aka 'int (*)(cfish_Vector *, cfish_Obj *)'} [-Wcast-function-type]
  278 |     const CFISH_Vec_Compare_To_t method = (CFISH_Vec_Compare_To_t)cfish_obj_method(self, CFISH_Vec_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_To_String':
autogen/include/Clownfish/Vector.h:300:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Vector *)' [-Wcast-function-type]
  300 |     const CFISH_Vec_To_String_t method = (CFISH_Vec_To_String_t)cfish_obj_method(self, CFISH_Vec_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Push':
autogen/include/Clownfish/Vector.h:311:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, cfish_Obj *)' [-Wcast-function-type]
  311 |     const CFISH_Vec_Push_t method = (CFISH_Vec_Push_t)cfish_obj_method(self, CFISH_Vec_Push_OFFSET);
      |                                     ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Push_All':
autogen/include/Clownfish/Vector.h:322:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, cfish_Vector *)' [-Wcast-function-type]
  322 |     const CFISH_Vec_Push_All_t method = (CFISH_Vec_Push_All_t)cfish_obj_method(self, CFISH_Vec_Push_All_OFFSET);
      |                                         ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Pop':
autogen/include/Clownfish/Vector.h:333:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *)' [-Wcast-function-type]
  333 |     const CFISH_Vec_Pop_t method = (CFISH_Vec_Pop_t)cfish_obj_method(self, CFISH_Vec_Pop_OFFSET);
      |                                    ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Insert':
autogen/include/Clownfish/Vector.h:344:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  344 |     const CFISH_Vec_Insert_t method = (CFISH_Vec_Insert_t)cfish_obj_method(self, CFISH_Vec_Insert_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Insert_All':
autogen/include/Clownfish/Vector.h:355:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Vector *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Vector *)'} [-Wcast-function-type]
  355 |     const CFISH_Vec_Insert_All_t method = (CFISH_Vec_Insert_All_t)cfish_obj_method(self, CFISH_Vec_Insert_All_OFFSET);
      |                                           ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Grow':
autogen/include/Clownfish/Vector.h:366:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  366 |     const CFISH_Vec_Grow_t method = (CFISH_Vec_Grow_t)cfish_obj_method(self, CFISH_Vec_Grow_OFFSET);
      |                                     ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Fetch':
autogen/include/Clownfish/Vector.h:377:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *, size_t)' {aka 'cfish_Obj * (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  377 |     const CFISH_Vec_Fetch_t method = (CFISH_Vec_Fetch_t)cfish_obj_method(self, CFISH_Vec_Fetch_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Store':
autogen/include/Clownfish/Vector.h:388:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  388 |     const CFISH_Vec_Store_t method = (CFISH_Vec_Store_t)cfish_obj_method(self, CFISH_Vec_Store_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Delete':
autogen/include/Clownfish/Vector.h:399:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *, size_t)' {aka 'cfish_Obj * (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  399 |     const CFISH_Vec_Delete_t method = (CFISH_Vec_Delete_t)cfish_obj_method(self, CFISH_Vec_Delete_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Excise':
autogen/include/Clownfish/Vector.h:410:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  410 |     const CFISH_Vec_Excise_t method = (CFISH_Vec_Excise_t)cfish_obj_method(self, CFISH_Vec_Excise_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Resize':
autogen/include/Clownfish/Vector.h:432:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  432 |     const CFISH_Vec_Resize_t method = (CFISH_Vec_Resize_t)cfish_obj_method(self, CFISH_Vec_Resize_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Get_Size':
autogen/include/Clownfish/Vector.h:454:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Vector *)' {aka 'long unsigned int (*)(cfish_Vector *)'} [-Wcast-function-type]
  454 |     const CFISH_Vec_Get_Size_t method = (CFISH_Vec_Get_Size_t)cfish_obj_method(self, CFISH_Vec_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Get_Capacity':
autogen/include/Clownfish/Vector.h:465:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Vector *)' {aka 'long unsigned int (*)(cfish_Vector *)'} [-Wcast-function-type]
  465 |     const CFISH_Vec_Get_Capacity_t method = (CFISH_Vec_Get_Capacity_t)cfish_obj_method(self, CFISH_Vec_Get_Capacity_OFFSET);
      |                                             ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Slice':
autogen/include/Clownfish/Vector.h:476:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Vector *, size_t,  size_t)' {aka 'cfish_Vector * (*)(cfish_Vector *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  476 |     const CFISH_Vec_Slice_t method = (CFISH_Vec_Slice_t)cfish_obj_method(self, CFISH_Vec_Slice_OFFSET);
      |                                      ^
cftest/Clownfish/Test/TestClass.c: In function 'test_simple_subclass':
cftest/Clownfish/Test/TestClass.c:115:30: warning: cast between incompatible function types from 'cfish_String * (*)(cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
  115 |     Class_Override(subclass, (cfish_method_t)MyObj_To_String_IMP,
      |                              ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestNum.c -c -o cftest/Clownfish/Test/TestNum.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestNum.h:40,
                 from cftest/Clownfish/Test/TestNum.c:24:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_To_Host':
autogen/include/Clownfish/Test/TestNum.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestNum *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestNum_To_Host_t method = (TESTCFISH_TestNum_To_Host_t)cfish_obj_method(self, TESTCFISH_TestNum_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Clone':
autogen/include/Clownfish/Test/TestNum.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestNum *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestNum_Clone_t method = (TESTCFISH_TestNum_Clone_t)cfish_obj_method(self, TESTCFISH_TestNum_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Equals':
autogen/include/Clownfish/Test/TestNum.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestNum *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestNum_Equals_t method = (TESTCFISH_TestNum_Equals_t)cfish_obj_method(self, TESTCFISH_TestNum_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Compare_To':
autogen/include/Clownfish/Test/TestNum.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestNum *, cfish_Obj *)' {aka 'int (*)(testcfish_TestNum *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestNum_Compare_To_t method = (TESTCFISH_TestNum_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestNum_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_To_String':
autogen/include/Clownfish/Test/TestNum.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestNum *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestNum_To_String_t method = (TESTCFISH_TestNum_To_String_t)cfish_obj_method(self, TESTCFISH_TestNum_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Run':
autogen/include/Clownfish/Test/TestNum.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestNum *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestNum_Run_t method = (TESTCFISH_TestNum_Run_t)cfish_obj_method(self, TESTCFISH_TestNum_Run_OFFSET);
      |                                            ^
In file included from cftest/Clownfish/Test/TestNum.c:26:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/String.h:41,
                 from cftest/Clownfish/Test/TestNum.c:27:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from cftest/Clownfish/Test/TestNum.c:28:
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_To_Host':
autogen/include/Clownfish/Num.h:162:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Float *, void *)' [-Wcast-function-type]
  162 |     const CFISH_Float_To_Host_t method = (CFISH_Float_To_Host_t)cfish_obj_method(self, CFISH_Float_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Clone':
autogen/include/Clownfish/Num.h:173:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Float * (*)(cfish_Float *)' [-Wcast-function-type]
  173 |     const CFISH_Float_Clone_t method = (CFISH_Float_Clone_t)cfish_obj_method(self, CFISH_Float_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Equals':
autogen/include/Clownfish/Num.h:184:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Float *, cfish_Obj *)' [-Wcast-function-type]
  184 |     const CFISH_Float_Equals_t method = (CFISH_Float_Equals_t)cfish_obj_method(self, CFISH_Float_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Compare_To':
autogen/include/Clownfish/Num.h:195:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Float *, cfish_Obj *)' {aka 'int (*)(cfish_Float *, cfish_Obj *)'} [-Wcast-function-type]
  195 |     const CFISH_Float_Compare_To_t method = (CFISH_Float_Compare_To_t)cfish_obj_method(self, CFISH_Float_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_To_String':
autogen/include/Clownfish/Num.h:217:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Float *)' [-Wcast-function-type]
  217 |     const CFISH_Float_To_String_t method = (CFISH_Float_To_String_t)cfish_obj_method(self, CFISH_Float_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Get_Value':
autogen/include/Clownfish/Num.h:228:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_Float *)' [-Wcast-function-type]
  228 |     const CFISH_Float_Get_Value_t method = (CFISH_Float_Get_Value_t)cfish_obj_method(self, CFISH_Float_Get_Value_OFFSET);
      |                                            ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_To_I64':
autogen/include/Clownfish/Num.h:239:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_Float *)' {aka 'long int (*)(cfish_Float *)'} [-Wcast-function-type]
  239 |     const CFISH_Float_To_I64_t method = (CFISH_Float_To_I64_t)cfish_obj_method(self, CFISH_Float_To_I64_OFFSET);
      |                                         ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_To_Host':
autogen/include/Clownfish/Num.h:417:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Integer *, void *)' [-Wcast-function-type]
  417 |     const CFISH_Int_To_Host_t method = (CFISH_Int_To_Host_t)cfish_obj_method(self, CFISH_Int_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Clone':
autogen/include/Clownfish/Num.h:428:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Integer * (*)(cfish_Integer *)' [-Wcast-function-type]
  428 |     const CFISH_Int_Clone_t method = (CFISH_Int_Clone_t)cfish_obj_method(self, CFISH_Int_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Equals':
autogen/include/Clownfish/Num.h:439:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Integer *, cfish_Obj *)' [-Wcast-function-type]
  439 |     const CFISH_Int_Equals_t method = (CFISH_Int_Equals_t)cfish_obj_method(self, CFISH_Int_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Compare_To':
autogen/include/Clownfish/Num.h:450:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Integer *, cfish_Obj *)' {aka 'int (*)(cfish_Integer *, cfish_Obj *)'} [-Wcast-function-type]
  450 |     const CFISH_Int_Compare_To_t method = (CFISH_Int_Compare_To_t)cfish_obj_method(self, CFISH_Int_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_To_String':
autogen/include/Clownfish/Num.h:472:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Integer *)' [-Wcast-function-type]
  472 |     const CFISH_Int_To_String_t method = (CFISH_Int_To_String_t)cfish_obj_method(self, CFISH_Int_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Get_Value':
autogen/include/Clownfish/Num.h:483:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_Integer *)' {aka 'long int (*)(cfish_Integer *)'} [-Wcast-function-type]
  483 |     const CFISH_Int_Get_Value_t method = (CFISH_Int_Get_Value_t)cfish_obj_method(self, CFISH_Int_Get_Value_OFFSET);
      |                                          ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_To_F64':
autogen/include/Clownfish/Num.h:494:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_Integer *)' [-Wcast-function-type]
  494 |     const CFISH_Int_To_F64_t method = (CFISH_Int_To_F64_t)cfish_obj_method(self, CFISH_Int_To_F64_OFFSET);
      |                                       ^
In file included from cftest/Clownfish/Test/TestNum.c:30:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test/TestPtrHash.c -c -o cftest/Clownfish/Test/TestPtrHash.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from autogen/include/Clownfish/Test/TestPtrHash.h:40,
                 from cftest/Clownfish/Test/TestPtrHash.c:23:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_To_Host':
autogen/include/Clownfish/Test/TestPtrHash.h:130:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestPtrHash *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestPtrHash_To_Host_t method = (TESTCFISH_TestPtrHash_To_Host_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Clone':
autogen/include/Clownfish/Test/TestPtrHash.h:137:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestPtrHash *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestPtrHash_Clone_t method = (TESTCFISH_TestPtrHash_Clone_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Equals':
autogen/include/Clownfish/Test/TestPtrHash.h:144:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestPtrHash *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestPtrHash_Equals_t method = (TESTCFISH_TestPtrHash_Equals_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Compare_To':
autogen/include/Clownfish/Test/TestPtrHash.h:151:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestPtrHash *, cfish_Obj *)' {aka 'int (*)(testcfish_TestPtrHash *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestPtrHash_Compare_To_t method = (TESTCFISH_TestPtrHash_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_To_String':
autogen/include/Clownfish/Test/TestPtrHash.h:165:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestPtrHash *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestPtrHash_To_String_t method = (TESTCFISH_TestPtrHash_To_String_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Run':
autogen/include/Clownfish/Test/TestPtrHash.h:172:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestPtrHash *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestPtrHash_Run_t method = (TESTCFISH_TestPtrHash_Run_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Run_OFFSET);
      |                                                ^
In file included from cftest/Clownfish/Test/TestPtrHash.c:24:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from cftest/Clownfish/Test/TestPtrHash.c:26:
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_Host':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:251:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatchRunner *, void *)' [-Wcast-function-type]
  251 |     const CFISH_TestBatchRunner_To_Host_t method = (CFISH_TestBatchRunner_To_Host_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Clone':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:258:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  258 |     const CFISH_TestBatchRunner_Clone_t method = (CFISH_TestBatchRunner_Clone_t)cfish_obj_method(self, CFISH_TestBatchRunner_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:265:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_Obj *)' [-Wcast-function-type]
  265 |     const CFISH_TestBatchRunner_Equals_t method = (CFISH_TestBatchRunner_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:272:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatchRunner *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatchRunner *, cfish_Obj *)'} [-Wcast-function-type]
  272 |     const CFISH_TestBatchRunner_Compare_To_t method = (CFISH_TestBatchRunner_Compare_To_t)cfish_obj_method(self, CFISH_TestBatchRunner_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_To_String':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:286:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatchRunner *)' [-Wcast-function-type]
  286 |     const CFISH_TestBatchRunner_To_String_t method = (CFISH_TestBatchRunner_To_String_t)cfish_obj_method(self, CFISH_TestBatchRunner_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Run_Batch':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:293:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, cfish_TestBatch *)' [-Wcast-function-type]
  293 |     const CFISH_TestBatchRunner_Run_Batch_t method = (CFISH_TestBatchRunner_Run_Batch_t)cfish_obj_method(self, CFISH_TestBatchRunner_Run_Batch_OFFSET);
      |                                                      ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Plan':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:300:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, uint32_t)' {aka 'void (*)(cfish_TestBatchRunner *, cfish_TestBatch *, unsigned int)'} [-Wcast-function-type]
  300 |     const CFISH_TestBatchRunner_Plan_t method = (CFISH_TestBatchRunner_Plan_t)cfish_obj_method(self, CFISH_TestBatchRunner_Plan_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Planned':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:307:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  307 |     const CFISH_TestBatchRunner_Get_Num_Planned_t method = (CFISH_TestBatchRunner_Get_Num_Planned_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Planned_OFFSET);
      |                                                            ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Tests':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:314:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  314 |     const CFISH_TestBatchRunner_Get_Num_Tests_t method = (CFISH_TestBatchRunner_Get_Num_Tests_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Tests_OFFSET);
      |                                                          ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_Get_Num_Failed':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:321:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_TestBatchRunner *)' {aka 'unsigned int (*)(cfish_TestBatchRunner *)'} [-Wcast-function-type]
  321 |     const CFISH_TestBatchRunner_Get_Num_Failed_t method = (CFISH_TestBatchRunner_Get_Num_Failed_t)cfish_obj_method(self, CFISH_TestBatchRunner_Get_Num_Failed_OFFSET);
      |                                                           ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_True':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:328:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  328 |     const CFISH_TestBatchRunner_VTest_True_t method = (CFISH_TestBatchRunner_VTest_True_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_True_OFFSET);
      |                                                       ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_False':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:335:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, _Bool,  const char *, __va_list_tag *)' [-Wcast-function-type]
  335 |     const CFISH_TestBatchRunner_VTest_False_t method = (CFISH_TestBatchRunner_VTest_False_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_False_OFFSET);
      |                                                        ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Int_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:342:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, int64_t,  int64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long int,  long int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  342 |     const CFISH_TestBatchRunner_VTest_Int_Equals_t method = (CFISH_TestBatchRunner_VTest_Int_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Int_Equals_OFFSET);
      |                                                             ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_UInt_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:349:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, uint64_t,  uint64_t,  const char *, __va_list_tag *)' {aka '_Bool (*)(cfish_TestBatchRunner *, long unsigned int,  long unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  349 |     const CFISH_TestBatchRunner_VTest_UInt_Equals_t method = (CFISH_TestBatchRunner_VTest_UInt_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_UInt_Equals_OFFSET);
      |                                                              ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_Float_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:356:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, double,  double,  const char *, __va_list_tag *)' [-Wcast-function-type]
  356 |     const CFISH_TestBatchRunner_VTest_Float_Equals_t method = (CFISH_TestBatchRunner_VTest_Float_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_Float_Equals_OFFSET);
      |                                                               ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VTest_String_Equals':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:363:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, const char *, const char *, __va_list_tag *)' [-Wcast-function-type]
  363 |     const CFISH_TestBatchRunner_VTest_String_Equals_t method = (CFISH_TestBatchRunner_VTest_String_Equals_t)cfish_obj_method(self, CFISH_TestBatchRunner_VTest_String_Equals_OFFSET);
      |                                                                ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VPass':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:370:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  370 |     const CFISH_TestBatchRunner_VPass_t method = (CFISH_TestBatchRunner_VPass_t)cfish_obj_method(self, CFISH_TestBatchRunner_VPass_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VFail':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:377:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatchRunner *, const char *, __va_list_tag *)' [-Wcast-function-type]
  377 |     const CFISH_TestBatchRunner_VFail_t method = (CFISH_TestBatchRunner_VFail_t)cfish_obj_method(self, CFISH_TestBatchRunner_VFail_OFFSET);
      |                                                  ^
autogen/include/Clownfish/TestHarness/TestBatchRunner.h: In function 'CFISH_TestBatchRunner_VSkip':
autogen/include/Clownfish/TestHarness/TestBatchRunner.h:384:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatchRunner *, uint32_t,  const char *, __va_list_tag *)' {aka 'void (*)(cfish_TestBatchRunner *, unsigned int,  const char *, __va_list_tag *)'} [-Wcast-function-type]
  384 |     const CFISH_TestBatchRunner_VSkip_t method = (CFISH_TestBatchRunner_VSkip_t)cfish_obj_method(self, CFISH_TestBatchRunner_VSkip_OFFSET);
      |                                                  ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/Clownfish/Test.c -c -o cftest/Clownfish/Test.o
In file included from autogen/include/Clownfish/TestHarness/TestBatch.h:40,
                 from cftest/Clownfish/Test.c:22:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
In file included from cftest/Clownfish/Test.c:23:
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_To_Host':
autogen/include/Clownfish/TestHarness/TestSuite.h:153:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestSuite *, void *)' [-Wcast-function-type]
  153 |     const CFISH_TestSuite_To_Host_t method = (CFISH_TestSuite_To_Host_t)cfish_obj_method(self, CFISH_TestSuite_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Clone':
autogen/include/Clownfish/TestHarness/TestSuite.h:160:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestSuite *)' [-Wcast-function-type]
  160 |     const CFISH_TestSuite_Clone_t method = (CFISH_TestSuite_Clone_t)cfish_obj_method(self, CFISH_TestSuite_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Equals':
autogen/include/Clownfish/TestHarness/TestSuite.h:167:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuite *, cfish_Obj *)' [-Wcast-function-type]
  167 |     const CFISH_TestSuite_Equals_t method = (CFISH_TestSuite_Equals_t)cfish_obj_method(self, CFISH_TestSuite_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Compare_To':
autogen/include/Clownfish/TestHarness/TestSuite.h:174:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestSuite *, cfish_Obj *)' {aka 'int (*)(cfish_TestSuite *, cfish_Obj *)'} [-Wcast-function-type]
  174 |     const CFISH_TestSuite_Compare_To_t method = (CFISH_TestSuite_Compare_To_t)cfish_obj_method(self, CFISH_TestSuite_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_To_String':
autogen/include/Clownfish/TestHarness/TestSuite.h:188:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestSuite *)' [-Wcast-function-type]
  188 |     const CFISH_TestSuite_To_String_t method = (CFISH_TestSuite_To_String_t)cfish_obj_method(self, CFISH_TestSuite_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Add_Batch':
autogen/include/Clownfish/TestHarness/TestSuite.h:195:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestSuite *, cfish_TestBatch *)' [-Wcast-function-type]
  195 |     const CFISH_TestSuite_Add_Batch_t method = (CFISH_TestSuite_Add_Batch_t)cfish_obj_method(self, CFISH_TestSuite_Add_Batch_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Run_Batch':
autogen/include/Clownfish/TestHarness/TestSuite.h:202:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuite *, cfish_String *, cfish_TestFormatter *)' [-Wcast-function-type]
  202 |     const CFISH_TestSuite_Run_Batch_t method = (CFISH_TestSuite_Run_Batch_t)cfish_obj_method(self, CFISH_TestSuite_Run_Batch_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestSuite.h: In function 'CFISH_TestSuite_Run_All_Batches':
autogen/include/Clownfish/TestHarness/TestSuite.h:209:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestSuite *, cfish_TestFormatter *)' [-Wcast-function-type]
  209 |     const CFISH_TestSuite_Run_All_Batches_t method = (CFISH_TestSuite_Run_All_Batches_t)cfish_obj_method(self, CFISH_TestSuite_Run_All_Batches_OFFSET);
      |                                                      ^
In file included from cftest/Clownfish/Test.c:25:
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_To_Host':
autogen/include/Clownfish/Test/TestBlob.h:130:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestBlob *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestBlob_To_Host_t method = (TESTCFISH_TestBlob_To_Host_t)cfish_obj_method(self, TESTCFISH_TestBlob_To_Host_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Clone':
autogen/include/Clownfish/Test/TestBlob.h:137:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestBlob *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestBlob_Clone_t method = (TESTCFISH_TestBlob_Clone_t)cfish_obj_method(self, TESTCFISH_TestBlob_Clone_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Equals':
autogen/include/Clownfish/Test/TestBlob.h:144:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestBlob *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestBlob_Equals_t method = (TESTCFISH_TestBlob_Equals_t)cfish_obj_method(self, TESTCFISH_TestBlob_Equals_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Compare_To':
autogen/include/Clownfish/Test/TestBlob.h:151:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestBlob *, cfish_Obj *)' {aka 'int (*)(testcfish_TestBlob *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestBlob_Compare_To_t method = (TESTCFISH_TestBlob_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestBlob_Compare_To_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_To_String':
autogen/include/Clownfish/Test/TestBlob.h:165:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestBlob *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestBlob_To_String_t method = (TESTCFISH_TestBlob_To_String_t)cfish_obj_method(self, TESTCFISH_TestBlob_To_String_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Run':
autogen/include/Clownfish/Test/TestBlob.h:172:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestBlob *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestBlob_Run_t method = (TESTCFISH_TestBlob_Run_t)cfish_obj_method(self, TESTCFISH_TestBlob_Run_OFFSET);
      |                                             ^
In file included from cftest/Clownfish/Test.c:26:
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_To_Host':
autogen/include/Clownfish/Test/TestBoolean.h:130:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestBoolean *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestBoolean_To_Host_t method = (TESTCFISH_TestBoolean_To_Host_t)cfish_obj_method(self, TESTCFISH_TestBoolean_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Clone':
autogen/include/Clownfish/Test/TestBoolean.h:137:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestBoolean *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestBoolean_Clone_t method = (TESTCFISH_TestBoolean_Clone_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Equals':
autogen/include/Clownfish/Test/TestBoolean.h:144:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestBoolean *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestBoolean_Equals_t method = (TESTCFISH_TestBoolean_Equals_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Compare_To':
autogen/include/Clownfish/Test/TestBoolean.h:151:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestBoolean *, cfish_Obj *)' {aka 'int (*)(testcfish_TestBoolean *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestBoolean_Compare_To_t method = (TESTCFISH_TestBoolean_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_To_String':
autogen/include/Clownfish/Test/TestBoolean.h:165:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestBoolean *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestBoolean_To_String_t method = (TESTCFISH_TestBoolean_To_String_t)cfish_obj_method(self, TESTCFISH_TestBoolean_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Run':
autogen/include/Clownfish/Test/TestBoolean.h:172:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestBoolean *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestBoolean_Run_t method = (TESTCFISH_TestBoolean_Run_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Run_OFFSET);
      |                                                ^
In file included from cftest/Clownfish/Test.c:27:
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_To_Host':
autogen/include/Clownfish/Test/TestByteBuf.h:130:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestByteBuf *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestBB_To_Host_t method = (TESTCFISH_TestBB_To_Host_t)cfish_obj_method(self, TESTCFISH_TestBB_To_Host_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Clone':
autogen/include/Clownfish/Test/TestByteBuf.h:137:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestByteBuf *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestBB_Clone_t method = (TESTCFISH_TestBB_Clone_t)cfish_obj_method(self, TESTCFISH_TestBB_Clone_OFFSET);
      |                                             ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Equals':
autogen/include/Clownfish/Test/TestByteBuf.h:144:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestByteBuf *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestBB_Equals_t method = (TESTCFISH_TestBB_Equals_t)cfish_obj_method(self, TESTCFISH_TestBB_Equals_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Compare_To':
autogen/include/Clownfish/Test/TestByteBuf.h:151:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestByteBuf *, cfish_Obj *)' {aka 'int (*)(testcfish_TestByteBuf *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestBB_Compare_To_t method = (TESTCFISH_TestBB_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestBB_Compare_To_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_To_String':
autogen/include/Clownfish/Test/TestByteBuf.h:165:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestByteBuf *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestBB_To_String_t method = (TESTCFISH_TestBB_To_String_t)cfish_obj_method(self, TESTCFISH_TestBB_To_String_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Run':
autogen/include/Clownfish/Test/TestByteBuf.h:172:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestByteBuf *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestBB_Run_t method = (TESTCFISH_TestBB_Run_t)cfish_obj_method(self, TESTCFISH_TestBB_Run_OFFSET);
      |                                           ^
In file included from cftest/Clownfish/Test.c:28:
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_To_Host':
autogen/include/Clownfish/Test/TestString.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestString *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestStr_To_Host_t method = (TESTCFISH_TestStr_To_Host_t)cfish_obj_method(self, TESTCFISH_TestStr_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Clone':
autogen/include/Clownfish/Test/TestString.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestString *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestStr_Clone_t method = (TESTCFISH_TestStr_Clone_t)cfish_obj_method(self, TESTCFISH_TestStr_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Equals':
autogen/include/Clownfish/Test/TestString.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestString *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestStr_Equals_t method = (TESTCFISH_TestStr_Equals_t)cfish_obj_method(self, TESTCFISH_TestStr_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Compare_To':
autogen/include/Clownfish/Test/TestString.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestString *, cfish_Obj *)' {aka 'int (*)(testcfish_TestString *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestStr_Compare_To_t method = (TESTCFISH_TestStr_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestStr_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_To_String':
autogen/include/Clownfish/Test/TestString.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestString *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestStr_To_String_t method = (TESTCFISH_TestStr_To_String_t)cfish_obj_method(self, TESTCFISH_TestStr_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Run':
autogen/include/Clownfish/Test/TestString.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestString *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestStr_Run_t method = (TESTCFISH_TestStr_Run_t)cfish_obj_method(self, TESTCFISH_TestStr_Run_OFFSET);
      |                                            ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_To_Host':
autogen/include/Clownfish/Test/TestString.h:311:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_StringCallbackTest *, void *)' [-Wcast-function-type]
  311 |     const TESTCFISH_StrCbTest_To_Host_t method = (TESTCFISH_StrCbTest_To_Host_t)cfish_obj_method(self, TESTCFISH_StrCbTest_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Clone':
autogen/include/Clownfish/Test/TestString.h:318:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_StringCallbackTest *)' [-Wcast-function-type]
  318 |     const TESTCFISH_StrCbTest_Clone_t method = (TESTCFISH_StrCbTest_Clone_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Equals':
autogen/include/Clownfish/Test/TestString.h:325:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_StringCallbackTest *, cfish_Obj *)' [-Wcast-function-type]
  325 |     const TESTCFISH_StrCbTest_Equals_t method = (TESTCFISH_StrCbTest_Equals_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Compare_To':
autogen/include/Clownfish/Test/TestString.h:332:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_StringCallbackTest *, cfish_Obj *)' {aka 'int (*)(testcfish_StringCallbackTest *, cfish_Obj *)'} [-Wcast-function-type]
  332 |     const TESTCFISH_StrCbTest_Compare_To_t method = (TESTCFISH_StrCbTest_Compare_To_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_To_String':
autogen/include/Clownfish/Test/TestString.h:346:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_StringCallbackTest *)' [-Wcast-function-type]
  346 |     const TESTCFISH_StrCbTest_To_String_t method = (TESTCFISH_StrCbTest_To_String_t)cfish_obj_method(self, TESTCFISH_StrCbTest_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Unchanged_By_Callback':
autogen/include/Clownfish/Test/TestString.h:353:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_StringCallbackTest *, cfish_String *)' [-Wcast-function-type]
  353 |     const TESTCFISH_StrCbTest_Unchanged_By_Callback_t method = (TESTCFISH_StrCbTest_Unchanged_By_Callback_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Unchanged_By_Callback_OFFSET);
      |                                                                ^
In file included from cftest/Clownfish/Test.c:29:
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_To_Host':
autogen/include/Clownfish/Test/TestCharBuf.h:130:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestCharBuf *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestCB_To_Host_t method = (TESTCFISH_TestCB_To_Host_t)cfish_obj_method(self, TESTCFISH_TestCB_To_Host_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Clone':
autogen/include/Clownfish/Test/TestCharBuf.h:137:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestCharBuf *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestCB_Clone_t method = (TESTCFISH_TestCB_Clone_t)cfish_obj_method(self, TESTCFISH_TestCB_Clone_OFFSET);
      |                                             ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Equals':
autogen/include/Clownfish/Test/TestCharBuf.h:144:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestCharBuf *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestCB_Equals_t method = (TESTCFISH_TestCB_Equals_t)cfish_obj_method(self, TESTCFISH_TestCB_Equals_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Compare_To':
autogen/include/Clownfish/Test/TestCharBuf.h:151:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestCharBuf *, cfish_Obj *)' {aka 'int (*)(testcfish_TestCharBuf *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestCB_Compare_To_t method = (TESTCFISH_TestCB_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestCB_Compare_To_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_To_String':
autogen/include/Clownfish/Test/TestCharBuf.h:165:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestCharBuf *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestCB_To_String_t method = (TESTCFISH_TestCB_To_String_t)cfish_obj_method(self, TESTCFISH_TestCB_To_String_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Run':
autogen/include/Clownfish/Test/TestCharBuf.h:172:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestCharBuf *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestCB_Run_t method = (TESTCFISH_TestCB_Run_t)cfish_obj_method(self, TESTCFISH_TestCB_Run_OFFSET);
      |                                           ^
In file included from cftest/Clownfish/Test.c:30:
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_To_Host':
autogen/include/Clownfish/Test/TestClass.h:130:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestClass *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestClass_To_Host_t method = (TESTCFISH_TestClass_To_Host_t)cfish_obj_method(self, TESTCFISH_TestClass_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Clone':
autogen/include/Clownfish/Test/TestClass.h:137:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestClass *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestClass_Clone_t method = (TESTCFISH_TestClass_Clone_t)cfish_obj_method(self, TESTCFISH_TestClass_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Equals':
autogen/include/Clownfish/Test/TestClass.h:144:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestClass *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestClass_Equals_t method = (TESTCFISH_TestClass_Equals_t)cfish_obj_method(self, TESTCFISH_TestClass_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Compare_To':
autogen/include/Clownfish/Test/TestClass.h:151:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestClass *, cfish_Obj *)' {aka 'int (*)(testcfish_TestClass *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestClass_Compare_To_t method = (TESTCFISH_TestClass_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestClass_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_To_String':
autogen/include/Clownfish/Test/TestClass.h:165:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestClass *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestClass_To_String_t method = (TESTCFISH_TestClass_To_String_t)cfish_obj_method(self, TESTCFISH_TestClass_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Run':
autogen/include/Clownfish/Test/TestClass.h:172:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestClass *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestClass_Run_t method = (TESTCFISH_TestClass_Run_t)cfish_obj_method(self, TESTCFISH_TestClass_Run_OFFSET);
      |                                              ^
In file included from cftest/Clownfish/Test.c:31:
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_To_Host':
autogen/include/Clownfish/Test/TestErr.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestErr *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestErr_To_Host_t method = (TESTCFISH_TestErr_To_Host_t)cfish_obj_method(self, TESTCFISH_TestErr_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Clone':
autogen/include/Clownfish/Test/TestErr.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestErr *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestErr_Clone_t method = (TESTCFISH_TestErr_Clone_t)cfish_obj_method(self, TESTCFISH_TestErr_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Equals':
autogen/include/Clownfish/Test/TestErr.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestErr *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestErr_Equals_t method = (TESTCFISH_TestErr_Equals_t)cfish_obj_method(self, TESTCFISH_TestErr_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Compare_To':
autogen/include/Clownfish/Test/TestErr.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestErr *, cfish_Obj *)' {aka 'int (*)(testcfish_TestErr *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestErr_Compare_To_t method = (TESTCFISH_TestErr_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestErr_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_To_String':
autogen/include/Clownfish/Test/TestErr.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestErr *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestErr_To_String_t method = (TESTCFISH_TestErr_To_String_t)cfish_obj_method(self, TESTCFISH_TestErr_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Run':
autogen/include/Clownfish/Test/TestErr.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestErr *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestErr_Run_t method = (TESTCFISH_TestErr_Run_t)cfish_obj_method(self, TESTCFISH_TestErr_Run_OFFSET);
      |                                            ^
In file included from cftest/Clownfish/Test.c:32:
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_To_Host':
autogen/include/Clownfish/Test/TestHash.h:130:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHash *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestHash_To_Host_t method = (TESTCFISH_TestHash_To_Host_t)cfish_obj_method(self, TESTCFISH_TestHash_To_Host_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Clone':
autogen/include/Clownfish/Test/TestHash.h:137:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHash *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestHash_Clone_t method = (TESTCFISH_TestHash_Clone_t)cfish_obj_method(self, TESTCFISH_TestHash_Clone_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Equals':
autogen/include/Clownfish/Test/TestHash.h:144:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHash *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestHash_Equals_t method = (TESTCFISH_TestHash_Equals_t)cfish_obj_method(self, TESTCFISH_TestHash_Equals_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Compare_To':
autogen/include/Clownfish/Test/TestHash.h:151:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHash *, cfish_Obj *)' {aka 'int (*)(testcfish_TestHash *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestHash_Compare_To_t method = (TESTCFISH_TestHash_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestHash_Compare_To_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_To_String':
autogen/include/Clownfish/Test/TestHash.h:165:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHash *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestHash_To_String_t method = (TESTCFISH_TestHash_To_String_t)cfish_obj_method(self, TESTCFISH_TestHash_To_String_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Run':
autogen/include/Clownfish/Test/TestHash.h:172:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestHash *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestHash_Run_t method = (TESTCFISH_TestHash_Run_t)cfish_obj_method(self, TESTCFISH_TestHash_Run_OFFSET);
      |                                             ^
In file included from cftest/Clownfish/Test.c:33:
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_To_Host':
autogen/include/Clownfish/Test/TestHashIterator.h:130:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHashIterator *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestHashIterator_To_Host_t method = (TESTCFISH_TestHashIterator_To_Host_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_To_Host_OFFSET);
      |                                                         ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Clone':
autogen/include/Clownfish/Test/TestHashIterator.h:137:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHashIterator *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestHashIterator_Clone_t method = (TESTCFISH_TestHashIterator_Clone_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Clone_OFFSET);
      |                                                       ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Equals':
autogen/include/Clownfish/Test/TestHashIterator.h:144:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHashIterator *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestHashIterator_Equals_t method = (TESTCFISH_TestHashIterator_Equals_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Equals_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Compare_To':
autogen/include/Clownfish/Test/TestHashIterator.h:151:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHashIterator *, cfish_Obj *)' {aka 'int (*)(testcfish_TestHashIterator *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestHashIterator_Compare_To_t method = (TESTCFISH_TestHashIterator_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Compare_To_OFFSET);
      |                                                            ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_To_String':
autogen/include/Clownfish/Test/TestHashIterator.h:165:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHashIterator *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestHashIterator_To_String_t method = (TESTCFISH_TestHashIterator_To_String_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_To_String_OFFSET);
      |                                                           ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Run':
autogen/include/Clownfish/Test/TestHashIterator.h:172:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestHashIterator *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestHashIterator_Run_t method = (TESTCFISH_TestHashIterator_Run_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Run_OFFSET);
      |                                                     ^
In file included from cftest/Clownfish/Test.c:34:
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_To_Host':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:130:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestLockFreeRegistry *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestLFReg_To_Host_t method = (TESTCFISH_TestLFReg_To_Host_t)cfish_obj_method(self, TESTCFISH_TestLFReg_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Clone':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:137:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestLockFreeRegistry *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestLFReg_Clone_t method = (TESTCFISH_TestLFReg_Clone_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Equals':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:144:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestLockFreeRegistry *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestLFReg_Equals_t method = (TESTCFISH_TestLFReg_Equals_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Compare_To':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:151:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestLockFreeRegistry *, cfish_Obj *)' {aka 'int (*)(testcfish_TestLockFreeRegistry *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestLFReg_Compare_To_t method = (TESTCFISH_TestLFReg_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_To_String':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:165:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestLockFreeRegistry *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestLFReg_To_String_t method = (TESTCFISH_TestLFReg_To_String_t)cfish_obj_method(self, TESTCFISH_TestLFReg_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Run':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:172:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestLockFreeRegistry *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestLFReg_Run_t method = (TESTCFISH_TestLFReg_Run_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Run_OFFSET);
      |                                              ^
In file included from cftest/Clownfish/Test.c:35:
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_To_Host':
autogen/include/Clownfish/Test/TestMethod.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestMethod *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestMethod_To_Host_t method = (TESTCFISH_TestMethod_To_Host_t)cfish_obj_method(self, TESTCFISH_TestMethod_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Clone':
autogen/include/Clownfish/Test/TestMethod.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestMethod *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestMethod_Clone_t method = (TESTCFISH_TestMethod_Clone_t)cfish_obj_method(self, TESTCFISH_TestMethod_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Equals':
autogen/include/Clownfish/Test/TestMethod.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestMethod *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestMethod_Equals_t method = (TESTCFISH_TestMethod_Equals_t)cfish_obj_method(self, TESTCFISH_TestMethod_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Compare_To':
autogen/include/Clownfish/Test/TestMethod.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestMethod *, cfish_Obj *)' {aka 'int (*)(testcfish_TestMethod *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestMethod_Compare_To_t method = (TESTCFISH_TestMethod_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestMethod_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_To_String':
autogen/include/Clownfish/Test/TestMethod.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestMethod *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestMethod_To_String_t method = (TESTCFISH_TestMethod_To_String_t)cfish_obj_method(self, TESTCFISH_TestMethod_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Run':
autogen/include/Clownfish/Test/TestMethod.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestMethod *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestMethod_Run_t method = (TESTCFISH_TestMethod_Run_t)cfish_obj_method(self, TESTCFISH_TestMethod_Run_OFFSET);
      |                                               ^
In file included from cftest/Clownfish/Test.c:36:
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_To_Host':
autogen/include/Clownfish/Test/TestNum.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestNum *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestNum_To_Host_t method = (TESTCFISH_TestNum_To_Host_t)cfish_obj_method(self, TESTCFISH_TestNum_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Clone':
autogen/include/Clownfish/Test/TestNum.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestNum *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestNum_Clone_t method = (TESTCFISH_TestNum_Clone_t)cfish_obj_method(self, TESTCFISH_TestNum_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Equals':
autogen/include/Clownfish/Test/TestNum.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestNum *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestNum_Equals_t method = (TESTCFISH_TestNum_Equals_t)cfish_obj_method(self, TESTCFISH_TestNum_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Compare_To':
autogen/include/Clownfish/Test/TestNum.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestNum *, cfish_Obj *)' {aka 'int (*)(testcfish_TestNum *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestNum_Compare_To_t method = (TESTCFISH_TestNum_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestNum_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_To_String':
autogen/include/Clownfish/Test/TestNum.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestNum *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestNum_To_String_t method = (TESTCFISH_TestNum_To_String_t)cfish_obj_method(self, TESTCFISH_TestNum_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Run':
autogen/include/Clownfish/Test/TestNum.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestNum *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestNum_Run_t method = (TESTCFISH_TestNum_Run_t)cfish_obj_method(self, TESTCFISH_TestNum_Run_OFFSET);
      |                                            ^
In file included from cftest/Clownfish/Test.c:37:
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_To_Host':
autogen/include/Clownfish/Test/TestObj.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestObj *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestObj_To_Host_t method = (TESTCFISH_TestObj_To_Host_t)cfish_obj_method(self, TESTCFISH_TestObj_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Clone':
autogen/include/Clownfish/Test/TestObj.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestObj *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestObj_Clone_t method = (TESTCFISH_TestObj_Clone_t)cfish_obj_method(self, TESTCFISH_TestObj_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Equals':
autogen/include/Clownfish/Test/TestObj.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestObj *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestObj_Equals_t method = (TESTCFISH_TestObj_Equals_t)cfish_obj_method(self, TESTCFISH_TestObj_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Compare_To':
autogen/include/Clownfish/Test/TestObj.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestObj *, cfish_Obj *)' {aka 'int (*)(testcfish_TestObj *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestObj_Compare_To_t method = (TESTCFISH_TestObj_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestObj_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_To_String':
autogen/include/Clownfish/Test/TestObj.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestObj *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestObj_To_String_t method = (TESTCFISH_TestObj_To_String_t)cfish_obj_method(self, TESTCFISH_TestObj_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Run':
autogen/include/Clownfish/Test/TestObj.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestObj *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestObj_Run_t method = (TESTCFISH_TestObj_Run_t)cfish_obj_method(self, TESTCFISH_TestObj_Run_OFFSET);
      |                                            ^
In file included from cftest/Clownfish/Test.c:38:
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_To_Host':
autogen/include/Clownfish/Test/TestPtrHash.h:130:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestPtrHash *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestPtrHash_To_Host_t method = (TESTCFISH_TestPtrHash_To_Host_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Clone':
autogen/include/Clownfish/Test/TestPtrHash.h:137:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestPtrHash *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestPtrHash_Clone_t method = (TESTCFISH_TestPtrHash_Clone_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Equals':
autogen/include/Clownfish/Test/TestPtrHash.h:144:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestPtrHash *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestPtrHash_Equals_t method = (TESTCFISH_TestPtrHash_Equals_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Compare_To':
autogen/include/Clownfish/Test/TestPtrHash.h:151:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestPtrHash *, cfish_Obj *)' {aka 'int (*)(testcfish_TestPtrHash *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestPtrHash_Compare_To_t method = (TESTCFISH_TestPtrHash_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_To_String':
autogen/include/Clownfish/Test/TestPtrHash.h:165:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestPtrHash *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestPtrHash_To_String_t method = (TESTCFISH_TestPtrHash_To_String_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Run':
autogen/include/Clownfish/Test/TestPtrHash.h:172:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestPtrHash *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestPtrHash_Run_t method = (TESTCFISH_TestPtrHash_Run_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Run_OFFSET);
      |                                                ^
In file included from cftest/Clownfish/Test.c:39:
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_To_Host':
autogen/include/Clownfish/Test/TestVector.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestVector *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestVector_To_Host_t method = (TESTCFISH_TestVector_To_Host_t)cfish_obj_method(self, TESTCFISH_TestVector_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Clone':
autogen/include/Clownfish/Test/TestVector.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestVector *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestVector_Clone_t method = (TESTCFISH_TestVector_Clone_t)cfish_obj_method(self, TESTCFISH_TestVector_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Equals':
autogen/include/Clownfish/Test/TestVector.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestVector *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestVector_Equals_t method = (TESTCFISH_TestVector_Equals_t)cfish_obj_method(self, TESTCFISH_TestVector_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Compare_To':
autogen/include/Clownfish/Test/TestVector.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestVector *, cfish_Obj *)' {aka 'int (*)(testcfish_TestVector *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestVector_Compare_To_t method = (TESTCFISH_TestVector_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestVector_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_To_String':
autogen/include/Clownfish/Test/TestVector.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestVector *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestVector_To_String_t method = (TESTCFISH_TestVector_To_String_t)cfish_obj_method(self, TESTCFISH_TestVector_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Run':
autogen/include/Clownfish/Test/TestVector.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestVector *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestVector_Run_t method = (TESTCFISH_TestVector_Run_t)cfish_obj_method(self, TESTCFISH_TestVector_Run_OFFSET);
      |                                               ^
In file included from cftest/Clownfish/Test.c:40:
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_To_Host':
autogen/include/Clownfish/Test/Util/TestAtomic.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestAtomic *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestAtomic_To_Host_t method = (TESTCFISH_TestAtomic_To_Host_t)cfish_obj_method(self, TESTCFISH_TestAtomic_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Clone':
autogen/include/Clownfish/Test/Util/TestAtomic.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestAtomic *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestAtomic_Clone_t method = (TESTCFISH_TestAtomic_Clone_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Equals':
autogen/include/Clownfish/Test/Util/TestAtomic.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestAtomic *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestAtomic_Equals_t method = (TESTCFISH_TestAtomic_Equals_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Compare_To':
autogen/include/Clownfish/Test/Util/TestAtomic.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestAtomic *, cfish_Obj *)' {aka 'int (*)(testcfish_TestAtomic *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestAtomic_Compare_To_t method = (TESTCFISH_TestAtomic_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_To_String':
autogen/include/Clownfish/Test/Util/TestAtomic.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestAtomic *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestAtomic_To_String_t method = (TESTCFISH_TestAtomic_To_String_t)cfish_obj_method(self, TESTCFISH_TestAtomic_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Run':
autogen/include/Clownfish/Test/Util/TestAtomic.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestAtomic *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestAtomic_Run_t method = (TESTCFISH_TestAtomic_Run_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Run_OFFSET);
      |                                               ^
In file included from cftest/Clownfish/Test.c:41:
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_To_Host':
autogen/include/Clownfish/Test/Util/TestMemory.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestMemory *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestMemory_To_Host_t method = (TESTCFISH_TestMemory_To_Host_t)cfish_obj_method(self, TESTCFISH_TestMemory_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Clone':
autogen/include/Clownfish/Test/Util/TestMemory.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestMemory *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestMemory_Clone_t method = (TESTCFISH_TestMemory_Clone_t)cfish_obj_method(self, TESTCFISH_TestMemory_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Equals':
autogen/include/Clownfish/Test/Util/TestMemory.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestMemory *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestMemory_Equals_t method = (TESTCFISH_TestMemory_Equals_t)cfish_obj_method(self, TESTCFISH_TestMemory_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Compare_To':
autogen/include/Clownfish/Test/Util/TestMemory.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestMemory *, cfish_Obj *)' {aka 'int (*)(testcfish_TestMemory *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestMemory_Compare_To_t method = (TESTCFISH_TestMemory_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestMemory_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_To_String':
autogen/include/Clownfish/Test/Util/TestMemory.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestMemory *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestMemory_To_String_t method = (TESTCFISH_TestMemory_To_String_t)cfish_obj_method(self, TESTCFISH_TestMemory_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Run':
autogen/include/Clownfish/Test/Util/TestMemory.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestMemory *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestMemory_Run_t method = (TESTCFISH_TestMemory_Run_t)cfish_obj_method(self, TESTCFISH_TestMemory_Run_OFFSET);
      |                                               ^
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH cftest/TestClownfish.c -c -o cftest/TestClownfish.o
gcc -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC -std=gnu99 -D_GNU_SOURCE -fvisibility=hidden -O2 -g -fno-strict-aliasing -I . -I cfcore -I autogen/include -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/CORE -fPIC -D CFP_TESTCFISH autogen/source/testcfish_parcel.c -c -o autogen/source/testcfish_parcel.o
In file included from autogen/include/Clownfish/Class.h:40,
                 from autogen/source/testcfish_parcel.c:51:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from autogen/source/testcfish_parcel.c:52:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
In file included from autogen/include/Clownfish/Test/TestCharBuf.h:40,
                 from autogen/source/testcfish_parcel.c:53:
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_To_Host':
autogen/include/Clownfish/Test/TestCharBuf.h:130:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestCharBuf *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestCB_To_Host_t method = (TESTCFISH_TestCB_To_Host_t)cfish_obj_method(self, TESTCFISH_TestCB_To_Host_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Clone':
autogen/include/Clownfish/Test/TestCharBuf.h:137:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestCharBuf *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestCB_Clone_t method = (TESTCFISH_TestCB_Clone_t)cfish_obj_method(self, TESTCFISH_TestCB_Clone_OFFSET);
      |                                             ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Equals':
autogen/include/Clownfish/Test/TestCharBuf.h:144:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestCharBuf *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestCB_Equals_t method = (TESTCFISH_TestCB_Equals_t)cfish_obj_method(self, TESTCFISH_TestCB_Equals_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Compare_To':
autogen/include/Clownfish/Test/TestCharBuf.h:151:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestCharBuf *, cfish_Obj *)' {aka 'int (*)(testcfish_TestCharBuf *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestCB_Compare_To_t method = (TESTCFISH_TestCB_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestCB_Compare_To_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_To_String':
autogen/include/Clownfish/Test/TestCharBuf.h:165:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestCharBuf *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestCB_To_String_t method = (TESTCFISH_TestCB_To_String_t)cfish_obj_method(self, TESTCFISH_TestCB_To_String_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Run':
autogen/include/Clownfish/Test/TestCharBuf.h:172:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestCharBuf *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestCB_Run_t method = (TESTCFISH_TestCB_Run_t)cfish_obj_method(self, TESTCFISH_TestCB_Run_OFFSET);
      |                                           ^
In file included from autogen/source/testcfish_parcel.c:54:
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_To_Host':
autogen/include/Clownfish/Test/Util/TestMemory.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestMemory *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestMemory_To_Host_t method = (TESTCFISH_TestMemory_To_Host_t)cfish_obj_method(self, TESTCFISH_TestMemory_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Clone':
autogen/include/Clownfish/Test/Util/TestMemory.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestMemory *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestMemory_Clone_t method = (TESTCFISH_TestMemory_Clone_t)cfish_obj_method(self, TESTCFISH_TestMemory_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Equals':
autogen/include/Clownfish/Test/Util/TestMemory.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestMemory *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestMemory_Equals_t method = (TESTCFISH_TestMemory_Equals_t)cfish_obj_method(self, TESTCFISH_TestMemory_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Compare_To':
autogen/include/Clownfish/Test/Util/TestMemory.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestMemory *, cfish_Obj *)' {aka 'int (*)(testcfish_TestMemory *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestMemory_Compare_To_t method = (TESTCFISH_TestMemory_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestMemory_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_To_String':
autogen/include/Clownfish/Test/Util/TestMemory.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestMemory *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestMemory_To_String_t method = (TESTCFISH_TestMemory_To_String_t)cfish_obj_method(self, TESTCFISH_TestMemory_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Run':
autogen/include/Clownfish/Test/Util/TestMemory.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestMemory *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestMemory_Run_t method = (TESTCFISH_TestMemory_Run_t)cfish_obj_method(self, TESTCFISH_TestMemory_Run_OFFSET);
      |                                               ^
In file included from autogen/source/testcfish_parcel.c:55:
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_To_Host':
autogen/include/Clownfish/Test/Util/TestAtomic.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestAtomic *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestAtomic_To_Host_t method = (TESTCFISH_TestAtomic_To_Host_t)cfish_obj_method(self, TESTCFISH_TestAtomic_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Clone':
autogen/include/Clownfish/Test/Util/TestAtomic.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestAtomic *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestAtomic_Clone_t method = (TESTCFISH_TestAtomic_Clone_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Equals':
autogen/include/Clownfish/Test/Util/TestAtomic.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestAtomic *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestAtomic_Equals_t method = (TESTCFISH_TestAtomic_Equals_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Compare_To':
autogen/include/Clownfish/Test/Util/TestAtomic.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestAtomic *, cfish_Obj *)' {aka 'int (*)(testcfish_TestAtomic *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestAtomic_Compare_To_t method = (TESTCFISH_TestAtomic_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_To_String':
autogen/include/Clownfish/Test/Util/TestAtomic.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestAtomic *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestAtomic_To_String_t method = (TESTCFISH_TestAtomic_To_String_t)cfish_obj_method(self, TESTCFISH_TestAtomic_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Run':
autogen/include/Clownfish/Test/Util/TestAtomic.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestAtomic *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestAtomic_Run_t method = (TESTCFISH_TestAtomic_Run_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Run_OFFSET);
      |                                               ^
In file included from autogen/source/testcfish_parcel.c:56:
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_To_Host':
autogen/include/Clownfish/Test/TestString.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestString *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestStr_To_Host_t method = (TESTCFISH_TestStr_To_Host_t)cfish_obj_method(self, TESTCFISH_TestStr_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Clone':
autogen/include/Clownfish/Test/TestString.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestString *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestStr_Clone_t method = (TESTCFISH_TestStr_Clone_t)cfish_obj_method(self, TESTCFISH_TestStr_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Equals':
autogen/include/Clownfish/Test/TestString.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestString *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestStr_Equals_t method = (TESTCFISH_TestStr_Equals_t)cfish_obj_method(self, TESTCFISH_TestStr_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Compare_To':
autogen/include/Clownfish/Test/TestString.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestString *, cfish_Obj *)' {aka 'int (*)(testcfish_TestString *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestStr_Compare_To_t method = (TESTCFISH_TestStr_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestStr_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_To_String':
autogen/include/Clownfish/Test/TestString.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestString *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestStr_To_String_t method = (TESTCFISH_TestStr_To_String_t)cfish_obj_method(self, TESTCFISH_TestStr_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Run':
autogen/include/Clownfish/Test/TestString.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestString *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestStr_Run_t method = (TESTCFISH_TestStr_Run_t)cfish_obj_method(self, TESTCFISH_TestStr_Run_OFFSET);
      |                                            ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_To_Host':
autogen/include/Clownfish/Test/TestString.h:311:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_StringCallbackTest *, void *)' [-Wcast-function-type]
  311 |     const TESTCFISH_StrCbTest_To_Host_t method = (TESTCFISH_StrCbTest_To_Host_t)cfish_obj_method(self, TESTCFISH_StrCbTest_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Clone':
autogen/include/Clownfish/Test/TestString.h:318:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_StringCallbackTest *)' [-Wcast-function-type]
  318 |     const TESTCFISH_StrCbTest_Clone_t method = (TESTCFISH_StrCbTest_Clone_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Equals':
autogen/include/Clownfish/Test/TestString.h:325:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_StringCallbackTest *, cfish_Obj *)' [-Wcast-function-type]
  325 |     const TESTCFISH_StrCbTest_Equals_t method = (TESTCFISH_StrCbTest_Equals_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Compare_To':
autogen/include/Clownfish/Test/TestString.h:332:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_StringCallbackTest *, cfish_Obj *)' {aka 'int (*)(testcfish_StringCallbackTest *, cfish_Obj *)'} [-Wcast-function-type]
  332 |     const TESTCFISH_StrCbTest_Compare_To_t method = (TESTCFISH_StrCbTest_Compare_To_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_To_String':
autogen/include/Clownfish/Test/TestString.h:346:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_StringCallbackTest *)' [-Wcast-function-type]
  346 |     const TESTCFISH_StrCbTest_To_String_t method = (TESTCFISH_StrCbTest_To_String_t)cfish_obj_method(self, TESTCFISH_StrCbTest_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Unchanged_By_Callback':
autogen/include/Clownfish/Test/TestString.h:353:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_StringCallbackTest *, cfish_String *)' [-Wcast-function-type]
  353 |     const TESTCFISH_StrCbTest_Unchanged_By_Callback_t method = (TESTCFISH_StrCbTest_Unchanged_By_Callback_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Unchanged_By_Callback_OFFSET);
      |                                                                ^
In file included from autogen/source/testcfish_parcel.c:57:
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_To_Host':
autogen/include/Clownfish/Test/TestHash.h:130:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHash *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestHash_To_Host_t method = (TESTCFISH_TestHash_To_Host_t)cfish_obj_method(self, TESTCFISH_TestHash_To_Host_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Clone':
autogen/include/Clownfish/Test/TestHash.h:137:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHash *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestHash_Clone_t method = (TESTCFISH_TestHash_Clone_t)cfish_obj_method(self, TESTCFISH_TestHash_Clone_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Equals':
autogen/include/Clownfish/Test/TestHash.h:144:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHash *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestHash_Equals_t method = (TESTCFISH_TestHash_Equals_t)cfish_obj_method(self, TESTCFISH_TestHash_Equals_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Compare_To':
autogen/include/Clownfish/Test/TestHash.h:151:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHash *, cfish_Obj *)' {aka 'int (*)(testcfish_TestHash *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestHash_Compare_To_t method = (TESTCFISH_TestHash_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestHash_Compare_To_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_To_String':
autogen/include/Clownfish/Test/TestHash.h:165:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHash *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestHash_To_String_t method = (TESTCFISH_TestHash_To_String_t)cfish_obj_method(self, TESTCFISH_TestHash_To_String_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Run':
autogen/include/Clownfish/Test/TestHash.h:172:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestHash *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestHash_Run_t method = (TESTCFISH_TestHash_Run_t)cfish_obj_method(self, TESTCFISH_TestHash_Run_OFFSET);
      |                                             ^
In file included from autogen/source/testcfish_parcel.c:58:
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_To_Host':
autogen/include/Clownfish/Test/TestErr.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestErr *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestErr_To_Host_t method = (TESTCFISH_TestErr_To_Host_t)cfish_obj_method(self, TESTCFISH_TestErr_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Clone':
autogen/include/Clownfish/Test/TestErr.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestErr *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestErr_Clone_t method = (TESTCFISH_TestErr_Clone_t)cfish_obj_method(self, TESTCFISH_TestErr_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Equals':
autogen/include/Clownfish/Test/TestErr.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestErr *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestErr_Equals_t method = (TESTCFISH_TestErr_Equals_t)cfish_obj_method(self, TESTCFISH_TestErr_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Compare_To':
autogen/include/Clownfish/Test/TestErr.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestErr *, cfish_Obj *)' {aka 'int (*)(testcfish_TestErr *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestErr_Compare_To_t method = (TESTCFISH_TestErr_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestErr_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_To_String':
autogen/include/Clownfish/Test/TestErr.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestErr *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestErr_To_String_t method = (TESTCFISH_TestErr_To_String_t)cfish_obj_method(self, TESTCFISH_TestErr_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Run':
autogen/include/Clownfish/Test/TestErr.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestErr *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestErr_Run_t method = (TESTCFISH_TestErr_Run_t)cfish_obj_method(self, TESTCFISH_TestErr_Run_OFFSET);
      |                                            ^
In file included from autogen/source/testcfish_parcel.c:59:
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_To_Host':
autogen/include/Clownfish/Test/TestMethod.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestMethod *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestMethod_To_Host_t method = (TESTCFISH_TestMethod_To_Host_t)cfish_obj_method(self, TESTCFISH_TestMethod_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Clone':
autogen/include/Clownfish/Test/TestMethod.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestMethod *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestMethod_Clone_t method = (TESTCFISH_TestMethod_Clone_t)cfish_obj_method(self, TESTCFISH_TestMethod_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Equals':
autogen/include/Clownfish/Test/TestMethod.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestMethod *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestMethod_Equals_t method = (TESTCFISH_TestMethod_Equals_t)cfish_obj_method(self, TESTCFISH_TestMethod_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Compare_To':
autogen/include/Clownfish/Test/TestMethod.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestMethod *, cfish_Obj *)' {aka 'int (*)(testcfish_TestMethod *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestMethod_Compare_To_t method = (TESTCFISH_TestMethod_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestMethod_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_To_String':
autogen/include/Clownfish/Test/TestMethod.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestMethod *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestMethod_To_String_t method = (TESTCFISH_TestMethod_To_String_t)cfish_obj_method(self, TESTCFISH_TestMethod_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Run':
autogen/include/Clownfish/Test/TestMethod.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestMethod *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestMethod_Run_t method = (TESTCFISH_TestMethod_Run_t)cfish_obj_method(self, TESTCFISH_TestMethod_Run_OFFSET);
      |                                               ^
In file included from autogen/source/testcfish_parcel.c:60:
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_To_Host':
autogen/include/Clownfish/Test/TestObj.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestObj *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestObj_To_Host_t method = (TESTCFISH_TestObj_To_Host_t)cfish_obj_method(self, TESTCFISH_TestObj_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Clone':
autogen/include/Clownfish/Test/TestObj.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestObj *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestObj_Clone_t method = (TESTCFISH_TestObj_Clone_t)cfish_obj_method(self, TESTCFISH_TestObj_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Equals':
autogen/include/Clownfish/Test/TestObj.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestObj *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestObj_Equals_t method = (TESTCFISH_TestObj_Equals_t)cfish_obj_method(self, TESTCFISH_TestObj_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Compare_To':
autogen/include/Clownfish/Test/TestObj.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestObj *, cfish_Obj *)' {aka 'int (*)(testcfish_TestObj *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestObj_Compare_To_t method = (TESTCFISH_TestObj_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestObj_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_To_String':
autogen/include/Clownfish/Test/TestObj.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestObj *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestObj_To_String_t method = (TESTCFISH_TestObj_To_String_t)cfish_obj_method(self, TESTCFISH_TestObj_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Run':
autogen/include/Clownfish/Test/TestObj.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestObj *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestObj_Run_t method = (TESTCFISH_TestObj_Run_t)cfish_obj_method(self, TESTCFISH_TestObj_Run_OFFSET);
      |                                            ^
In file included from autogen/source/testcfish_parcel.c:61:
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_To_Host':
autogen/include/Clownfish/Test/TestHashIterator.h:130:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHashIterator *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestHashIterator_To_Host_t method = (TESTCFISH_TestHashIterator_To_Host_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_To_Host_OFFSET);
      |                                                         ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Clone':
autogen/include/Clownfish/Test/TestHashIterator.h:137:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHashIterator *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestHashIterator_Clone_t method = (TESTCFISH_TestHashIterator_Clone_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Clone_OFFSET);
      |                                                       ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Equals':
autogen/include/Clownfish/Test/TestHashIterator.h:144:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHashIterator *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestHashIterator_Equals_t method = (TESTCFISH_TestHashIterator_Equals_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Equals_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Compare_To':
autogen/include/Clownfish/Test/TestHashIterator.h:151:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHashIterator *, cfish_Obj *)' {aka 'int (*)(testcfish_TestHashIterator *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestHashIterator_Compare_To_t method = (TESTCFISH_TestHashIterator_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Compare_To_OFFSET);
      |                                                            ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_To_String':
autogen/include/Clownfish/Test/TestHashIterator.h:165:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHashIterator *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestHashIterator_To_String_t method = (TESTCFISH_TestHashIterator_To_String_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_To_String_OFFSET);
      |                                                           ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Run':
autogen/include/Clownfish/Test/TestHashIterator.h:172:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestHashIterator *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestHashIterator_Run_t method = (TESTCFISH_TestHashIterator_Run_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Run_OFFSET);
      |                                                     ^
In file included from autogen/source/testcfish_parcel.c:62:
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_To_Host':
autogen/include/Clownfish/Test/TestBlob.h:130:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestBlob *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestBlob_To_Host_t method = (TESTCFISH_TestBlob_To_Host_t)cfish_obj_method(self, TESTCFISH_TestBlob_To_Host_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Clone':
autogen/include/Clownfish/Test/TestBlob.h:137:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestBlob *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestBlob_Clone_t method = (TESTCFISH_TestBlob_Clone_t)cfish_obj_method(self, TESTCFISH_TestBlob_Clone_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Equals':
autogen/include/Clownfish/Test/TestBlob.h:144:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestBlob *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestBlob_Equals_t method = (TESTCFISH_TestBlob_Equals_t)cfish_obj_method(self, TESTCFISH_TestBlob_Equals_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Compare_To':
autogen/include/Clownfish/Test/TestBlob.h:151:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestBlob *, cfish_Obj *)' {aka 'int (*)(testcfish_TestBlob *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestBlob_Compare_To_t method = (TESTCFISH_TestBlob_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestBlob_Compare_To_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_To_String':
autogen/include/Clownfish/Test/TestBlob.h:165:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestBlob *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestBlob_To_String_t method = (TESTCFISH_TestBlob_To_String_t)cfish_obj_method(self, TESTCFISH_TestBlob_To_String_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Run':
autogen/include/Clownfish/Test/TestBlob.h:172:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestBlob *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestBlob_Run_t method = (TESTCFISH_TestBlob_Run_t)cfish_obj_method(self, TESTCFISH_TestBlob_Run_OFFSET);
      |                                             ^
In file included from autogen/source/testcfish_parcel.c:63:
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_To_Host':
autogen/include/Clownfish/Test/TestNum.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestNum *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestNum_To_Host_t method = (TESTCFISH_TestNum_To_Host_t)cfish_obj_method(self, TESTCFISH_TestNum_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Clone':
autogen/include/Clownfish/Test/TestNum.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestNum *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestNum_Clone_t method = (TESTCFISH_TestNum_Clone_t)cfish_obj_method(self, TESTCFISH_TestNum_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Equals':
autogen/include/Clownfish/Test/TestNum.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestNum *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestNum_Equals_t method = (TESTCFISH_TestNum_Equals_t)cfish_obj_method(self, TESTCFISH_TestNum_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Compare_To':
autogen/include/Clownfish/Test/TestNum.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestNum *, cfish_Obj *)' {aka 'int (*)(testcfish_TestNum *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestNum_Compare_To_t method = (TESTCFISH_TestNum_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestNum_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_To_String':
autogen/include/Clownfish/Test/TestNum.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestNum *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestNum_To_String_t method = (TESTCFISH_TestNum_To_String_t)cfish_obj_method(self, TESTCFISH_TestNum_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Run':
autogen/include/Clownfish/Test/TestNum.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestNum *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestNum_Run_t method = (TESTCFISH_TestNum_Run_t)cfish_obj_method(self, TESTCFISH_TestNum_Run_OFFSET);
      |                                            ^
In file included from autogen/source/testcfish_parcel.c:64:
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_To_Host':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:130:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestLockFreeRegistry *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestLFReg_To_Host_t method = (TESTCFISH_TestLFReg_To_Host_t)cfish_obj_method(self, TESTCFISH_TestLFReg_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Clone':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:137:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestLockFreeRegistry *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestLFReg_Clone_t method = (TESTCFISH_TestLFReg_Clone_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Equals':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:144:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestLockFreeRegistry *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestLFReg_Equals_t method = (TESTCFISH_TestLFReg_Equals_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Compare_To':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:151:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestLockFreeRegistry *, cfish_Obj *)' {aka 'int (*)(testcfish_TestLockFreeRegistry *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestLFReg_Compare_To_t method = (TESTCFISH_TestLFReg_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_To_String':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:165:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestLockFreeRegistry *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestLFReg_To_String_t method = (TESTCFISH_TestLFReg_To_String_t)cfish_obj_method(self, TESTCFISH_TestLFReg_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Run':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:172:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestLockFreeRegistry *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestLFReg_Run_t method = (TESTCFISH_TestLFReg_Run_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Run_OFFSET);
      |                                              ^
In file included from autogen/source/testcfish_parcel.c:65:
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_To_Host':
autogen/include/Clownfish/Test/TestClass.h:130:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestClass *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestClass_To_Host_t method = (TESTCFISH_TestClass_To_Host_t)cfish_obj_method(self, TESTCFISH_TestClass_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Clone':
autogen/include/Clownfish/Test/TestClass.h:137:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestClass *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestClass_Clone_t method = (TESTCFISH_TestClass_Clone_t)cfish_obj_method(self, TESTCFISH_TestClass_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Equals':
autogen/include/Clownfish/Test/TestClass.h:144:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestClass *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestClass_Equals_t method = (TESTCFISH_TestClass_Equals_t)cfish_obj_method(self, TESTCFISH_TestClass_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Compare_To':
autogen/include/Clownfish/Test/TestClass.h:151:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestClass *, cfish_Obj *)' {aka 'int (*)(testcfish_TestClass *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestClass_Compare_To_t method = (TESTCFISH_TestClass_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestClass_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_To_String':
autogen/include/Clownfish/Test/TestClass.h:165:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestClass *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestClass_To_String_t method = (TESTCFISH_TestClass_To_String_t)cfish_obj_method(self, TESTCFISH_TestClass_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Run':
autogen/include/Clownfish/Test/TestClass.h:172:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestClass *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestClass_Run_t method = (TESTCFISH_TestClass_Run_t)cfish_obj_method(self, TESTCFISH_TestClass_Run_OFFSET);
      |                                              ^
In file included from autogen/source/testcfish_parcel.c:66:
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_To_Host':
autogen/include/Clownfish/Test/TestVector.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestVector *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestVector_To_Host_t method = (TESTCFISH_TestVector_To_Host_t)cfish_obj_method(self, TESTCFISH_TestVector_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Clone':
autogen/include/Clownfish/Test/TestVector.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestVector *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestVector_Clone_t method = (TESTCFISH_TestVector_Clone_t)cfish_obj_method(self, TESTCFISH_TestVector_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Equals':
autogen/include/Clownfish/Test/TestVector.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestVector *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestVector_Equals_t method = (TESTCFISH_TestVector_Equals_t)cfish_obj_method(self, TESTCFISH_TestVector_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Compare_To':
autogen/include/Clownfish/Test/TestVector.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestVector *, cfish_Obj *)' {aka 'int (*)(testcfish_TestVector *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestVector_Compare_To_t method = (TESTCFISH_TestVector_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestVector_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_To_String':
autogen/include/Clownfish/Test/TestVector.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestVector *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestVector_To_String_t method = (TESTCFISH_TestVector_To_String_t)cfish_obj_method(self, TESTCFISH_TestVector_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Run':
autogen/include/Clownfish/Test/TestVector.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestVector *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestVector_Run_t method = (TESTCFISH_TestVector_Run_t)cfish_obj_method(self, TESTCFISH_TestVector_Run_OFFSET);
      |                                               ^
In file included from autogen/source/testcfish_parcel.c:67:
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_To_Host':
autogen/include/Clownfish/Test/TestPtrHash.h:130:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestPtrHash *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestPtrHash_To_Host_t method = (TESTCFISH_TestPtrHash_To_Host_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Clone':
autogen/include/Clownfish/Test/TestPtrHash.h:137:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestPtrHash *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestPtrHash_Clone_t method = (TESTCFISH_TestPtrHash_Clone_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Equals':
autogen/include/Clownfish/Test/TestPtrHash.h:144:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestPtrHash *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestPtrHash_Equals_t method = (TESTCFISH_TestPtrHash_Equals_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Compare_To':
autogen/include/Clownfish/Test/TestPtrHash.h:151:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestPtrHash *, cfish_Obj *)' {aka 'int (*)(testcfish_TestPtrHash *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestPtrHash_Compare_To_t method = (TESTCFISH_TestPtrHash_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_To_String':
autogen/include/Clownfish/Test/TestPtrHash.h:165:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestPtrHash *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestPtrHash_To_String_t method = (TESTCFISH_TestPtrHash_To_String_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Run':
autogen/include/Clownfish/Test/TestPtrHash.h:172:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestPtrHash *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestPtrHash_Run_t method = (TESTCFISH_TestPtrHash_Run_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Run_OFFSET);
      |                                                ^
In file included from autogen/source/testcfish_parcel.c:68:
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_To_Host':
autogen/include/Clownfish/Test/TestByteBuf.h:130:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestByteBuf *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestBB_To_Host_t method = (TESTCFISH_TestBB_To_Host_t)cfish_obj_method(self, TESTCFISH_TestBB_To_Host_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Clone':
autogen/include/Clownfish/Test/TestByteBuf.h:137:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestByteBuf *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestBB_Clone_t method = (TESTCFISH_TestBB_Clone_t)cfish_obj_method(self, TESTCFISH_TestBB_Clone_OFFSET);
      |                                             ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Equals':
autogen/include/Clownfish/Test/TestByteBuf.h:144:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestByteBuf *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestBB_Equals_t method = (TESTCFISH_TestBB_Equals_t)cfish_obj_method(self, TESTCFISH_TestBB_Equals_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Compare_To':
autogen/include/Clownfish/Test/TestByteBuf.h:151:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestByteBuf *, cfish_Obj *)' {aka 'int (*)(testcfish_TestByteBuf *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestBB_Compare_To_t method = (TESTCFISH_TestBB_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestBB_Compare_To_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_To_String':
autogen/include/Clownfish/Test/TestByteBuf.h:165:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestByteBuf *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestBB_To_String_t method = (TESTCFISH_TestBB_To_String_t)cfish_obj_method(self, TESTCFISH_TestBB_To_String_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Run':
autogen/include/Clownfish/Test/TestByteBuf.h:172:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestByteBuf *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestBB_Run_t method = (TESTCFISH_TestBB_Run_t)cfish_obj_method(self, TESTCFISH_TestBB_Run_OFFSET);
      |                                           ^
In file included from autogen/source/testcfish_parcel.c:69:
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_To_Host':
autogen/include/Clownfish/Test/TestBoolean.h:130:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestBoolean *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestBoolean_To_Host_t method = (TESTCFISH_TestBoolean_To_Host_t)cfish_obj_method(self, TESTCFISH_TestBoolean_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Clone':
autogen/include/Clownfish/Test/TestBoolean.h:137:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestBoolean *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestBoolean_Clone_t method = (TESTCFISH_TestBoolean_Clone_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Equals':
autogen/include/Clownfish/Test/TestBoolean.h:144:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestBoolean *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestBoolean_Equals_t method = (TESTCFISH_TestBoolean_Equals_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Compare_To':
autogen/include/Clownfish/Test/TestBoolean.h:151:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestBoolean *, cfish_Obj *)' {aka 'int (*)(testcfish_TestBoolean *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestBoolean_Compare_To_t method = (TESTCFISH_TestBoolean_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_To_String':
autogen/include/Clownfish/Test/TestBoolean.h:165:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestBoolean *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestBoolean_To_String_t method = (TESTCFISH_TestBoolean_To_String_t)cfish_obj_method(self, TESTCFISH_TestBoolean_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Run':
autogen/include/Clownfish/Test/TestBoolean.h:172:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestBoolean *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestBoolean_Run_t method = (TESTCFISH_TestBoolean_Run_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Run_OFFSET);
      |                                                ^
In file included from autogen/source/testcfish_parcel.c:70:
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_To_Host':
autogen/include/Clownfish/Test/TestHost.h:220:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHost *, void *)' [-Wcast-function-type]
  220 |     const TESTCFISH_TestHost_To_Host_t method = (TESTCFISH_TestHost_To_Host_t)cfish_obj_method(self, TESTCFISH_TestHost_To_Host_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Clone':
autogen/include/Clownfish/Test/TestHost.h:227:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  227 |     const TESTCFISH_TestHost_Clone_t method = (TESTCFISH_TestHost_Clone_t)cfish_obj_method(self, TESTCFISH_TestHost_Clone_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Equals':
autogen/include/Clownfish/Test/TestHost.h:234:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, cfish_Obj *)' [-Wcast-function-type]
  234 |     const TESTCFISH_TestHost_Equals_t method = (TESTCFISH_TestHost_Equals_t)cfish_obj_method(self, TESTCFISH_TestHost_Equals_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Compare_To':
autogen/include/Clownfish/Test/TestHost.h:241:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, cfish_Obj *)' {aka 'int (*)(testcfish_TestHost *, cfish_Obj *)'} [-Wcast-function-type]
  241 |     const TESTCFISH_TestHost_Compare_To_t method = (TESTCFISH_TestHost_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestHost_Compare_To_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_To_String':
autogen/include/Clownfish/Test/TestHost.h:255:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  255 |     const TESTCFISH_TestHost_To_String_t method = (TESTCFISH_TestHost_To_String_t)cfish_obj_method(self, TESTCFISH_TestHost_To_String_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Obj_Pos_Arg':
autogen/include/Clownfish/Test/TestHost.h:262:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *)' [-Wcast-function-type]
  262 |     const TESTCFISH_TestHost_Test_Obj_Pos_Arg_t method = (TESTCFISH_TestHost_Test_Obj_Pos_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Obj_Pos_Arg_OFFSET);
      |                                                          ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:269:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *)' [-Wcast-function-type]
  269 |     const TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def_t method = (TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def_OFFSET);
      |                                                              ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Obj_Label_Arg':
autogen/include/Clownfish/Test/TestHost.h:276:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *, _Bool)' [-Wcast-function-type]
  276 |     const TESTCFISH_TestHost_Test_Obj_Label_Arg_t method = (TESTCFISH_TestHost_Test_Obj_Label_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Obj_Label_Arg_OFFSET);
      |                                                            ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Obj_Label_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:283:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *, _Bool)' [-Wcast-function-type]
  283 |     const TESTCFISH_TestHost_Test_Obj_Label_Arg_Def_t method = (TESTCFISH_TestHost_Test_Obj_Label_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Obj_Label_Arg_Def_OFFSET);
      |                                                                ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Int32_Pos_Arg':
autogen/include/Clownfish/Test/TestHost.h:290:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, int32_t)' {aka 'int (*)(testcfish_TestHost *, int)'} [-Wcast-function-type]
  290 |     const TESTCFISH_TestHost_Test_Int32_Pos_Arg_t method = (TESTCFISH_TestHost_Test_Int32_Pos_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Int32_Pos_Arg_OFFSET);
      |                                                            ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:297:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, int32_t)' {aka 'int (*)(testcfish_TestHost *, int)'} [-Wcast-function-type]
  297 |     const TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def_t method = (TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def_OFFSET);
      |                                                                ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Int32_Label_Arg':
autogen/include/Clownfish/Test/TestHost.h:304:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, int32_t,  _Bool)' {aka 'int (*)(testcfish_TestHost *, int,  _Bool)'} [-Wcast-function-type]
  304 |     const TESTCFISH_TestHost_Test_Int32_Label_Arg_t method = (TESTCFISH_TestHost_Test_Int32_Label_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Int32_Label_Arg_OFFSET);
      |                                                              ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Int32_Label_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:311:66: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, int32_t,  _Bool)' {aka 'int (*)(testcfish_TestHost *, int,  _Bool)'} [-Wcast-function-type]
  311 |     const TESTCFISH_TestHost_Test_Int32_Label_Arg_Def_t method = (TESTCFISH_TestHost_Test_Int32_Label_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Int32_Label_Arg_Def_OFFSET);
      |                                                                  ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Bool_Pos_Arg':
autogen/include/Clownfish/Test/TestHost.h:318:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, _Bool)' [-Wcast-function-type]
  318 |     const TESTCFISH_TestHost_Test_Bool_Pos_Arg_t method = (TESTCFISH_TestHost_Test_Bool_Pos_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Bool_Pos_Arg_OFFSET);
      |                                                           ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:325:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, _Bool)' [-Wcast-function-type]
  325 |     const TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def_t method = (TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def_OFFSET);
      |                                                               ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Bool_Label_Arg':
autogen/include/Clownfish/Test/TestHost.h:332:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, _Bool,  _Bool)' [-Wcast-function-type]
  332 |     const TESTCFISH_TestHost_Test_Bool_Label_Arg_t method = (TESTCFISH_TestHost_Test_Bool_Label_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Bool_Label_Arg_OFFSET);
      |                                                             ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Bool_Label_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:339:65: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, _Bool,  _Bool)' [-Wcast-function-type]
  339 |     const TESTCFISH_TestHost_Test_Bool_Label_Arg_Def_t method = (TESTCFISH_TestHost_Test_Bool_Label_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Bool_Label_Arg_Def_OFFSET);
      |                                                                 ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Invalid_Callback':
autogen/include/Clownfish/Test/TestHost.h:346:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  346 |     const TESTCFISH_TestHost_Invalid_Callback_t method = (TESTCFISH_TestHost_Invalid_Callback_t)cfish_obj_method(self, TESTCFISH_TestHost_Invalid_Callback_OFFSET);
      |                                                          ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Aliased':
autogen/include/Clownfish/Test/TestHost.h:360:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  360 |     const TESTCFISH_TestHost_Aliased_t method = (TESTCFISH_TestHost_Aliased_t)cfish_obj_method(self, TESTCFISH_TestHost_Aliased_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Invoke_Aliased_From_C':
autogen/include/Clownfish/Test/TestHost.h:367:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  367 |     const TESTCFISH_TestHost_Invoke_Aliased_From_C_t method = (TESTCFISH_TestHost_Invoke_Aliased_From_C_t)cfish_obj_method(self, TESTCFISH_TestHost_Invoke_Aliased_From_C_OFFSET);
      |                                                               ^
autogen/source/testcfish_parcel.c: At top level:
autogen/source/testcfish_parcel.c:682:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
  682 |         (cfish_method_t)TESTCFISH_TestHost_Test_Obj_Pos_Arg_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:683:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
  683 |         (cfish_method_t)TestCfish_TestHost_Test_Obj_Pos_Arg_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:688:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
  688 |         (cfish_method_t)TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:689:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *)' to 'void (*)(const void *)' [-Wcast-function-type]
  689 |         (cfish_method_t)TestCfish_TestHost_Test_Obj_Pos_Arg_Def_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:694:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *, _Bool)' to 'void (*)(const void *)' [-Wcast-function-type]
  694 |         (cfish_method_t)TESTCFISH_TestHost_Test_Obj_Label_Arg_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:695:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *, _Bool)' to 'void (*)(const void *)' [-Wcast-function-type]
  695 |         (cfish_method_t)TestCfish_TestHost_Test_Obj_Label_Arg_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:700:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *, _Bool)' to 'void (*)(const void *)' [-Wcast-function-type]
  700 |         (cfish_method_t)TESTCFISH_TestHost_Test_Obj_Label_Arg_Def_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:701:9: warning: cast between incompatible function types from 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *, _Bool)' to 'void (*)(const void *)' [-Wcast-function-type]
  701 |         (cfish_method_t)TestCfish_TestHost_Test_Obj_Label_Arg_Def_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:706:9: warning: cast between incompatible function types from 'int32_t (*)(testcfish_TestHost *, int32_t)' {aka 'int (*)(testcfish_TestHost *, int)'} to 'void (*)(const void *)' [-Wcast-function-type]
  706 |         (cfish_method_t)TESTCFISH_TestHost_Test_Int32_Pos_Arg_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:707:9: warning: cast between incompatible function types from 'int32_t (*)(testcfish_TestHost *, int32_t)' {aka 'int (*)(testcfish_TestHost *, int)'} to 'void (*)(const void *)' [-Wcast-function-type]
  707 |         (cfish_method_t)TestCfish_TestHost_Test_Int32_Pos_Arg_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:712:9: warning: cast between incompatible function types from 'int32_t (*)(testcfish_TestHost *, int32_t)' {aka 'int (*)(testcfish_TestHost *, int)'} to 'void (*)(const void *)' [-Wcast-function-type]
  712 |         (cfish_method_t)TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:713:9: warning: cast between incompatible function types from 'int32_t (*)(testcfish_TestHost *, int32_t)' {aka 'int (*)(testcfish_TestHost *, int)'} to 'void (*)(const void *)' [-Wcast-function-type]
  713 |         (cfish_method_t)TestCfish_TestHost_Test_Int32_Pos_Arg_Def_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:718:9: warning: cast between incompatible function types from 'int32_t (*)(testcfish_TestHost *, int32_t,  _Bool)' {aka 'int (*)(testcfish_TestHost *, int,  _Bool)'} to 'void (*)(const void *)' [-Wcast-function-type]
  718 |         (cfish_method_t)TESTCFISH_TestHost_Test_Int32_Label_Arg_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:719:9: warning: cast between incompatible function types from 'int32_t (*)(testcfish_TestHost *, int32_t,  _Bool)' {aka 'int (*)(testcfish_TestHost *, int,  _Bool)'} to 'void (*)(const void *)' [-Wcast-function-type]
  719 |         (cfish_method_t)TestCfish_TestHost_Test_Int32_Label_Arg_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:724:9: warning: cast between incompatible function types from 'int32_t (*)(testcfish_TestHost *, int32_t,  _Bool)' {aka 'int (*)(testcfish_TestHost *, int,  _Bool)'} to 'void (*)(const void *)' [-Wcast-function-type]
  724 |         (cfish_method_t)TESTCFISH_TestHost_Test_Int32_Label_Arg_Def_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:725:9: warning: cast between incompatible function types from 'int32_t (*)(testcfish_TestHost *, int32_t,  _Bool)' {aka 'int (*)(testcfish_TestHost *, int,  _Bool)'} to 'void (*)(const void *)' [-Wcast-function-type]
  725 |         (cfish_method_t)TestCfish_TestHost_Test_Int32_Label_Arg_Def_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:730:9: warning: cast between incompatible function types from '_Bool (*)(testcfish_TestHost *, _Bool)' to 'void (*)(const void *)' [-Wcast-function-type]
  730 |         (cfish_method_t)TESTCFISH_TestHost_Test_Bool_Pos_Arg_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:731:9: warning: cast between incompatible function types from '_Bool (*)(testcfish_TestHost *, _Bool)' to 'void (*)(const void *)' [-Wcast-function-type]
  731 |         (cfish_method_t)TestCfish_TestHost_Test_Bool_Pos_Arg_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:736:9: warning: cast between incompatible function types from '_Bool (*)(testcfish_TestHost *, _Bool)' to 'void (*)(const void *)' [-Wcast-function-type]
  736 |         (cfish_method_t)TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:737:9: warning: cast between incompatible function types from '_Bool (*)(testcfish_TestHost *, _Bool)' to 'void (*)(const void *)' [-Wcast-function-type]
  737 |         (cfish_method_t)TestCfish_TestHost_Test_Bool_Pos_Arg_Def_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:742:9: warning: cast between incompatible function types from '_Bool (*)(testcfish_TestHost *, _Bool,  _Bool)' to 'void (*)(const void *)' [-Wcast-function-type]
  742 |         (cfish_method_t)TESTCFISH_TestHost_Test_Bool_Label_Arg_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:743:9: warning: cast between incompatible function types from '_Bool (*)(testcfish_TestHost *, _Bool,  _Bool)' to 'void (*)(const void *)' [-Wcast-function-type]
  743 |         (cfish_method_t)TestCfish_TestHost_Test_Bool_Label_Arg_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:748:9: warning: cast between incompatible function types from '_Bool (*)(testcfish_TestHost *, _Bool,  _Bool)' to 'void (*)(const void *)' [-Wcast-function-type]
  748 |         (cfish_method_t)TESTCFISH_TestHost_Test_Bool_Label_Arg_Def_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:749:9: warning: cast between incompatible function types from '_Bool (*)(testcfish_TestHost *, _Bool,  _Bool)' to 'void (*)(const void *)' [-Wcast-function-type]
  749 |         (cfish_method_t)TestCfish_TestHost_Test_Bool_Label_Arg_Def_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:754:9: warning: cast between incompatible function types from 'void * (*)(testcfish_TestHost *)' to 'void (*)(const void *)' [-Wcast-function-type]
  754 |         (cfish_method_t)TESTCFISH_TestHost_Invalid_Callback_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:755:9: warning: cast between incompatible function types from 'void * (*)(testcfish_TestHost *)' to 'void (*)(const void *)' [-Wcast-function-type]
  755 |         (cfish_method_t)TestCfish_TestHost_Invalid_Callback_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:766:9: warning: cast between incompatible function types from 'cfish_String * (*)(testcfish_TestHost *)' to 'void (*)(const void *)' [-Wcast-function-type]
  766 |         (cfish_method_t)TESTCFISH_TestHost_Aliased_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:767:9: warning: cast between incompatible function types from 'cfish_String * (*)(testcfish_TestHost *)' to 'void (*)(const void *)' [-Wcast-function-type]
  767 |         (cfish_method_t)TestCfish_TestHost_Aliased_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:772:9: warning: cast between incompatible function types from 'cfish_String * (*)(testcfish_TestHost *)' to 'void (*)(const void *)' [-Wcast-function-type]
  772 |         (cfish_method_t)TESTCFISH_TestHost_Invoke_Aliased_From_C_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:773:9: warning: cast between incompatible function types from 'cfish_String * (*)(testcfish_TestHost *)' to 'void (*)(const void *)' [-Wcast-function-type]
  773 |         (cfish_method_t)TestCfish_TestHost_Invoke_Aliased_From_C_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:778:9: warning: cast between incompatible function types from '_Bool (*)(testcfish_StringCallbackTest *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
  778 |         (cfish_method_t)TESTCFISH_StrCbTest_Unchanged_By_Callback_IMP, /* func */
      |         ^
autogen/source/testcfish_parcel.c:779:9: warning: cast between incompatible function types from '_Bool (*)(testcfish_StringCallbackTest *, cfish_String *)' to 'void (*)(const void *)' [-Wcast-function-type]
  779 |         (cfish_method_t)TestCfish_StrCbTest_Unchanged_By_Callback_OVERRIDE /* callback_func */
      |         ^
autogen/source/testcfish_parcel.c:793:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestCharBuf *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  793 |         (cfish_method_t)TESTCFISH_TestCB_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:798:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestMemory *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  798 |         (cfish_method_t)TESTCFISH_TestMemory_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:803:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestAtomic *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  803 |         (cfish_method_t)TESTCFISH_TestAtomic_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:808:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestString *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  808 |         (cfish_method_t)TESTCFISH_TestStr_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:813:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestHash *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  813 |         (cfish_method_t)TESTCFISH_TestHash_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:818:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestErr *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  818 |         (cfish_method_t)TESTCFISH_TestErr_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:823:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestMethod *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  823 |         (cfish_method_t)TESTCFISH_TestMethod_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:828:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestObj *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  828 |         (cfish_method_t)TESTCFISH_TestObj_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:833:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestHashIterator *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  833 |         (cfish_method_t)TESTCFISH_TestHashIterator_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:838:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestBlob *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  838 |         (cfish_method_t)TESTCFISH_TestBlob_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:843:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestNum *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  843 |         (cfish_method_t)TESTCFISH_TestNum_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:848:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestLockFreeRegistry *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  848 |         (cfish_method_t)TESTCFISH_TestLFReg_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:853:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestClass *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  853 |         (cfish_method_t)TESTCFISH_TestClass_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:858:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestVector *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  858 |         (cfish_method_t)TESTCFISH_TestVector_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:863:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestPtrHash *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  863 |         (cfish_method_t)TESTCFISH_TestPtrHash_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:868:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestByteBuf *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  868 |         (cfish_method_t)TESTCFISH_TestBB_Run_IMP /* func */
      |         ^
autogen/source/testcfish_parcel.c:873:9: warning: cast between incompatible function types from 'void (*)(testcfish_TestBoolean *, cfish_TestBatchRunner *)' to 'void (*)(const void *)' [-Wcast-function-type]
  873 |         (cfish_method_t)TESTCFISH_TestBoolean_Run_IMP /* func */
      |         ^
gcc -Icfcore -Ixs -I. -Iautogen/include -I/usr/lib64/perl5/CORE -fPIC -pedantic -Wall -Wextra -Wno-variadic-macros -DPERL_GCC_PEDANTIC '-std=gnu99' -D_GNU_SOURCE '-fvisibility=hidden' -c -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat '-Werror=format-security' '-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3' '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection '-fcf-protection=full' -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE '-D_FILE_OFFSET_BITS=64' -O2 -g -pipe -Wformat '-Werror=format-security' '-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3' '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection '-fcf-protection=full' -g -o autogen/source/testcfish_perl.o autogen/source/testcfish_perl.c
In file included from xs/XSBind.h:23,
                 from autogen/source/testcfish_perl.c:29:
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_Host':
autogen/include/Clownfish/Obj.h:141:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Obj *, void *)' [-Wcast-function-type]
  141 |     const CFISH_Obj_To_Host_t method = (CFISH_Obj_To_Host_t)cfish_obj_method(self, CFISH_Obj_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Clone':
autogen/include/Clownfish/Obj.h:148:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Obj *)' [-Wcast-function-type]
  148 |     const CFISH_Obj_Clone_t method = (CFISH_Obj_Clone_t)cfish_obj_method(self, CFISH_Obj_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Equals':
autogen/include/Clownfish/Obj.h:155:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Obj *, cfish_Obj *)' [-Wcast-function-type]
  155 |     const CFISH_Obj_Equals_t method = (CFISH_Obj_Equals_t)cfish_obj_method(self, CFISH_Obj_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_Compare_To':
autogen/include/Clownfish/Obj.h:162:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Obj *, cfish_Obj *)' {aka 'int (*)(cfish_Obj *, cfish_Obj *)'} [-Wcast-function-type]
  162 |     const CFISH_Obj_Compare_To_t method = (CFISH_Obj_Compare_To_t)cfish_obj_method(self, CFISH_Obj_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Obj.h: In function 'CFISH_Obj_To_String':
autogen/include/Clownfish/Obj.h:176:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Obj *)' [-Wcast-function-type]
  176 |     const CFISH_Obj_To_String_t method = (CFISH_Obj_To_String_t)cfish_obj_method(self, CFISH_Obj_To_String_OFFSET);
      |                                          ^
In file included from xs/XSBind.h:24:
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_To_Host':
autogen/include/Clownfish/Blob.h:182:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Blob *, void *)' [-Wcast-function-type]
  182 |     const CFISH_Blob_To_Host_t method = (CFISH_Blob_To_Host_t)cfish_obj_method(self, CFISH_Blob_To_Host_OFFSET);
      |                                         ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Clone':
autogen/include/Clownfish/Blob.h:193:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Blob * (*)(cfish_Blob *)' [-Wcast-function-type]
  193 |     const CFISH_Blob_Clone_t method = (CFISH_Blob_Clone_t)cfish_obj_method(self, CFISH_Blob_Clone_OFFSET);
      |                                       ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Equals':
autogen/include/Clownfish/Blob.h:204:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Blob *, cfish_Obj *)' [-Wcast-function-type]
  204 |     const CFISH_Blob_Equals_t method = (CFISH_Blob_Equals_t)cfish_obj_method(self, CFISH_Blob_Equals_OFFSET);
      |                                        ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Compare_To':
autogen/include/Clownfish/Blob.h:215:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Blob *, cfish_Obj *)' {aka 'int (*)(cfish_Blob *, cfish_Obj *)'} [-Wcast-function-type]
  215 |     const CFISH_Blob_Compare_To_t method = (CFISH_Blob_Compare_To_t)cfish_obj_method(self, CFISH_Blob_Compare_To_OFFSET);
      |                                            ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_To_String':
autogen/include/Clownfish/Blob.h:237:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Blob *)' [-Wcast-function-type]
  237 |     const CFISH_Blob_To_String_t method = (CFISH_Blob_To_String_t)cfish_obj_method(self, CFISH_Blob_To_String_OFFSET);
      |                                           ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Get_Size':
autogen/include/Clownfish/Blob.h:248:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Blob *)' {aka 'long unsigned int (*)(cfish_Blob *)'} [-Wcast-function-type]
  248 |     const CFISH_Blob_Get_Size_t method = (CFISH_Blob_Get_Size_t)cfish_obj_method(self, CFISH_Blob_Get_Size_OFFSET);
      |                                          ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Get_Buf':
autogen/include/Clownfish/Blob.h:259:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_Blob *)' [-Wcast-function-type]
  259 |     const CFISH_Blob_Get_Buf_t method = (CFISH_Blob_Get_Buf_t)cfish_obj_method(self, CFISH_Blob_Get_Buf_OFFSET);
      |                                         ^
autogen/include/Clownfish/Blob.h: In function 'CFISH_Blob_Equals_Bytes':
autogen/include/Clownfish/Blob.h:270:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Blob *, const void *, size_t)' {aka '_Bool (*)(cfish_Blob *, const void *, long unsigned int)'} [-Wcast-function-type]
  270 |     const CFISH_Blob_Equals_Bytes_t method = (CFISH_Blob_Equals_Bytes_t)cfish_obj_method(self, CFISH_Blob_Equals_Bytes_OFFSET);
      |                                              ^
In file included from xs/XSBind.h:25:
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_To_Host':
autogen/include/Clownfish/ByteBuf.h:230:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_ByteBuf *, void *)' [-Wcast-function-type]
  230 |     const CFISH_BB_To_Host_t method = (CFISH_BB_To_Host_t)cfish_obj_method(self, CFISH_BB_To_Host_OFFSET);
      |                                       ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Clone':
autogen/include/Clownfish/ByteBuf.h:241:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  241 |     const CFISH_BB_Clone_t method = (CFISH_BB_Clone_t)cfish_obj_method(self, CFISH_BB_Clone_OFFSET);
      |                                     ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Equals':
autogen/include/Clownfish/ByteBuf.h:252:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_ByteBuf *, cfish_Obj *)' [-Wcast-function-type]
  252 |     const CFISH_BB_Equals_t method = (CFISH_BB_Equals_t)cfish_obj_method(self, CFISH_BB_Equals_OFFSET);
      |                                      ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Compare_To':
autogen/include/Clownfish/ByteBuf.h:263:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_ByteBuf *, cfish_Obj *)' {aka 'int (*)(cfish_ByteBuf *, cfish_Obj *)'} [-Wcast-function-type]
  263 |     const CFISH_BB_Compare_To_t method = (CFISH_BB_Compare_To_t)cfish_obj_method(self, CFISH_BB_Compare_To_OFFSET);
      |                                          ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_To_String':
autogen/include/Clownfish/ByteBuf.h:285:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  285 |     const CFISH_BB_To_String_t method = (CFISH_BB_To_String_t)cfish_obj_method(self, CFISH_BB_To_String_OFFSET);
      |                                         ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Set_Size':
autogen/include/Clownfish/ByteBuf.h:296:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_ByteBuf *, size_t)' {aka 'void (*)(cfish_ByteBuf *, long unsigned int)'} [-Wcast-function-type]
  296 |     const CFISH_BB_Set_Size_t method = (CFISH_BB_Set_Size_t)cfish_obj_method(self, CFISH_BB_Set_Size_OFFSET);
      |                                        ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Get_Size':
autogen/include/Clownfish/ByteBuf.h:307:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_ByteBuf *)' {aka 'long unsigned int (*)(cfish_ByteBuf *)'} [-Wcast-function-type]
  307 |     const CFISH_BB_Get_Size_t method = (CFISH_BB_Get_Size_t)cfish_obj_method(self, CFISH_BB_Get_Size_OFFSET);
      |                                        ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Get_Buf':
autogen/include/Clownfish/ByteBuf.h:318:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  318 |     const CFISH_BB_Get_Buf_t method = (CFISH_BB_Get_Buf_t)cfish_obj_method(self, CFISH_BB_Get_Buf_OFFSET);
      |                                       ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Get_Capacity':
autogen/include/Clownfish/ByteBuf.h:329:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_ByteBuf *)' {aka 'long unsigned int (*)(cfish_ByteBuf *)'} [-Wcast-function-type]
  329 |     const CFISH_BB_Get_Capacity_t method = (CFISH_BB_Get_Capacity_t)cfish_obj_method(self, CFISH_BB_Get_Capacity_OFFSET);
      |                                            ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Cat_Bytes':
autogen/include/Clownfish/ByteBuf.h:340:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_ByteBuf *, const void *, size_t)' {aka 'void (*)(cfish_ByteBuf *, const void *, long unsigned int)'} [-Wcast-function-type]
  340 |     const CFISH_BB_Cat_Bytes_t method = (CFISH_BB_Cat_Bytes_t)cfish_obj_method(self, CFISH_BB_Cat_Bytes_OFFSET);
      |                                         ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Cat':
autogen/include/Clownfish/ByteBuf.h:351:35: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_ByteBuf *, cfish_Blob *)' [-Wcast-function-type]
  351 |     const CFISH_BB_Cat_t method = (CFISH_BB_Cat_t)cfish_obj_method(self, CFISH_BB_Cat_OFFSET);
      |                                   ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Grow':
autogen/include/Clownfish/ByteBuf.h:362:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_ByteBuf *, size_t)' {aka 'char * (*)(cfish_ByteBuf *, long unsigned int)'} [-Wcast-function-type]
  362 |     const CFISH_BB_Grow_t method = (CFISH_BB_Grow_t)cfish_obj_method(self, CFISH_BB_Grow_OFFSET);
      |                                    ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Yield_Blob':
autogen/include/Clownfish/ByteBuf.h:373:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Blob * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  373 |     const CFISH_BB_Yield_Blob_t method = (CFISH_BB_Yield_Blob_t)cfish_obj_method(self, CFISH_BB_Yield_Blob_OFFSET);
      |                                          ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Utf8_To_String':
autogen/include/Clownfish/ByteBuf.h:384:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  384 |     const CFISH_BB_Utf8_To_String_t method = (CFISH_BB_Utf8_To_String_t)cfish_obj_method(self, CFISH_BB_Utf8_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Trusted_Utf8_To_String':
autogen/include/Clownfish/ByteBuf.h:395:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_ByteBuf *)' [-Wcast-function-type]
  395 |     const CFISH_BB_Trusted_Utf8_To_String_t method = (CFISH_BB_Trusted_Utf8_To_String_t)cfish_obj_method(self, CFISH_BB_Trusted_Utf8_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/ByteBuf.h: In function 'CFISH_BB_Equals_Bytes':
autogen/include/Clownfish/ByteBuf.h:406:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_ByteBuf *, const void *, size_t)' {aka '_Bool (*)(cfish_ByteBuf *, const void *, long unsigned int)'} [-Wcast-function-type]
  406 |     const CFISH_BB_Equals_Bytes_t method = (CFISH_BB_Equals_Bytes_t)cfish_obj_method(self, CFISH_BB_Equals_Bytes_OFFSET);
      |                                            ^
In file included from autogen/include/Clownfish/String.h:41,
                 from xs/XSBind.h:26:
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_Host':
autogen/include/Clownfish/Class.h:223:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  223 |     const CFISH_Class_To_Host_t method = (CFISH_Class_To_Host_t)cfish_obj_method(self, CFISH_Class_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Clone':
autogen/include/Clownfish/Class.h:234:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  234 |     const CFISH_Class_Clone_t method = (CFISH_Class_Clone_t)cfish_obj_method(self, CFISH_Class_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Equals':
autogen/include/Clownfish/Class.h:245:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Class *, cfish_Obj *)' [-Wcast-function-type]
  245 |     const CFISH_Class_Equals_t method = (CFISH_Class_Equals_t)cfish_obj_method(self, CFISH_Class_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Compare_To':
autogen/include/Clownfish/Class.h:256:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Class *, cfish_Obj *)' {aka 'int (*)(cfish_Class *, cfish_Obj *)'} [-Wcast-function-type]
  256 |     const CFISH_Class_Compare_To_t method = (CFISH_Class_Compare_To_t)cfish_obj_method(self, CFISH_Class_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_To_String':
autogen/include/Clownfish/Class.h:278:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  278 |     const CFISH_Class_To_String_t method = (CFISH_Class_To_String_t)cfish_obj_method(self, CFISH_Class_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Override':
autogen/include/Clownfish/Class.h:289:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, void (*)(const void *), uint32_t)' {aka 'void (*)(cfish_Class *, void (*)(const void *), unsigned int)'} [-Wcast-function-type]
  289 |     const CFISH_Class_Override_t method = (CFISH_Class_Override_t)cfish_obj_method(self, CFISH_Class_Override_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Make_Obj':
autogen/include/Clownfish/Class.h:300:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *)' [-Wcast-function-type]
  300 |     const CFISH_Class_Make_Obj_t method = (CFISH_Class_Make_Obj_t)cfish_obj_method(self, CFISH_Class_Make_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Init_Obj':
autogen/include/Clownfish/Class.h:311:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Class *, void *)' [-Wcast-function-type]
  311 |     const CFISH_Class_Init_Obj_t method = (CFISH_Class_Init_Obj_t)cfish_obj_method(self, CFISH_Class_Init_Obj_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Add_Host_Method_Alias':
autogen/include/Clownfish/Class.h:322:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *, const char *)' [-Wcast-function-type]
  322 |     const CFISH_Class_Add_Host_Method_Alias_t method = (CFISH_Class_Add_Host_Method_Alias_t)cfish_obj_method(self, CFISH_Class_Add_Host_Method_Alias_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Exclude_Host_Method':
autogen/include/Clownfish/Class.h:333:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Class *, const char *)' [-Wcast-function-type]
  333 |     const CFISH_Class_Exclude_Host_Method_t method = (CFISH_Class_Exclude_Host_Method_t)cfish_obj_method(self, CFISH_Class_Exclude_Host_Method_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Name':
autogen/include/Clownfish/Class.h:344:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Class *)' [-Wcast-function-type]
  344 |     const CFISH_Class_Get_Name_t method = (CFISH_Class_Get_Name_t)cfish_obj_method(self, CFISH_Class_Get_Name_OFFSET);
      |                                           ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Parent':
autogen/include/Clownfish/Class.h:355:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Class * (*)(cfish_Class *)' [-Wcast-function-type]
  355 |     const CFISH_Class_Get_Parent_t method = (CFISH_Class_Get_Parent_t)cfish_obj_method(self, CFISH_Class_Get_Parent_OFFSET);
      |                                             ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Obj_Alloc_Size':
autogen/include/Clownfish/Class.h:366:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'uint32_t (*)(cfish_Class *)' {aka 'unsigned int (*)(cfish_Class *)'} [-Wcast-function-type]
  366 |     const CFISH_Class_Get_Obj_Alloc_Size_t method = (CFISH_Class_Get_Obj_Alloc_Size_t)cfish_obj_method(self, CFISH_Class_Get_Obj_Alloc_Size_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Class.h: In function 'CFISH_Class_Get_Methods':
autogen/include/Clownfish/Class.h:377:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Class *)' [-Wcast-function-type]
  377 |     const CFISH_Class_Get_Methods_t method = (CFISH_Class_Get_Methods_t)cfish_obj_method(self, CFISH_Class_Get_Methods_OFFSET);
      |                                              ^
In file included from autogen/include/Clownfish/String.h:44:
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_Host':
autogen/include/Clownfish/Err.h:214:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Err *, void *)' [-Wcast-function-type]
  214 |     const CFISH_Err_To_Host_t method = (CFISH_Err_To_Host_t)cfish_obj_method(self, CFISH_Err_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Clone':
autogen/include/Clownfish/Err.h:221:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Err *)' [-Wcast-function-type]
  221 |     const CFISH_Err_Clone_t method = (CFISH_Err_Clone_t)cfish_obj_method(self, CFISH_Err_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Equals':
autogen/include/Clownfish/Err.h:228:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Err *, cfish_Obj *)' [-Wcast-function-type]
  228 |     const CFISH_Err_Equals_t method = (CFISH_Err_Equals_t)cfish_obj_method(self, CFISH_Err_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Compare_To':
autogen/include/Clownfish/Err.h:235:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Err *, cfish_Obj *)' {aka 'int (*)(cfish_Err *, cfish_Obj *)'} [-Wcast-function-type]
  235 |     const CFISH_Err_Compare_To_t method = (CFISH_Err_Compare_To_t)cfish_obj_method(self, CFISH_Err_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_To_String':
autogen/include/Clownfish/Err.h:249:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  249 |     const CFISH_Err_To_String_t method = (CFISH_Err_To_String_t)cfish_obj_method(self, CFISH_Err_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Cat_Mess':
autogen/include/Clownfish/Err.h:256:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, cfish_String *)' [-Wcast-function-type]
  256 |     const CFISH_Err_Cat_Mess_t method = (CFISH_Err_Cat_Mess_t)cfish_obj_method(self, CFISH_Err_Cat_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Get_Mess':
autogen/include/Clownfish/Err.h:263:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Err *)' [-Wcast-function-type]
  263 |     const CFISH_Err_Get_Mess_t method = (CFISH_Err_Get_Mess_t)cfish_obj_method(self, CFISH_Err_Get_Mess_OFFSET);
      |                                         ^
autogen/include/Clownfish/Err.h: In function 'CFISH_Err_Add_Frame':
autogen/include/Clownfish/Err.h:270:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Err *, const char *, int,  const char *)' [-Wcast-function-type]
  270 |     const CFISH_Err_Add_Frame_t method = (CFISH_Err_Add_Frame_t)cfish_obj_method(self, CFISH_Err_Add_Frame_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Host':
autogen/include/Clownfish/String.h:387:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_String *, void *)' [-Wcast-function-type]
  387 |     const CFISH_Str_To_Host_t method = (CFISH_Str_To_Host_t)cfish_obj_method(self, CFISH_Str_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Clone':
autogen/include/Clownfish/String.h:398:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  398 |     const CFISH_Str_Clone_t method = (CFISH_Str_Clone_t)cfish_obj_method(self, CFISH_Str_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals':
autogen/include/Clownfish/String.h:409:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  409 |     const CFISH_Str_Equals_t method = (CFISH_Str_Equals_t)cfish_obj_method(self, CFISH_Str_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Compare_To':
autogen/include/Clownfish/String.h:420:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, cfish_Obj *)' {aka 'int (*)(cfish_String *, cfish_Obj *)'} [-Wcast-function-type]
  420 |     const CFISH_Str_Compare_To_t method = (CFISH_Str_Compare_To_t)cfish_obj_method(self, CFISH_Str_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_String':
autogen/include/Clownfish/String.h:442:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  442 |     const CFISH_Str_To_String_t method = (CFISH_Str_To_String_t)cfish_obj_method(self, CFISH_Str_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat':
autogen/include/Clownfish/String.h:453:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  453 |     const CFISH_Str_Cat_t method = (CFISH_Str_Cat_t)cfish_obj_method(self, CFISH_Str_Cat_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Utf8':
autogen/include/Clownfish/String.h:464:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  464 |     const CFISH_Str_Cat_Utf8_t method = (CFISH_Str_Cat_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Utf8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Cat_Trusted_Utf8':
autogen/include/Clownfish/String.h:475:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_String * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  475 |     const CFISH_Str_Cat_Trusted_Utf8_t method = (CFISH_Str_Cat_Trusted_Utf8_t)cfish_obj_method(self, CFISH_Str_Cat_Trusted_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_I64':
autogen/include/Clownfish/String.h:486:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *)' {aka 'long int (*)(cfish_String *)'} [-Wcast-function-type]
  486 |     const CFISH_Str_To_I64_t method = (CFISH_Str_To_I64_t)cfish_obj_method(self, CFISH_Str_To_I64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_BaseX_To_I64':
autogen/include/Clownfish/String.h:497:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_String *, uint32_t)' {aka 'long int (*)(cfish_String *, unsigned int)'} [-Wcast-function-type]
  497 |     const CFISH_Str_BaseX_To_I64_t method = (CFISH_Str_BaseX_To_I64_t)cfish_obj_method(self, CFISH_Str_BaseX_To_I64_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_F64':
autogen/include/Clownfish/String.h:508:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_String *)' [-Wcast-function-type]
  508 |     const CFISH_Str_To_F64_t method = (CFISH_Str_To_F64_t)cfish_obj_method(self, CFISH_Str_To_F64_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With':
autogen/include/Clownfish/String.h:519:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  519 |     const CFISH_Str_Starts_With_t method = (CFISH_Str_Starts_With_t)cfish_obj_method(self, CFISH_Str_Starts_With_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Starts_With_Utf8':
autogen/include/Clownfish/String.h:530:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  530 |     const CFISH_Str_Starts_With_Utf8_t method = (CFISH_Str_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Starts_With_Utf8_OFFSET);
      |                                                 ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With':
autogen/include/Clownfish/String.h:541:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  541 |     const CFISH_Str_Ends_With_t method = (CFISH_Str_Ends_With_t)cfish_obj_method(self, CFISH_Str_Ends_With_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Ends_With_Utf8':
autogen/include/Clownfish/String.h:552:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  552 |     const CFISH_Str_Ends_With_Utf8_t method = (CFISH_Str_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_Str_Ends_With_Utf8_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains':
autogen/include/Clownfish/String.h:563:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  563 |     const CFISH_Str_Contains_t method = (CFISH_Str_Contains_t)cfish_obj_method(self, CFISH_Str_Contains_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Contains_Utf8':
autogen/include/Clownfish/String.h:574:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  574 |     const CFISH_Str_Contains_Utf8_t method = (CFISH_Str_Contains_Utf8_t)cfish_obj_method(self, CFISH_Str_Contains_Utf8_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find':
autogen/include/Clownfish/String.h:585:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, cfish_String *)' [-Wcast-function-type]
  585 |     const CFISH_Str_Find_t method = (CFISH_Str_Find_t)cfish_obj_method(self, CFISH_Str_Find_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Find_Utf8':
autogen/include/Clownfish/String.h:596:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *, const char *, size_t)' {aka 'cfish_StringIterator * (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  596 |     const CFISH_Str_Find_Utf8_t method = (CFISH_Str_Find_Utf8_t)cfish_obj_method(self, CFISH_Str_Find_Utf8_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Equals_Utf8':
autogen/include/Clownfish/String.h:607:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *, const char *, size_t)' {aka '_Bool (*)(cfish_String *, const char *, long unsigned int)'} [-Wcast-function-type]
  607 |     const CFISH_Str_Equals_Utf8_t method = (CFISH_Str_Equals_Utf8_t)cfish_obj_method(self, CFISH_Str_Equals_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Length':
autogen/include/Clownfish/String.h:618:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  618 |     const CFISH_Str_Length_t method = (CFISH_Str_Length_t)cfish_obj_method(self, CFISH_Str_Length_OFFSET);
      |                                       ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Size':
autogen/include/Clownfish/String.h:629:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  629 |     const CFISH_Str_Get_Size_t method = (CFISH_Str_Get_Size_t)cfish_obj_method(self, CFISH_Str_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Get_Ptr8':
autogen/include/Clownfish/String.h:640:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'const char * (*)(cfish_String *)' [-Wcast-function-type]
  640 |     const CFISH_Str_Get_Ptr8_t method = (CFISH_Str_Get_Ptr8_t)cfish_obj_method(self, CFISH_Str_Get_Ptr8_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_Utf8':
autogen/include/Clownfish/String.h:651:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'char * (*)(cfish_String *)' [-Wcast-function-type]
  651 |     const CFISH_Str_To_Utf8_t method = (CFISH_Str_To_Utf8_t)cfish_obj_method(self, CFISH_Str_To_Utf8_OFFSET);
      |                                        ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_To_ByteBuf':
autogen/include/Clownfish/String.h:662:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_ByteBuf * (*)(cfish_String *)' [-Wcast-function-type]
  662 |     const CFISH_Str_To_ByteBuf_t method = (CFISH_Str_To_ByteBuf_t)cfish_obj_method(self, CFISH_Str_To_ByteBuf_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Is_Copy_On_IncRef':
autogen/include/Clownfish/String.h:673:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_String *)' [-Wcast-function-type]
  673 |     const CFISH_Str_Is_Copy_On_IncRef_t method = (CFISH_Str_Is_Copy_On_IncRef_t)cfish_obj_method(self, CFISH_Str_Is_Copy_On_IncRef_OFFSET);
      |                                                  ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Hash_Sum':
autogen/include/Clownfish/String.h:684:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_String *)' {aka 'long unsigned int (*)(cfish_String *)'} [-Wcast-function-type]
  684 |     const CFISH_Str_Hash_Sum_t method = (CFISH_Str_Hash_Sum_t)cfish_obj_method(self, CFISH_Str_Hash_Sum_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim':
autogen/include/Clownfish/String.h:695:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  695 |     const CFISH_Str_Trim_t method = (CFISH_Str_Trim_t)cfish_obj_method(self, CFISH_Str_Trim_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Top':
autogen/include/Clownfish/String.h:706:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  706 |     const CFISH_Str_Trim_Top_t method = (CFISH_Str_Trim_Top_t)cfish_obj_method(self, CFISH_Str_Trim_Top_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Trim_Tail':
autogen/include/Clownfish/String.h:717:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *)' [-Wcast-function-type]
  717 |     const CFISH_Str_Trim_Tail_t method = (CFISH_Str_Trim_Tail_t)cfish_obj_method(self, CFISH_Str_Trim_Tail_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_At':
autogen/include/Clownfish/String.h:728:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  728 |     const CFISH_Str_Code_Point_At_t method = (CFISH_Str_Code_Point_At_t)cfish_obj_method(self, CFISH_Str_Code_Point_At_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Code_Point_From':
autogen/include/Clownfish/String.h:739:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_String *, size_t)' {aka 'int (*)(cfish_String *, long unsigned int)'} [-Wcast-function-type]
  739 |     const CFISH_Str_Code_Point_From_t method = (CFISH_Str_Code_Point_From_t)cfish_obj_method(self, CFISH_Str_Code_Point_From_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_SubString':
autogen/include/Clownfish/String.h:750:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_String *, size_t,  size_t)' {aka 'cfish_String * (*)(cfish_String *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  750 |     const CFISH_Str_SubString_t method = (CFISH_Str_SubString_t)cfish_obj_method(self, CFISH_Str_SubString_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Top':
autogen/include/Clownfish/String.h:761:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  761 |     const CFISH_Str_Top_t method = (CFISH_Str_Top_t)cfish_obj_method(self, CFISH_Str_Top_OFFSET);
      |                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_Str_Tail':
autogen/include/Clownfish/String.h:772:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_String *)' [-Wcast-function-type]
  772 |     const CFISH_Str_Tail_t method = (CFISH_Str_Tail_t)cfish_obj_method(self, CFISH_Str_Tail_OFFSET);
      |                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_Host':
autogen/include/Clownfish/String.h:1113:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_StringIterator *, void *)' [-Wcast-function-type]
 1113 |     const CFISH_StrIter_To_Host_t method = (CFISH_StrIter_To_Host_t)cfish_obj_method(self, CFISH_StrIter_To_Host_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Clone':
autogen/include/Clownfish/String.h:1124:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_StringIterator * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1124 |     const CFISH_StrIter_Clone_t method = (CFISH_StrIter_Clone_t)cfish_obj_method(self, CFISH_StrIter_Clone_OFFSET);
      |                                          ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Equals':
autogen/include/Clownfish/String.h:1135:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_Obj *)' [-Wcast-function-type]
 1135 |     const CFISH_StrIter_Equals_t method = (CFISH_StrIter_Equals_t)cfish_obj_method(self, CFISH_StrIter_Equals_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Compare_To':
autogen/include/Clownfish/String.h:1146:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *, cfish_Obj *)' {aka 'int (*)(cfish_StringIterator *, cfish_Obj *)'} [-Wcast-function-type]
 1146 |     const CFISH_StrIter_Compare_To_t method = (CFISH_StrIter_Compare_To_t)cfish_obj_method(self, CFISH_StrIter_Compare_To_OFFSET);
      |                                               ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_To_String':
autogen/include/Clownfish/String.h:1168:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1168 |     const CFISH_StrIter_To_String_t method = (CFISH_StrIter_To_String_t)cfish_obj_method(self, CFISH_StrIter_To_String_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Assign':
autogen/include/Clownfish/String.h:1179:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_StringIterator *, cfish_StringIterator *)' [-Wcast-function-type]
 1179 |     const CFISH_StrIter_Assign_t method = (CFISH_StrIter_Assign_t)cfish_obj_method(self, CFISH_StrIter_Assign_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Next':
autogen/include/Clownfish/String.h:1190:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1190 |     const CFISH_StrIter_Has_Next_t method = (CFISH_StrIter_Has_Next_t)cfish_obj_method(self, CFISH_StrIter_Has_Next_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Has_Prev':
autogen/include/Clownfish/String.h:1201:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *)' [-Wcast-function-type]
 1201 |     const CFISH_StrIter_Has_Prev_t method = (CFISH_StrIter_Has_Prev_t)cfish_obj_method(self, CFISH_StrIter_Has_Prev_OFFSET);
      |                                             ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Next':
autogen/include/Clownfish/String.h:1212:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1212 |     const CFISH_StrIter_Next_t method = (CFISH_StrIter_Next_t)cfish_obj_method(self, CFISH_StrIter_Next_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Prev':
autogen/include/Clownfish/String.h:1223:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_StringIterator *)' {aka 'int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1223 |     const CFISH_StrIter_Prev_t method = (CFISH_StrIter_Prev_t)cfish_obj_method(self, CFISH_StrIter_Prev_OFFSET);
      |                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Advance':
autogen/include/Clownfish/String.h:1234:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1234 |     const CFISH_StrIter_Advance_t method = (CFISH_StrIter_Advance_t)cfish_obj_method(self, CFISH_StrIter_Advance_OFFSET);
      |                                            ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Recede':
autogen/include/Clownfish/String.h:1245:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *, size_t)' {aka 'long unsigned int (*)(cfish_StringIterator *, long unsigned int)'} [-Wcast-function-type]
 1245 |     const CFISH_StrIter_Recede_t method = (CFISH_StrIter_Recede_t)cfish_obj_method(self, CFISH_StrIter_Recede_OFFSET);
      |                                           ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace':
autogen/include/Clownfish/String.h:1256:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1256 |     const CFISH_StrIter_Skip_Whitespace_t method = (CFISH_StrIter_Skip_Whitespace_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_OFFSET);
      |                                                    ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Skip_Whitespace_Back':
autogen/include/Clownfish/String.h:1267:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_StringIterator *)' {aka 'long unsigned int (*)(cfish_StringIterator *)'} [-Wcast-function-type]
 1267 |     const CFISH_StrIter_Skip_Whitespace_Back_t method = (CFISH_StrIter_Skip_Whitespace_Back_t)cfish_obj_method(self, CFISH_StrIter_Skip_Whitespace_Back_OFFSET);
      |                                                         ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With':
autogen/include/Clownfish/String.h:1278:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1278 |     const CFISH_StrIter_Starts_With_t method = (CFISH_StrIter_Starts_With_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_OFFSET);
      |                                                ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Starts_With_Utf8':
autogen/include/Clownfish/String.h:1289:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1289 |     const CFISH_StrIter_Starts_With_Utf8_t method = (CFISH_StrIter_Starts_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Starts_With_Utf8_OFFSET);
      |                                                     ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With':
autogen/include/Clownfish/String.h:1300:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, cfish_String *)' [-Wcast-function-type]
 1300 |     const CFISH_StrIter_Ends_With_t method = (CFISH_StrIter_Ends_With_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_OFFSET);
      |                                              ^
autogen/include/Clownfish/String.h: In function 'CFISH_StrIter_Ends_With_Utf8':
autogen/include/Clownfish/String.h:1311:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_StringIterator *, const char *, size_t)' {aka '_Bool (*)(cfish_StringIterator *, const char *, long unsigned int)'} [-Wcast-function-type]
 1311 |     const CFISH_StrIter_Ends_With_Utf8_t method = (CFISH_StrIter_Ends_With_Utf8_t)cfish_obj_method(self, CFISH_StrIter_Ends_With_Utf8_OFFSET);
      |                                                   ^
In file included from xs/XSBind.h:28:
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_To_Host':
autogen/include/Clownfish/Hash.h:225:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Hash *, void *)' [-Wcast-function-type]
  225 |     const CFISH_Hash_To_Host_t method = (CFISH_Hash_To_Host_t)cfish_obj_method(self, CFISH_Hash_To_Host_OFFSET);
      |                                         ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Clone':
autogen/include/Clownfish/Hash.h:236:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *)' [-Wcast-function-type]
  236 |     const CFISH_Hash_Clone_t method = (CFISH_Hash_Clone_t)cfish_obj_method(self, CFISH_Hash_Clone_OFFSET);
      |                                       ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Equals':
autogen/include/Clownfish/Hash.h:247:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Hash *, cfish_Obj *)' [-Wcast-function-type]
  247 |     const CFISH_Hash_Equals_t method = (CFISH_Hash_Equals_t)cfish_obj_method(self, CFISH_Hash_Equals_OFFSET);
      |                                        ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Compare_To':
autogen/include/Clownfish/Hash.h:258:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Hash *, cfish_Obj *)' {aka 'int (*)(cfish_Hash *, cfish_Obj *)'} [-Wcast-function-type]
  258 |     const CFISH_Hash_Compare_To_t method = (CFISH_Hash_Compare_To_t)cfish_obj_method(self, CFISH_Hash_Compare_To_OFFSET);
      |                                            ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_To_String':
autogen/include/Clownfish/Hash.h:280:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Hash *)' [-Wcast-function-type]
  280 |     const CFISH_Hash_To_String_t method = (CFISH_Hash_To_String_t)cfish_obj_method(self, CFISH_Hash_To_String_OFFSET);
      |                                           ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Store':
autogen/include/Clownfish/Hash.h:302:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Hash *, cfish_String *, cfish_Obj *)' [-Wcast-function-type]
  302 |     const CFISH_Hash_Store_t method = (CFISH_Hash_Store_t)cfish_obj_method(self, CFISH_Hash_Store_OFFSET);
      |                                       ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Store_Utf8':
autogen/include/Clownfish/Hash.h:313:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Hash *, const char *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Hash *, const char *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  313 |     const CFISH_Hash_Store_Utf8_t method = (CFISH_Hash_Store_Utf8_t)cfish_obj_method(self, CFISH_Hash_Store_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Fetch':
autogen/include/Clownfish/Hash.h:324:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *, cfish_String *)' [-Wcast-function-type]
  324 |     const CFISH_Hash_Fetch_t method = (CFISH_Hash_Fetch_t)cfish_obj_method(self, CFISH_Hash_Fetch_OFFSET);
      |                                       ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Fetch_Utf8':
autogen/include/Clownfish/Hash.h:335:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *, const char *, size_t)' {aka 'cfish_Obj * (*)(cfish_Hash *, const char *, long unsigned int)'} [-Wcast-function-type]
  335 |     const CFISH_Hash_Fetch_Utf8_t method = (CFISH_Hash_Fetch_Utf8_t)cfish_obj_method(self, CFISH_Hash_Fetch_Utf8_OFFSET);
      |                                            ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Delete':
autogen/include/Clownfish/Hash.h:346:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *, cfish_String *)' [-Wcast-function-type]
  346 |     const CFISH_Hash_Delete_t method = (CFISH_Hash_Delete_t)cfish_obj_method(self, CFISH_Hash_Delete_OFFSET);
      |                                        ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Delete_Utf8':
autogen/include/Clownfish/Hash.h:357:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Hash *, const char *, size_t)' {aka 'cfish_Obj * (*)(cfish_Hash *, const char *, long unsigned int)'} [-Wcast-function-type]
  357 |     const CFISH_Hash_Delete_Utf8_t method = (CFISH_Hash_Delete_Utf8_t)cfish_obj_method(self, CFISH_Hash_Delete_Utf8_OFFSET);
      |                                             ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Has_Key':
autogen/include/Clownfish/Hash.h:368:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Hash *, cfish_String *)' [-Wcast-function-type]
  368 |     const CFISH_Hash_Has_Key_t method = (CFISH_Hash_Has_Key_t)cfish_obj_method(self, CFISH_Hash_Has_Key_OFFSET);
      |                                         ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Keys':
autogen/include/Clownfish/Hash.h:379:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Hash *)' [-Wcast-function-type]
  379 |     const CFISH_Hash_Keys_t method = (CFISH_Hash_Keys_t)cfish_obj_method(self, CFISH_Hash_Keys_OFFSET);
      |                                      ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Values':
autogen/include/Clownfish/Hash.h:390:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Hash *)' [-Wcast-function-type]
  390 |     const CFISH_Hash_Values_t method = (CFISH_Hash_Values_t)cfish_obj_method(self, CFISH_Hash_Values_OFFSET);
      |                                        ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Get_Capacity':
autogen/include/Clownfish/Hash.h:401:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Hash *)' {aka 'long unsigned int (*)(cfish_Hash *)'} [-Wcast-function-type]
  401 |     const CFISH_Hash_Get_Capacity_t method = (CFISH_Hash_Get_Capacity_t)cfish_obj_method(self, CFISH_Hash_Get_Capacity_OFFSET);
      |                                              ^
autogen/include/Clownfish/Hash.h: In function 'CFISH_Hash_Get_Size':
autogen/include/Clownfish/Hash.h:412:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Hash *)' {aka 'long unsigned int (*)(cfish_Hash *)'} [-Wcast-function-type]
  412 |     const CFISH_Hash_Get_Size_t method = (CFISH_Hash_Get_Size_t)cfish_obj_method(self, CFISH_Hash_Get_Size_OFFSET);
      |                                          ^
In file included from xs/XSBind.h:29:
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_To_Host':
autogen/include/Clownfish/Num.h:162:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Float *, void *)' [-Wcast-function-type]
  162 |     const CFISH_Float_To_Host_t method = (CFISH_Float_To_Host_t)cfish_obj_method(self, CFISH_Float_To_Host_OFFSET);
      |                                          ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Clone':
autogen/include/Clownfish/Num.h:173:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Float * (*)(cfish_Float *)' [-Wcast-function-type]
  173 |     const CFISH_Float_Clone_t method = (CFISH_Float_Clone_t)cfish_obj_method(self, CFISH_Float_Clone_OFFSET);
      |                                        ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Equals':
autogen/include/Clownfish/Num.h:184:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Float *, cfish_Obj *)' [-Wcast-function-type]
  184 |     const CFISH_Float_Equals_t method = (CFISH_Float_Equals_t)cfish_obj_method(self, CFISH_Float_Equals_OFFSET);
      |                                         ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Compare_To':
autogen/include/Clownfish/Num.h:195:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Float *, cfish_Obj *)' {aka 'int (*)(cfish_Float *, cfish_Obj *)'} [-Wcast-function-type]
  195 |     const CFISH_Float_Compare_To_t method = (CFISH_Float_Compare_To_t)cfish_obj_method(self, CFISH_Float_Compare_To_OFFSET);
      |                                             ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_To_String':
autogen/include/Clownfish/Num.h:217:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Float *)' [-Wcast-function-type]
  217 |     const CFISH_Float_To_String_t method = (CFISH_Float_To_String_t)cfish_obj_method(self, CFISH_Float_To_String_OFFSET);
      |                                            ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_Get_Value':
autogen/include/Clownfish/Num.h:228:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_Float *)' [-Wcast-function-type]
  228 |     const CFISH_Float_Get_Value_t method = (CFISH_Float_Get_Value_t)cfish_obj_method(self, CFISH_Float_Get_Value_OFFSET);
      |                                            ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Float_To_I64':
autogen/include/Clownfish/Num.h:239:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_Float *)' {aka 'long int (*)(cfish_Float *)'} [-Wcast-function-type]
  239 |     const CFISH_Float_To_I64_t method = (CFISH_Float_To_I64_t)cfish_obj_method(self, CFISH_Float_To_I64_OFFSET);
      |                                         ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_To_Host':
autogen/include/Clownfish/Num.h:417:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Integer *, void *)' [-Wcast-function-type]
  417 |     const CFISH_Int_To_Host_t method = (CFISH_Int_To_Host_t)cfish_obj_method(self, CFISH_Int_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Clone':
autogen/include/Clownfish/Num.h:428:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Integer * (*)(cfish_Integer *)' [-Wcast-function-type]
  428 |     const CFISH_Int_Clone_t method = (CFISH_Int_Clone_t)cfish_obj_method(self, CFISH_Int_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Equals':
autogen/include/Clownfish/Num.h:439:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Integer *, cfish_Obj *)' [-Wcast-function-type]
  439 |     const CFISH_Int_Equals_t method = (CFISH_Int_Equals_t)cfish_obj_method(self, CFISH_Int_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Compare_To':
autogen/include/Clownfish/Num.h:450:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Integer *, cfish_Obj *)' {aka 'int (*)(cfish_Integer *, cfish_Obj *)'} [-Wcast-function-type]
  450 |     const CFISH_Int_Compare_To_t method = (CFISH_Int_Compare_To_t)cfish_obj_method(self, CFISH_Int_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_To_String':
autogen/include/Clownfish/Num.h:472:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Integer *)' [-Wcast-function-type]
  472 |     const CFISH_Int_To_String_t method = (CFISH_Int_To_String_t)cfish_obj_method(self, CFISH_Int_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_Get_Value':
autogen/include/Clownfish/Num.h:483:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int64_t (*)(cfish_Integer *)' {aka 'long int (*)(cfish_Integer *)'} [-Wcast-function-type]
  483 |     const CFISH_Int_Get_Value_t method = (CFISH_Int_Get_Value_t)cfish_obj_method(self, CFISH_Int_Get_Value_OFFSET);
      |                                          ^
autogen/include/Clownfish/Num.h: In function 'CFISH_Int_To_F64':
autogen/include/Clownfish/Num.h:494:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'double (*)(cfish_Integer *)' [-Wcast-function-type]
  494 |     const CFISH_Int_To_F64_t method = (CFISH_Int_To_F64_t)cfish_obj_method(self, CFISH_Int_To_F64_OFFSET);
      |                                       ^
In file included from xs/XSBind.h:30:
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_To_Host':
autogen/include/Clownfish/Vector.h:245:40: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_Vector *, void *)' [-Wcast-function-type]
  245 |     const CFISH_Vec_To_Host_t method = (CFISH_Vec_To_Host_t)cfish_obj_method(self, CFISH_Vec_To_Host_OFFSET);
      |                                        ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Clone':
autogen/include/Clownfish/Vector.h:256:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Vector *)' [-Wcast-function-type]
  256 |     const CFISH_Vec_Clone_t method = (CFISH_Vec_Clone_t)cfish_obj_method(self, CFISH_Vec_Clone_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Equals':
autogen/include/Clownfish/Vector.h:267:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_Vector *, cfish_Obj *)' [-Wcast-function-type]
  267 |     const CFISH_Vec_Equals_t method = (CFISH_Vec_Equals_t)cfish_obj_method(self, CFISH_Vec_Equals_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Compare_To':
autogen/include/Clownfish/Vector.h:278:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_Vector *, cfish_Obj *)' {aka 'int (*)(cfish_Vector *, cfish_Obj *)'} [-Wcast-function-type]
  278 |     const CFISH_Vec_Compare_To_t method = (CFISH_Vec_Compare_To_t)cfish_obj_method(self, CFISH_Vec_Compare_To_OFFSET);
      |                                           ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_To_String':
autogen/include/Clownfish/Vector.h:300:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_Vector *)' [-Wcast-function-type]
  300 |     const CFISH_Vec_To_String_t method = (CFISH_Vec_To_String_t)cfish_obj_method(self, CFISH_Vec_To_String_OFFSET);
      |                                          ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Push':
autogen/include/Clownfish/Vector.h:311:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, cfish_Obj *)' [-Wcast-function-type]
  311 |     const CFISH_Vec_Push_t method = (CFISH_Vec_Push_t)cfish_obj_method(self, CFISH_Vec_Push_OFFSET);
      |                                     ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Push_All':
autogen/include/Clownfish/Vector.h:322:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, cfish_Vector *)' [-Wcast-function-type]
  322 |     const CFISH_Vec_Push_All_t method = (CFISH_Vec_Push_All_t)cfish_obj_method(self, CFISH_Vec_Push_All_OFFSET);
      |                                         ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Pop':
autogen/include/Clownfish/Vector.h:333:36: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *)' [-Wcast-function-type]
  333 |     const CFISH_Vec_Pop_t method = (CFISH_Vec_Pop_t)cfish_obj_method(self, CFISH_Vec_Pop_OFFSET);
      |                                    ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Insert':
autogen/include/Clownfish/Vector.h:344:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  344 |     const CFISH_Vec_Insert_t method = (CFISH_Vec_Insert_t)cfish_obj_method(self, CFISH_Vec_Insert_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Insert_All':
autogen/include/Clownfish/Vector.h:355:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Vector *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Vector *)'} [-Wcast-function-type]
  355 |     const CFISH_Vec_Insert_All_t method = (CFISH_Vec_Insert_All_t)cfish_obj_method(self, CFISH_Vec_Insert_All_OFFSET);
      |                                           ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Grow':
autogen/include/Clownfish/Vector.h:366:37: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  366 |     const CFISH_Vec_Grow_t method = (CFISH_Vec_Grow_t)cfish_obj_method(self, CFISH_Vec_Grow_OFFSET);
      |                                     ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Fetch':
autogen/include/Clownfish/Vector.h:377:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *, size_t)' {aka 'cfish_Obj * (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  377 |     const CFISH_Vec_Fetch_t method = (CFISH_Vec_Fetch_t)cfish_obj_method(self, CFISH_Vec_Fetch_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Store':
autogen/include/Clownfish/Vector.h:388:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  cfish_Obj *)' {aka 'void (*)(cfish_Vector *, long unsigned int,  cfish_Obj *)'} [-Wcast-function-type]
  388 |     const CFISH_Vec_Store_t method = (CFISH_Vec_Store_t)cfish_obj_method(self, CFISH_Vec_Store_OFFSET);
      |                                      ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Delete':
autogen/include/Clownfish/Vector.h:399:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_Vector *, size_t)' {aka 'cfish_Obj * (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  399 |     const CFISH_Vec_Delete_t method = (CFISH_Vec_Delete_t)cfish_obj_method(self, CFISH_Vec_Delete_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Excise':
autogen/include/Clownfish/Vector.h:410:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t,  size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  410 |     const CFISH_Vec_Excise_t method = (CFISH_Vec_Excise_t)cfish_obj_method(self, CFISH_Vec_Excise_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Resize':
autogen/include/Clownfish/Vector.h:432:39: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_Vector *, size_t)' {aka 'void (*)(cfish_Vector *, long unsigned int)'} [-Wcast-function-type]
  432 |     const CFISH_Vec_Resize_t method = (CFISH_Vec_Resize_t)cfish_obj_method(self, CFISH_Vec_Resize_OFFSET);
      |                                       ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Get_Size':
autogen/include/Clownfish/Vector.h:454:41: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Vector *)' {aka 'long unsigned int (*)(cfish_Vector *)'} [-Wcast-function-type]
  454 |     const CFISH_Vec_Get_Size_t method = (CFISH_Vec_Get_Size_t)cfish_obj_method(self, CFISH_Vec_Get_Size_OFFSET);
      |                                         ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Get_Capacity':
autogen/include/Clownfish/Vector.h:465:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'size_t (*)(cfish_Vector *)' {aka 'long unsigned int (*)(cfish_Vector *)'} [-Wcast-function-type]
  465 |     const CFISH_Vec_Get_Capacity_t method = (CFISH_Vec_Get_Capacity_t)cfish_obj_method(self, CFISH_Vec_Get_Capacity_OFFSET);
      |                                             ^
autogen/include/Clownfish/Vector.h: In function 'CFISH_Vec_Slice':
autogen/include/Clownfish/Vector.h:476:38: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Vector * (*)(cfish_Vector *, size_t,  size_t)' {aka 'cfish_Vector * (*)(cfish_Vector *, long unsigned int,  long unsigned int)'} [-Wcast-function-type]
  476 |     const CFISH_Vec_Slice_t method = (CFISH_Vec_Slice_t)cfish_obj_method(self, CFISH_Vec_Slice_OFFSET);
      |                                      ^
In file included from /usr/lib64/perl5/CORE/perl.h:46,
                 from xs/XSBind.h:37:
/usr/lib64/perl5/CORE/thread.h: At top level:
/usr/lib64/perl5/CORE/config.h:5222:27: warning: ISO C99 does not support '_Thread_local' [-Wpedantic]
 5222 | #define PERL_THREAD_LOCAL _Thread_local /**/
      |                           ^~~~~~~~~~~~~
/usr/lib64/perl5/CORE/thread.h:404:8: note: in expansion of macro 'PERL_THREAD_LOCAL'
  404 | extern PERL_THREAD_LOCAL void *PL_current_context;
      |        ^~~~~~~~~~~~~~~~~
In file included from autogen/include/Clownfish/Test/TestCharBuf.h:40,
                 from autogen/source/testcfish_perl.c:33:
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_Host':
autogen/include/Clownfish/TestHarness/TestBatch.h:131:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(cfish_TestBatch *, void *)' [-Wcast-function-type]
  131 |     const CFISH_TestBatch_To_Host_t method = (CFISH_TestBatch_To_Host_t)cfish_obj_method(self, CFISH_TestBatch_To_Host_OFFSET);
      |                                              ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Clone':
autogen/include/Clownfish/TestHarness/TestBatch.h:138:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  138 |     const CFISH_TestBatch_Clone_t method = (CFISH_TestBatch_Clone_t)cfish_obj_method(self, CFISH_TestBatch_Clone_OFFSET);
      |                                            ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Equals':
autogen/include/Clownfish/TestHarness/TestBatch.h:145:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(cfish_TestBatch *, cfish_Obj *)' [-Wcast-function-type]
  145 |     const CFISH_TestBatch_Equals_t method = (CFISH_TestBatch_Equals_t)cfish_obj_method(self, CFISH_TestBatch_Equals_OFFSET);
      |                                             ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Compare_To':
autogen/include/Clownfish/TestHarness/TestBatch.h:152:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(cfish_TestBatch *, cfish_Obj *)' {aka 'int (*)(cfish_TestBatch *, cfish_Obj *)'} [-Wcast-function-type]
  152 |     const CFISH_TestBatch_Compare_To_t method = (CFISH_TestBatch_Compare_To_t)cfish_obj_method(self, CFISH_TestBatch_Compare_To_OFFSET);
      |                                                 ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_To_String':
autogen/include/Clownfish/TestHarness/TestBatch.h:166:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(cfish_TestBatch *)' [-Wcast-function-type]
  166 |     const CFISH_TestBatch_To_String_t method = (CFISH_TestBatch_To_String_t)cfish_obj_method(self, CFISH_TestBatch_To_String_OFFSET);
      |                                                ^
autogen/include/Clownfish/TestHarness/TestBatch.h: In function 'CFISH_TestBatch_Run':
autogen/include/Clownfish/TestHarness/TestBatch.h:173:42: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(cfish_TestBatch *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  173 |     const CFISH_TestBatch_Run_t method = (CFISH_TestBatch_Run_t)cfish_obj_method(self, CFISH_TestBatch_Run_OFFSET);
      |                                          ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_To_Host':
autogen/include/Clownfish/Test/TestCharBuf.h:130:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestCharBuf *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestCB_To_Host_t method = (TESTCFISH_TestCB_To_Host_t)cfish_obj_method(self, TESTCFISH_TestCB_To_Host_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Clone':
autogen/include/Clownfish/Test/TestCharBuf.h:137:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestCharBuf *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestCB_Clone_t method = (TESTCFISH_TestCB_Clone_t)cfish_obj_method(self, TESTCFISH_TestCB_Clone_OFFSET);
      |                                             ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Equals':
autogen/include/Clownfish/Test/TestCharBuf.h:144:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestCharBuf *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestCB_Equals_t method = (TESTCFISH_TestCB_Equals_t)cfish_obj_method(self, TESTCFISH_TestCB_Equals_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Compare_To':
autogen/include/Clownfish/Test/TestCharBuf.h:151:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestCharBuf *, cfish_Obj *)' {aka 'int (*)(testcfish_TestCharBuf *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestCB_Compare_To_t method = (TESTCFISH_TestCB_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestCB_Compare_To_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_To_String':
autogen/include/Clownfish/Test/TestCharBuf.h:165:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestCharBuf *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestCB_To_String_t method = (TESTCFISH_TestCB_To_String_t)cfish_obj_method(self, TESTCFISH_TestCB_To_String_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestCharBuf.h: In function 'TESTCFISH_TestCB_Run':
autogen/include/Clownfish/Test/TestCharBuf.h:172:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestCharBuf *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestCB_Run_t method = (TESTCFISH_TestCB_Run_t)cfish_obj_method(self, TESTCFISH_TestCB_Run_OFFSET);
      |                                           ^
In file included from autogen/source/testcfish_perl.c:34:
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_To_Host':
autogen/include/Clownfish/Test/Util/TestMemory.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestMemory *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestMemory_To_Host_t method = (TESTCFISH_TestMemory_To_Host_t)cfish_obj_method(self, TESTCFISH_TestMemory_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Clone':
autogen/include/Clownfish/Test/Util/TestMemory.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestMemory *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestMemory_Clone_t method = (TESTCFISH_TestMemory_Clone_t)cfish_obj_method(self, TESTCFISH_TestMemory_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Equals':
autogen/include/Clownfish/Test/Util/TestMemory.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestMemory *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestMemory_Equals_t method = (TESTCFISH_TestMemory_Equals_t)cfish_obj_method(self, TESTCFISH_TestMemory_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Compare_To':
autogen/include/Clownfish/Test/Util/TestMemory.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestMemory *, cfish_Obj *)' {aka 'int (*)(testcfish_TestMemory *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestMemory_Compare_To_t method = (TESTCFISH_TestMemory_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestMemory_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_To_String':
autogen/include/Clownfish/Test/Util/TestMemory.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestMemory *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestMemory_To_String_t method = (TESTCFISH_TestMemory_To_String_t)cfish_obj_method(self, TESTCFISH_TestMemory_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/Util/TestMemory.h: In function 'TESTCFISH_TestMemory_Run':
autogen/include/Clownfish/Test/Util/TestMemory.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestMemory *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestMemory_Run_t method = (TESTCFISH_TestMemory_Run_t)cfish_obj_method(self, TESTCFISH_TestMemory_Run_OFFSET);
      |                                               ^
In file included from autogen/source/testcfish_perl.c:35:
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_To_Host':
autogen/include/Clownfish/Test/Util/TestAtomic.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestAtomic *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestAtomic_To_Host_t method = (TESTCFISH_TestAtomic_To_Host_t)cfish_obj_method(self, TESTCFISH_TestAtomic_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Clone':
autogen/include/Clownfish/Test/Util/TestAtomic.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestAtomic *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestAtomic_Clone_t method = (TESTCFISH_TestAtomic_Clone_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Equals':
autogen/include/Clownfish/Test/Util/TestAtomic.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestAtomic *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestAtomic_Equals_t method = (TESTCFISH_TestAtomic_Equals_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Compare_To':
autogen/include/Clownfish/Test/Util/TestAtomic.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestAtomic *, cfish_Obj *)' {aka 'int (*)(testcfish_TestAtomic *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestAtomic_Compare_To_t method = (TESTCFISH_TestAtomic_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_To_String':
autogen/include/Clownfish/Test/Util/TestAtomic.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestAtomic *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestAtomic_To_String_t method = (TESTCFISH_TestAtomic_To_String_t)cfish_obj_method(self, TESTCFISH_TestAtomic_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/Util/TestAtomic.h: In function 'TESTCFISH_TestAtomic_Run':
autogen/include/Clownfish/Test/Util/TestAtomic.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestAtomic *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestAtomic_Run_t method = (TESTCFISH_TestAtomic_Run_t)cfish_obj_method(self, TESTCFISH_TestAtomic_Run_OFFSET);
      |                                               ^
In file included from autogen/source/testcfish_perl.c:36:
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_To_Host':
autogen/include/Clownfish/Test/TestString.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestString *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestStr_To_Host_t method = (TESTCFISH_TestStr_To_Host_t)cfish_obj_method(self, TESTCFISH_TestStr_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Clone':
autogen/include/Clownfish/Test/TestString.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestString *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestStr_Clone_t method = (TESTCFISH_TestStr_Clone_t)cfish_obj_method(self, TESTCFISH_TestStr_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Equals':
autogen/include/Clownfish/Test/TestString.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestString *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestStr_Equals_t method = (TESTCFISH_TestStr_Equals_t)cfish_obj_method(self, TESTCFISH_TestStr_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Compare_To':
autogen/include/Clownfish/Test/TestString.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestString *, cfish_Obj *)' {aka 'int (*)(testcfish_TestString *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestStr_Compare_To_t method = (TESTCFISH_TestStr_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestStr_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_To_String':
autogen/include/Clownfish/Test/TestString.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestString *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestStr_To_String_t method = (TESTCFISH_TestStr_To_String_t)cfish_obj_method(self, TESTCFISH_TestStr_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_TestStr_Run':
autogen/include/Clownfish/Test/TestString.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestString *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestStr_Run_t method = (TESTCFISH_TestStr_Run_t)cfish_obj_method(self, TESTCFISH_TestStr_Run_OFFSET);
      |                                            ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_To_Host':
autogen/include/Clownfish/Test/TestString.h:311:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_StringCallbackTest *, void *)' [-Wcast-function-type]
  311 |     const TESTCFISH_StrCbTest_To_Host_t method = (TESTCFISH_StrCbTest_To_Host_t)cfish_obj_method(self, TESTCFISH_StrCbTest_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Clone':
autogen/include/Clownfish/Test/TestString.h:318:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_StringCallbackTest *)' [-Wcast-function-type]
  318 |     const TESTCFISH_StrCbTest_Clone_t method = (TESTCFISH_StrCbTest_Clone_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Equals':
autogen/include/Clownfish/Test/TestString.h:325:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_StringCallbackTest *, cfish_Obj *)' [-Wcast-function-type]
  325 |     const TESTCFISH_StrCbTest_Equals_t method = (TESTCFISH_StrCbTest_Equals_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Compare_To':
autogen/include/Clownfish/Test/TestString.h:332:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_StringCallbackTest *, cfish_Obj *)' {aka 'int (*)(testcfish_StringCallbackTest *, cfish_Obj *)'} [-Wcast-function-type]
  332 |     const TESTCFISH_StrCbTest_Compare_To_t method = (TESTCFISH_StrCbTest_Compare_To_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_To_String':
autogen/include/Clownfish/Test/TestString.h:346:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_StringCallbackTest *)' [-Wcast-function-type]
  346 |     const TESTCFISH_StrCbTest_To_String_t method = (TESTCFISH_StrCbTest_To_String_t)cfish_obj_method(self, TESTCFISH_StrCbTest_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestString.h: In function 'TESTCFISH_StrCbTest_Unchanged_By_Callback':
autogen/include/Clownfish/Test/TestString.h:353:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_StringCallbackTest *, cfish_String *)' [-Wcast-function-type]
  353 |     const TESTCFISH_StrCbTest_Unchanged_By_Callback_t method = (TESTCFISH_StrCbTest_Unchanged_By_Callback_t)cfish_obj_method(self, TESTCFISH_StrCbTest_Unchanged_By_Callback_OFFSET);
      |                                                                ^
In file included from autogen/source/testcfish_perl.c:37:
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_To_Host':
autogen/include/Clownfish/Test/TestHash.h:130:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHash *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestHash_To_Host_t method = (TESTCFISH_TestHash_To_Host_t)cfish_obj_method(self, TESTCFISH_TestHash_To_Host_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Clone':
autogen/include/Clownfish/Test/TestHash.h:137:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHash *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestHash_Clone_t method = (TESTCFISH_TestHash_Clone_t)cfish_obj_method(self, TESTCFISH_TestHash_Clone_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Equals':
autogen/include/Clownfish/Test/TestHash.h:144:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHash *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestHash_Equals_t method = (TESTCFISH_TestHash_Equals_t)cfish_obj_method(self, TESTCFISH_TestHash_Equals_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Compare_To':
autogen/include/Clownfish/Test/TestHash.h:151:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHash *, cfish_Obj *)' {aka 'int (*)(testcfish_TestHash *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestHash_Compare_To_t method = (TESTCFISH_TestHash_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestHash_Compare_To_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_To_String':
autogen/include/Clownfish/Test/TestHash.h:165:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHash *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestHash_To_String_t method = (TESTCFISH_TestHash_To_String_t)cfish_obj_method(self, TESTCFISH_TestHash_To_String_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestHash.h: In function 'TESTCFISH_TestHash_Run':
autogen/include/Clownfish/Test/TestHash.h:172:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestHash *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestHash_Run_t method = (TESTCFISH_TestHash_Run_t)cfish_obj_method(self, TESTCFISH_TestHash_Run_OFFSET);
      |                                             ^
In file included from autogen/source/testcfish_perl.c:38:
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_To_Host':
autogen/include/Clownfish/Test/TestErr.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestErr *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestErr_To_Host_t method = (TESTCFISH_TestErr_To_Host_t)cfish_obj_method(self, TESTCFISH_TestErr_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Clone':
autogen/include/Clownfish/Test/TestErr.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestErr *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestErr_Clone_t method = (TESTCFISH_TestErr_Clone_t)cfish_obj_method(self, TESTCFISH_TestErr_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Equals':
autogen/include/Clownfish/Test/TestErr.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestErr *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestErr_Equals_t method = (TESTCFISH_TestErr_Equals_t)cfish_obj_method(self, TESTCFISH_TestErr_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Compare_To':
autogen/include/Clownfish/Test/TestErr.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestErr *, cfish_Obj *)' {aka 'int (*)(testcfish_TestErr *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestErr_Compare_To_t method = (TESTCFISH_TestErr_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestErr_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_To_String':
autogen/include/Clownfish/Test/TestErr.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestErr *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestErr_To_String_t method = (TESTCFISH_TestErr_To_String_t)cfish_obj_method(self, TESTCFISH_TestErr_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestErr.h: In function 'TESTCFISH_TestErr_Run':
autogen/include/Clownfish/Test/TestErr.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestErr *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestErr_Run_t method = (TESTCFISH_TestErr_Run_t)cfish_obj_method(self, TESTCFISH_TestErr_Run_OFFSET);
      |                                            ^
In file included from autogen/source/testcfish_perl.c:39:
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_To_Host':
autogen/include/Clownfish/Test/TestMethod.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestMethod *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestMethod_To_Host_t method = (TESTCFISH_TestMethod_To_Host_t)cfish_obj_method(self, TESTCFISH_TestMethod_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Clone':
autogen/include/Clownfish/Test/TestMethod.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestMethod *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestMethod_Clone_t method = (TESTCFISH_TestMethod_Clone_t)cfish_obj_method(self, TESTCFISH_TestMethod_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Equals':
autogen/include/Clownfish/Test/TestMethod.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestMethod *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestMethod_Equals_t method = (TESTCFISH_TestMethod_Equals_t)cfish_obj_method(self, TESTCFISH_TestMethod_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Compare_To':
autogen/include/Clownfish/Test/TestMethod.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestMethod *, cfish_Obj *)' {aka 'int (*)(testcfish_TestMethod *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestMethod_Compare_To_t method = (TESTCFISH_TestMethod_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestMethod_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_To_String':
autogen/include/Clownfish/Test/TestMethod.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestMethod *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestMethod_To_String_t method = (TESTCFISH_TestMethod_To_String_t)cfish_obj_method(self, TESTCFISH_TestMethod_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestMethod.h: In function 'TESTCFISH_TestMethod_Run':
autogen/include/Clownfish/Test/TestMethod.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestMethod *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestMethod_Run_t method = (TESTCFISH_TestMethod_Run_t)cfish_obj_method(self, TESTCFISH_TestMethod_Run_OFFSET);
      |                                               ^
In file included from autogen/source/testcfish_perl.c:40:
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_To_Host':
autogen/include/Clownfish/Test/TestObj.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestObj *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestObj_To_Host_t method = (TESTCFISH_TestObj_To_Host_t)cfish_obj_method(self, TESTCFISH_TestObj_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Clone':
autogen/include/Clownfish/Test/TestObj.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestObj *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestObj_Clone_t method = (TESTCFISH_TestObj_Clone_t)cfish_obj_method(self, TESTCFISH_TestObj_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Equals':
autogen/include/Clownfish/Test/TestObj.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestObj *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestObj_Equals_t method = (TESTCFISH_TestObj_Equals_t)cfish_obj_method(self, TESTCFISH_TestObj_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Compare_To':
autogen/include/Clownfish/Test/TestObj.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestObj *, cfish_Obj *)' {aka 'int (*)(testcfish_TestObj *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestObj_Compare_To_t method = (TESTCFISH_TestObj_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestObj_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_To_String':
autogen/include/Clownfish/Test/TestObj.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestObj *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestObj_To_String_t method = (TESTCFISH_TestObj_To_String_t)cfish_obj_method(self, TESTCFISH_TestObj_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestObj.h: In function 'TESTCFISH_TestObj_Run':
autogen/include/Clownfish/Test/TestObj.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestObj *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestObj_Run_t method = (TESTCFISH_TestObj_Run_t)cfish_obj_method(self, TESTCFISH_TestObj_Run_OFFSET);
      |                                            ^
In file included from autogen/source/testcfish_perl.c:41:
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_To_Host':
autogen/include/Clownfish/Test/TestHashIterator.h:130:57: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHashIterator *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestHashIterator_To_Host_t method = (TESTCFISH_TestHashIterator_To_Host_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_To_Host_OFFSET);
      |                                                         ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Clone':
autogen/include/Clownfish/Test/TestHashIterator.h:137:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHashIterator *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestHashIterator_Clone_t method = (TESTCFISH_TestHashIterator_Clone_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Clone_OFFSET);
      |                                                       ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Equals':
autogen/include/Clownfish/Test/TestHashIterator.h:144:56: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHashIterator *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestHashIterator_Equals_t method = (TESTCFISH_TestHashIterator_Equals_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Equals_OFFSET);
      |                                                        ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Compare_To':
autogen/include/Clownfish/Test/TestHashIterator.h:151:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHashIterator *, cfish_Obj *)' {aka 'int (*)(testcfish_TestHashIterator *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestHashIterator_Compare_To_t method = (TESTCFISH_TestHashIterator_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Compare_To_OFFSET);
      |                                                            ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_To_String':
autogen/include/Clownfish/Test/TestHashIterator.h:165:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHashIterator *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestHashIterator_To_String_t method = (TESTCFISH_TestHashIterator_To_String_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_To_String_OFFSET);
      |                                                           ^
autogen/include/Clownfish/Test/TestHashIterator.h: In function 'TESTCFISH_TestHashIterator_Run':
autogen/include/Clownfish/Test/TestHashIterator.h:172:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestHashIterator *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestHashIterator_Run_t method = (TESTCFISH_TestHashIterator_Run_t)cfish_obj_method(self, TESTCFISH_TestHashIterator_Run_OFFSET);
      |                                                     ^
In file included from autogen/source/testcfish_perl.c:42:
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_To_Host':
autogen/include/Clownfish/Test/TestBlob.h:130:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestBlob *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestBlob_To_Host_t method = (TESTCFISH_TestBlob_To_Host_t)cfish_obj_method(self, TESTCFISH_TestBlob_To_Host_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Clone':
autogen/include/Clownfish/Test/TestBlob.h:137:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestBlob *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestBlob_Clone_t method = (TESTCFISH_TestBlob_Clone_t)cfish_obj_method(self, TESTCFISH_TestBlob_Clone_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Equals':
autogen/include/Clownfish/Test/TestBlob.h:144:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestBlob *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestBlob_Equals_t method = (TESTCFISH_TestBlob_Equals_t)cfish_obj_method(self, TESTCFISH_TestBlob_Equals_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Compare_To':
autogen/include/Clownfish/Test/TestBlob.h:151:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestBlob *, cfish_Obj *)' {aka 'int (*)(testcfish_TestBlob *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestBlob_Compare_To_t method = (TESTCFISH_TestBlob_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestBlob_Compare_To_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_To_String':
autogen/include/Clownfish/Test/TestBlob.h:165:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestBlob *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestBlob_To_String_t method = (TESTCFISH_TestBlob_To_String_t)cfish_obj_method(self, TESTCFISH_TestBlob_To_String_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestBlob.h: In function 'TESTCFISH_TestBlob_Run':
autogen/include/Clownfish/Test/TestBlob.h:172:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestBlob *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestBlob_Run_t method = (TESTCFISH_TestBlob_Run_t)cfish_obj_method(self, TESTCFISH_TestBlob_Run_OFFSET);
      |                                             ^
In file included from autogen/source/testcfish_perl.c:43:
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_To_Host':
autogen/include/Clownfish/Test/TestNum.h:130:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestNum *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestNum_To_Host_t method = (TESTCFISH_TestNum_To_Host_t)cfish_obj_method(self, TESTCFISH_TestNum_To_Host_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Clone':
autogen/include/Clownfish/Test/TestNum.h:137:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestNum *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestNum_Clone_t method = (TESTCFISH_TestNum_Clone_t)cfish_obj_method(self, TESTCFISH_TestNum_Clone_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Equals':
autogen/include/Clownfish/Test/TestNum.h:144:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestNum *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestNum_Equals_t method = (TESTCFISH_TestNum_Equals_t)cfish_obj_method(self, TESTCFISH_TestNum_Equals_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Compare_To':
autogen/include/Clownfish/Test/TestNum.h:151:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestNum *, cfish_Obj *)' {aka 'int (*)(testcfish_TestNum *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestNum_Compare_To_t method = (TESTCFISH_TestNum_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestNum_Compare_To_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_To_String':
autogen/include/Clownfish/Test/TestNum.h:165:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestNum *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestNum_To_String_t method = (TESTCFISH_TestNum_To_String_t)cfish_obj_method(self, TESTCFISH_TestNum_To_String_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestNum.h: In function 'TESTCFISH_TestNum_Run':
autogen/include/Clownfish/Test/TestNum.h:172:44: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestNum *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestNum_Run_t method = (TESTCFISH_TestNum_Run_t)cfish_obj_method(self, TESTCFISH_TestNum_Run_OFFSET);
      |                                            ^
In file included from autogen/source/testcfish_perl.c:44:
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_To_Host':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:130:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestLockFreeRegistry *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestLFReg_To_Host_t method = (TESTCFISH_TestLFReg_To_Host_t)cfish_obj_method(self, TESTCFISH_TestLFReg_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Clone':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:137:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestLockFreeRegistry *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestLFReg_Clone_t method = (TESTCFISH_TestLFReg_Clone_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Equals':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:144:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestLockFreeRegistry *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestLFReg_Equals_t method = (TESTCFISH_TestLFReg_Equals_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Compare_To':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:151:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestLockFreeRegistry *, cfish_Obj *)' {aka 'int (*)(testcfish_TestLockFreeRegistry *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestLFReg_Compare_To_t method = (TESTCFISH_TestLFReg_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_To_String':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:165:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestLockFreeRegistry *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestLFReg_To_String_t method = (TESTCFISH_TestLFReg_To_String_t)cfish_obj_method(self, TESTCFISH_TestLFReg_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestLockFreeRegistry.h: In function 'TESTCFISH_TestLFReg_Run':
autogen/include/Clownfish/Test/TestLockFreeRegistry.h:172:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestLockFreeRegistry *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestLFReg_Run_t method = (TESTCFISH_TestLFReg_Run_t)cfish_obj_method(self, TESTCFISH_TestLFReg_Run_OFFSET);
      |                                              ^
In file included from autogen/source/testcfish_perl.c:45:
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_To_Host':
autogen/include/Clownfish/Test/TestClass.h:130:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestClass *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestClass_To_Host_t method = (TESTCFISH_TestClass_To_Host_t)cfish_obj_method(self, TESTCFISH_TestClass_To_Host_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Clone':
autogen/include/Clownfish/Test/TestClass.h:137:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestClass *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestClass_Clone_t method = (TESTCFISH_TestClass_Clone_t)cfish_obj_method(self, TESTCFISH_TestClass_Clone_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Equals':
autogen/include/Clownfish/Test/TestClass.h:144:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestClass *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestClass_Equals_t method = (TESTCFISH_TestClass_Equals_t)cfish_obj_method(self, TESTCFISH_TestClass_Equals_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Compare_To':
autogen/include/Clownfish/Test/TestClass.h:151:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestClass *, cfish_Obj *)' {aka 'int (*)(testcfish_TestClass *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestClass_Compare_To_t method = (TESTCFISH_TestClass_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestClass_Compare_To_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_To_String':
autogen/include/Clownfish/Test/TestClass.h:165:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestClass *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestClass_To_String_t method = (TESTCFISH_TestClass_To_String_t)cfish_obj_method(self, TESTCFISH_TestClass_To_String_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestClass.h: In function 'TESTCFISH_TestClass_Run':
autogen/include/Clownfish/Test/TestClass.h:172:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestClass *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestClass_Run_t method = (TESTCFISH_TestClass_Run_t)cfish_obj_method(self, TESTCFISH_TestClass_Run_OFFSET);
      |                                              ^
In file included from autogen/source/testcfish_perl.c:46:
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_To_Host':
autogen/include/Clownfish/Test/TestVector.h:130:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestVector *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestVector_To_Host_t method = (TESTCFISH_TestVector_To_Host_t)cfish_obj_method(self, TESTCFISH_TestVector_To_Host_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Clone':
autogen/include/Clownfish/Test/TestVector.h:137:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestVector *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestVector_Clone_t method = (TESTCFISH_TestVector_Clone_t)cfish_obj_method(self, TESTCFISH_TestVector_Clone_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Equals':
autogen/include/Clownfish/Test/TestVector.h:144:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestVector *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestVector_Equals_t method = (TESTCFISH_TestVector_Equals_t)cfish_obj_method(self, TESTCFISH_TestVector_Equals_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Compare_To':
autogen/include/Clownfish/Test/TestVector.h:151:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestVector *, cfish_Obj *)' {aka 'int (*)(testcfish_TestVector *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestVector_Compare_To_t method = (TESTCFISH_TestVector_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestVector_Compare_To_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_To_String':
autogen/include/Clownfish/Test/TestVector.h:165:53: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestVector *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestVector_To_String_t method = (TESTCFISH_TestVector_To_String_t)cfish_obj_method(self, TESTCFISH_TestVector_To_String_OFFSET);
      |                                                     ^
autogen/include/Clownfish/Test/TestVector.h: In function 'TESTCFISH_TestVector_Run':
autogen/include/Clownfish/Test/TestVector.h:172:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestVector *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestVector_Run_t method = (TESTCFISH_TestVector_Run_t)cfish_obj_method(self, TESTCFISH_TestVector_Run_OFFSET);
      |                                               ^
In file included from autogen/source/testcfish_perl.c:47:
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_To_Host':
autogen/include/Clownfish/Test/TestPtrHash.h:130:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestPtrHash *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestPtrHash_To_Host_t method = (TESTCFISH_TestPtrHash_To_Host_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Clone':
autogen/include/Clownfish/Test/TestPtrHash.h:137:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestPtrHash *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestPtrHash_Clone_t method = (TESTCFISH_TestPtrHash_Clone_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Equals':
autogen/include/Clownfish/Test/TestPtrHash.h:144:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestPtrHash *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestPtrHash_Equals_t method = (TESTCFISH_TestPtrHash_Equals_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Compare_To':
autogen/include/Clownfish/Test/TestPtrHash.h:151:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestPtrHash *, cfish_Obj *)' {aka 'int (*)(testcfish_TestPtrHash *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestPtrHash_Compare_To_t method = (TESTCFISH_TestPtrHash_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_To_String':
autogen/include/Clownfish/Test/TestPtrHash.h:165:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestPtrHash *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestPtrHash_To_String_t method = (TESTCFISH_TestPtrHash_To_String_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestPtrHash.h: In function 'TESTCFISH_TestPtrHash_Run':
autogen/include/Clownfish/Test/TestPtrHash.h:172:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestPtrHash *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestPtrHash_Run_t method = (TESTCFISH_TestPtrHash_Run_t)cfish_obj_method(self, TESTCFISH_TestPtrHash_Run_OFFSET);
      |                                                ^
In file included from autogen/source/testcfish_perl.c:48:
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_To_Host':
autogen/include/Clownfish/Test/TestByteBuf.h:130:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestByteBuf *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestBB_To_Host_t method = (TESTCFISH_TestBB_To_Host_t)cfish_obj_method(self, TESTCFISH_TestBB_To_Host_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Clone':
autogen/include/Clownfish/Test/TestByteBuf.h:137:45: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestByteBuf *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestBB_Clone_t method = (TESTCFISH_TestBB_Clone_t)cfish_obj_method(self, TESTCFISH_TestBB_Clone_OFFSET);
      |                                             ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Equals':
autogen/include/Clownfish/Test/TestByteBuf.h:144:46: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestByteBuf *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestBB_Equals_t method = (TESTCFISH_TestBB_Equals_t)cfish_obj_method(self, TESTCFISH_TestBB_Equals_OFFSET);
      |                                              ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Compare_To':
autogen/include/Clownfish/Test/TestByteBuf.h:151:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestByteBuf *, cfish_Obj *)' {aka 'int (*)(testcfish_TestByteBuf *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestBB_Compare_To_t method = (TESTCFISH_TestBB_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestBB_Compare_To_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_To_String':
autogen/include/Clownfish/Test/TestByteBuf.h:165:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestByteBuf *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestBB_To_String_t method = (TESTCFISH_TestBB_To_String_t)cfish_obj_method(self, TESTCFISH_TestBB_To_String_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestByteBuf.h: In function 'TESTCFISH_TestBB_Run':
autogen/include/Clownfish/Test/TestByteBuf.h:172:43: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestByteBuf *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestBB_Run_t method = (TESTCFISH_TestBB_Run_t)cfish_obj_method(self, TESTCFISH_TestBB_Run_OFFSET);
      |                                           ^
In file included from autogen/source/testcfish_perl.c:49:
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_To_Host':
autogen/include/Clownfish/Test/TestBoolean.h:130:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestBoolean *, void *)' [-Wcast-function-type]
  130 |     const TESTCFISH_TestBoolean_To_Host_t method = (TESTCFISH_TestBoolean_To_Host_t)cfish_obj_method(self, TESTCFISH_TestBoolean_To_Host_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Clone':
autogen/include/Clownfish/Test/TestBoolean.h:137:50: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestBoolean *)' [-Wcast-function-type]
  137 |     const TESTCFISH_TestBoolean_Clone_t method = (TESTCFISH_TestBoolean_Clone_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Clone_OFFSET);
      |                                                  ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Equals':
autogen/include/Clownfish/Test/TestBoolean.h:144:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestBoolean *, cfish_Obj *)' [-Wcast-function-type]
  144 |     const TESTCFISH_TestBoolean_Equals_t method = (TESTCFISH_TestBoolean_Equals_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Equals_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Compare_To':
autogen/include/Clownfish/Test/TestBoolean.h:151:55: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestBoolean *, cfish_Obj *)' {aka 'int (*)(testcfish_TestBoolean *, cfish_Obj *)'} [-Wcast-function-type]
  151 |     const TESTCFISH_TestBoolean_Compare_To_t method = (TESTCFISH_TestBoolean_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Compare_To_OFFSET);
      |                                                       ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_To_String':
autogen/include/Clownfish/Test/TestBoolean.h:165:54: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestBoolean *)' [-Wcast-function-type]
  165 |     const TESTCFISH_TestBoolean_To_String_t method = (TESTCFISH_TestBoolean_To_String_t)cfish_obj_method(self, TESTCFISH_TestBoolean_To_String_OFFSET);
      |                                                      ^
autogen/include/Clownfish/Test/TestBoolean.h: In function 'TESTCFISH_TestBoolean_Run':
autogen/include/Clownfish/Test/TestBoolean.h:172:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void (*)(testcfish_TestBoolean *, cfish_TestBatchRunner *)' [-Wcast-function-type]
  172 |     const TESTCFISH_TestBoolean_Run_t method = (TESTCFISH_TestBoolean_Run_t)cfish_obj_method(self, TESTCFISH_TestBoolean_Run_OFFSET);
      |                                                ^
In file included from autogen/source/testcfish_perl.c:50:
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_To_Host':
autogen/include/Clownfish/Test/TestHost.h:220:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHost *, void *)' [-Wcast-function-type]
  220 |     const TESTCFISH_TestHost_To_Host_t method = (TESTCFISH_TestHost_To_Host_t)cfish_obj_method(self, TESTCFISH_TestHost_To_Host_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Clone':
autogen/include/Clownfish/Test/TestHost.h:227:47: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  227 |     const TESTCFISH_TestHost_Clone_t method = (TESTCFISH_TestHost_Clone_t)cfish_obj_method(self, TESTCFISH_TestHost_Clone_OFFSET);
      |                                               ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Equals':
autogen/include/Clownfish/Test/TestHost.h:234:48: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, cfish_Obj *)' [-Wcast-function-type]
  234 |     const TESTCFISH_TestHost_Equals_t method = (TESTCFISH_TestHost_Equals_t)cfish_obj_method(self, TESTCFISH_TestHost_Equals_OFFSET);
      |                                                ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Compare_To':
autogen/include/Clownfish/Test/TestHost.h:241:52: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, cfish_Obj *)' {aka 'int (*)(testcfish_TestHost *, cfish_Obj *)'} [-Wcast-function-type]
  241 |     const TESTCFISH_TestHost_Compare_To_t method = (TESTCFISH_TestHost_Compare_To_t)cfish_obj_method(self, TESTCFISH_TestHost_Compare_To_OFFSET);
      |                                                    ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_To_String':
autogen/include/Clownfish/Test/TestHost.h:255:51: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  255 |     const TESTCFISH_TestHost_To_String_t method = (TESTCFISH_TestHost_To_String_t)cfish_obj_method(self, TESTCFISH_TestHost_To_String_OFFSET);
      |                                                   ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Obj_Pos_Arg':
autogen/include/Clownfish/Test/TestHost.h:262:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *)' [-Wcast-function-type]
  262 |     const TESTCFISH_TestHost_Test_Obj_Pos_Arg_t method = (TESTCFISH_TestHost_Test_Obj_Pos_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Obj_Pos_Arg_OFFSET);
      |                                                          ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:269:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *)' [-Wcast-function-type]
  269 |     const TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def_t method = (TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def_OFFSET);
      |                                                              ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Obj_Label_Arg':
autogen/include/Clownfish/Test/TestHost.h:276:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *, _Bool)' [-Wcast-function-type]
  276 |     const TESTCFISH_TestHost_Test_Obj_Label_Arg_t method = (TESTCFISH_TestHost_Test_Obj_Label_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Obj_Label_Arg_OFFSET);
      |                                                            ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Obj_Label_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:283:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_Obj * (*)(testcfish_TestHost *, cfish_Obj *, _Bool)' [-Wcast-function-type]
  283 |     const TESTCFISH_TestHost_Test_Obj_Label_Arg_Def_t method = (TESTCFISH_TestHost_Test_Obj_Label_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Obj_Label_Arg_Def_OFFSET);
      |                                                                ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Int32_Pos_Arg':
autogen/include/Clownfish/Test/TestHost.h:290:60: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, int32_t)' {aka 'int (*)(testcfish_TestHost *, int)'} [-Wcast-function-type]
  290 |     const TESTCFISH_TestHost_Test_Int32_Pos_Arg_t method = (TESTCFISH_TestHost_Test_Int32_Pos_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Int32_Pos_Arg_OFFSET);
      |                                                            ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:297:64: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, int32_t)' {aka 'int (*)(testcfish_TestHost *, int)'} [-Wcast-function-type]
  297 |     const TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def_t method = (TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def_OFFSET);
      |                                                                ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Int32_Label_Arg':
autogen/include/Clownfish/Test/TestHost.h:304:62: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, int32_t,  _Bool)' {aka 'int (*)(testcfish_TestHost *, int,  _Bool)'} [-Wcast-function-type]
  304 |     const TESTCFISH_TestHost_Test_Int32_Label_Arg_t method = (TESTCFISH_TestHost_Test_Int32_Label_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Int32_Label_Arg_OFFSET);
      |                                                              ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Int32_Label_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:311:66: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'int32_t (*)(testcfish_TestHost *, int32_t,  _Bool)' {aka 'int (*)(testcfish_TestHost *, int,  _Bool)'} [-Wcast-function-type]
  311 |     const TESTCFISH_TestHost_Test_Int32_Label_Arg_Def_t method = (TESTCFISH_TestHost_Test_Int32_Label_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Int32_Label_Arg_Def_OFFSET);
      |                                                                  ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Bool_Pos_Arg':
autogen/include/Clownfish/Test/TestHost.h:318:59: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, _Bool)' [-Wcast-function-type]
  318 |     const TESTCFISH_TestHost_Test_Bool_Pos_Arg_t method = (TESTCFISH_TestHost_Test_Bool_Pos_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Bool_Pos_Arg_OFFSET);
      |                                                           ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:325:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, _Bool)' [-Wcast-function-type]
  325 |     const TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def_t method = (TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def_OFFSET);
      |                                                               ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Bool_Label_Arg':
autogen/include/Clownfish/Test/TestHost.h:332:61: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, _Bool,  _Bool)' [-Wcast-function-type]
  332 |     const TESTCFISH_TestHost_Test_Bool_Label_Arg_t method = (TESTCFISH_TestHost_Test_Bool_Label_Arg_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Bool_Label_Arg_OFFSET);
      |                                                             ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Test_Bool_Label_Arg_Def':
autogen/include/Clownfish/Test/TestHost.h:339:65: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to '_Bool (*)(testcfish_TestHost *, _Bool,  _Bool)' [-Wcast-function-type]
  339 |     const TESTCFISH_TestHost_Test_Bool_Label_Arg_Def_t method = (TESTCFISH_TestHost_Test_Bool_Label_Arg_Def_t)cfish_obj_method(self, TESTCFISH_TestHost_Test_Bool_Label_Arg_Def_OFFSET);
      |                                                                 ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Invalid_Callback':
autogen/include/Clownfish/Test/TestHost.h:346:58: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'void * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  346 |     const TESTCFISH_TestHost_Invalid_Callback_t method = (TESTCFISH_TestHost_Invalid_Callback_t)cfish_obj_method(self, TESTCFISH_TestHost_Invalid_Callback_OFFSET);
      |                                                          ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Aliased':
autogen/include/Clownfish/Test/TestHost.h:360:49: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  360 |     const TESTCFISH_TestHost_Aliased_t method = (TESTCFISH_TestHost_Aliased_t)cfish_obj_method(self, TESTCFISH_TestHost_Aliased_OFFSET);
      |                                                 ^
autogen/include/Clownfish/Test/TestHost.h: In function 'TESTCFISH_TestHost_Invoke_Aliased_From_C':
autogen/include/Clownfish/Test/TestHost.h:367:63: warning: cast between incompatible function types from 'cfish_method_t' {aka 'void (*)(const void *)'} to 'cfish_String * (*)(testcfish_TestHost *)' [-Wcast-function-type]
  367 |     const TESTCFISH_TestHost_Invoke_Aliased_From_C_t method = (TESTCFISH_TestHost_Invoke_Aliased_From_C_t)cfish_obj_method(self, TESTCFISH_TestHost_Invoke_Aliased_From_C_OFFSET);
      |                                                               ^
autogen/source/testcfish_perl.c: At top level:
autogen/source/testcfish_perl.c:108:1: warning: 'S_finish_callback_f64' defined but not used [-Wunused-function]
  108 | S_finish_callback_f64(pTHX_ const char *meth_name) {
      | ^~~~~~~~~~~~~~~~~~~~~
gcc -Icfcore -Ixs -I. -Iautogen/include -I/usr/lib64/perl5/CORE '-DVERSION="0.6.3"' '-DXS_VERSION="0.6.3"' -fPIC -c -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wformat '-Werror=format-security' '-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3' '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection '-fcf-protection=full' -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE '-D_FILE_OFFSET_BITS=64' -O2 -g -pipe -Wformat '-Werror=format-security' '-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3' '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection '-fcf-protection=full' -g -o lib/Clownfish/Test.o lib/Clownfish/Test.c
gcc -lpthread -shared -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-O1 '-Wl,--build-id=sha1' -Wl,--enable-new-dtags '-specs=/usr/lib/rpm/redhat/redhat-hardened-ld' -L/usr/local/lib -fstack-protector-strong -o blib/arch/auto/Clownfish/Test/Test.so lib/Clownfish/Test.o cftest/Clownfish/Test/TestBlob.o cftest/Clownfish/Test/TestHash.o cftest/Clownfish/Test/Util/TestAtomic.o cftest/Clownfish/Test/Util/TestMemory.o cftest/Clownfish/Test/TestVector.o cftest/Clownfish/Test/TestObj.o cftest/Clownfish/Test/TestErr.o cftest/Clownfish/Test/TestLockFreeRegistry.o cftest/Clownfish/Test/TestHashIterator.o cftest/Clownfish/Test/TestByteBuf.o cftest/Clownfish/Test/TestCharBuf.o cftest/Clownfish/Test/TestString.o cftest/Clownfish/Test/TestHost.o cftest/Clownfish/Test/TestMethod.o cftest/Clownfish/Test/TestBoolean.o cftest/Clownfish/Test/TestClass.o cftest/Clownfish/Test/TestNum.o cftest/Clownfish/Test/TestPtrHash.o cftest/Clownfish/Test.o cftest/TestClownfish.o autogen/source/testcfish_parcel.o autogen/source/testcfish_perl.o -lperl -l m
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%install): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.O4Pk1Y
+ umask 022
+ cd /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build
+ '[' 1 -eq 1 ']'
+ '[' /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT '!=' / ']'
+ rm -rf /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT
++ dirname /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT
+ mkdir -p /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build
+ mkdir /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT
+ CFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full'
+ export CFLAGS
+ CXXFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full'
+ export CXXFLAGS
+ FFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full '
+ export FFLAGS
+ FCFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none --cap-lints=warn'
+ export RUSTFLAGS
+ LDFLAGS='-Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--build-id=sha1 -Wl,--enable-new-dtags -specs=/usr/lib/rpm/redhat/redhat-hardened-ld'
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib64:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ cd Clownfish-0.6.3
+ '[' 1 -eq 1 ']'
+ ./Build install --destdir=/home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT
Building Clownfish
make core_objects
make: Nothing to be done for 'core_objects'.
make test_objects
make: Nothing to be done for 'test_objects'.
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/XSBind.h
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/parcel.json
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/parcel_perl.json
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/Err.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/Hash.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/Class.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/Blob.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/Method.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/String.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/Vector.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/ByteBuf.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/Obj.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/CharBuf.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/HashIterator.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/Num.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/Boolean.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/Util/SortUtils.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/Util/Memory.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/TestHarness/TestBatch.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/TestHarness/TestSuiteRunner.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/TestHarness/TestUtils.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/TestHarness/TestBatchRunner.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/TestHarness/TestFormatter.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/_include/Clownfish/v0.6.3/Clownfish/TestHarness/TestSuite.cfh
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/auto/Clownfish/Clownfish.so
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/auto/Clownfish/Clownfish.bs
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/StringIterator.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/HashIterator.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Integer.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Blob.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/ByteBuf.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Err.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Obj.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Class.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Err.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Blob.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Class.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/ByteBuf.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/HashIterator.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Vector.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Obj.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Float.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Vector.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Integer.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/CharBuf.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Float.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/String.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/CharBuf.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Boolean.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/String.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Hash.pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Boolean.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Hash.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Docs/WritingClasses.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Docs/BuildingProjects.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl/Clownfish/Docs/ClassIntro.pod
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::Vector.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::Class.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::CharBuf.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::ByteBuf.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::Integer.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::Float.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::Err.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::Hash.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::HashIterator.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::Blob.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::StringIterator.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::Docs::ClassIntro.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::Docs::BuildingProjects.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::Boolean.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::Obj.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::String.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish.3pm
Installing /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/man/man3/Clownfish::Docs::WritingClasses.3pm
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/lib64/perl5/vendor_perl
+ /usr/bin/find-debuginfo -j16 --strict-build-id -m -i --build-id-seed 0.6.3-13.mga10 --unique-debug-suffix -0.6.3-13.mga10.x86_64 --unique-debug-src-base perl-Clownfish-0.6.3-13.mga10.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/Clownfish-0.6.3
find-debuginfo: starting

Extracting debug info from 1 files
DWARF-compressing 1 files
sepdebugcrcfix: Updated 1 CRC32s, 0 CRC32s did match.
Creating .debug symlinks for symlinks to ELF files
Copying sources found by 'debugedit -l' to /usr/src/debug/perl-Clownfish-0.6.3-13.mga10.x86_64
find-debuginfo: done
+ /usr/lib/rpm/check-buildroot
+ '[' -n '' ']'
+ /usr/share/spec-helper/clean_files
+ '[' -n '' ']'
+ /usr/share/spec-helper/compress_files .xz
+ '[' -n '' ']'
+ /usr/share/spec-helper/relink_symlinks
+ '[' -n '' ']'
+ /usr/share/spec-helper/clean_perl
+ '[' -n '' ']'
+ /usr/share/spec-helper/lib_symlinks
+ '[' -n '' ']'
+ /usr/share/spec-helper/gprintify
+ '[' -n '' ']'
+ /usr/share/spec-helper/fix_mo
+ '[' -n '' ']'
+ /usr/share/spec-helper/fix_pamd
+ '[' -n '' ']'
+ /usr/share/spec-helper/remove_info_dir
+ '[' -n '' ']'
+ /usr/share/spec-helper/fix_eol
+ '[' -n '' ']'
+ /usr/share/spec-helper/check_desktop_files
+ '[' -n '' ']'
+ /usr/share/spec-helper/check_elf_files
+ /usr/lib/rpm/check-rpaths
+ /usr/lib/rpm/brp-remove-la-files
+ /usr/lib/rpm/redhat/brp-mangle-shebangs
+ env -u SOURCE_DATE_EPOCH /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j16
+ /usr/lib/rpm/redhat/brp-python-hardlink
Reading /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/SPECPARTS/rpm-debuginfo.specpart
Executing(%check): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.IJDGNr
+ umask 022
+ cd /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build
+ CFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full'
+ export CFLAGS
+ CXXFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full'
+ export CXXFLAGS
+ FFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full '
+ export FFLAGS
+ FCFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none --cap-lints=warn'
+ export RUSTFLAGS
+ LDFLAGS='-Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--build-id=sha1 -Wl,--enable-new-dtags -specs=/usr/lib/rpm/redhat/redhat-hardened-ld'
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib64:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ cd Clownfish-0.6.3
+ '[' 1 -eq 1 ']'
+ ./Build test
make core_objects
make: Nothing to be done for 'core_objects'.
make test_objects
make: Nothing to be done for 'test_objects'.
t/binding/002-clownfish.t .. ok
t/binding/010-class.t ...... ok
t/binding/016-vector.t ..... ok
t/binding/017-hash.t ....... ok
t/binding/018-host.t ....... ok
t/binding/019-obj.t ........ ok
t/binding/021-blob.t ....... ok
t/binding/022-bytebuf.t .... ok
t/binding/023-string.t ..... ok
t/binding/029-charbuf.t .... ok
t/binding/031-num.t ........ ok
t/binding/034-err.t ........ ok
t/core/010-class.t ......... ok
t/core/011-method.t ........ ok
t/core/016-vector.t ........ ok
t/core/017-hash.t .......... ok
t/core/019-obj.t ........... ok
t/core/020-err.t ........... ok
t/core/021-blob.t .......... ok
t/core/022-bytebuf.t ....... ok
t/core/023-string.t ........ ok
t/core/029-charbuf.t ....... ok
t/core/030-boolean.t ....... ok
t/core/031-num.t ........... ok
t/core/037-atomic.t ........ ok
t/core/039-memory.t ........ ok
t/core/050-ptrhash.t ....... ok
All tests successful.
Files=27, Tests=739,  1 wallclock secs ( 0.09 usr  0.04 sys +  0.85 cusr  0.19 csys =  1.17 CPU)
Result: PASS
+ RPM_EC=0
++ jobs -p
+ exit 0
Processing files: perl-Clownfish-0.6.3-13.mga10.x86_64
Executing(%doc): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.zQAmPm
+ umask 022
+ cd /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build
+ cd Clownfish-0.6.3
+ DOCDIR=/home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/doc/perl-Clownfish
+ export LC_ALL=C
+ LC_ALL=C
+ export DOCDIR
+ /usr/bin/mkdir -p /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/doc/perl-Clownfish
+ cp -pr /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/Clownfish-0.6.3/CHANGES /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/doc/perl-Clownfish
+ cp -pr /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/Clownfish-0.6.3/META.json /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/doc/perl-Clownfish
+ cp -pr /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/Clownfish-0.6.3/META.yml /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/doc/perl-Clownfish
+ cp -pr /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/Clownfish-0.6.3/MYMETA.yml /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/doc/perl-Clownfish
+ cp -pr /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/Clownfish-0.6.3/NOTICE /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/doc/perl-Clownfish
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%license): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.3G226N
+ umask 022
+ cd /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build
+ cd Clownfish-0.6.3
+ LICENSEDIR=/home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/licenses/perl-Clownfish
+ export LC_ALL=C
+ LC_ALL=C
+ export LICENSEDIR
+ /usr/bin/mkdir -p /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/licenses/perl-Clownfish
+ cp -pr /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/Clownfish-0.6.3/LICENSE /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT/usr/share/licenses/perl-Clownfish
+ RPM_EC=0
++ jobs -p
+ exit 0
Provides: perl(Clownfish) = 0.6.3 perl(Clownfish::Blob) = 0.6.3 perl(Clownfish::Boolean) = 0.6.3 perl(Clownfish::ByteBuf) = 0.6.3 perl(Clownfish::CharBuf) = 0.6.3 perl(Clownfish::Class) = 0.6.3 perl(Clownfish::Err) = 0.6.3 perl(Clownfish::Float) = 0.6.3 perl(Clownfish::Hash) = 0.6.3 perl(Clownfish::HashIterator) = 0.6.3 perl(Clownfish::Integer) = 0.6.3 perl(Clownfish::Method) = 0.6.3 perl(Clownfish::Obj) = 0.6.3 perl(Clownfish::String) = 0.6.3 perl(Clownfish::Vector) = 0.6.3 perl-Clownfish = 0.6.3-13.mga10 perl-Clownfish(x86-64) = 0.6.3-13.mga10
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: ld-linux-x86-64.so.2()(64bit) ld-linux-x86-64.so.2(GLIBC_2.3)(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.34)(64bit) libc.so.6(GLIBC_2.4)(64bit) libperl.so.5.42()(64bit) perl >= 0:5.008003 perl(Carp) perl(Clownfish) perl(Exporter) perl(Scalar::Util) perl(strict) perl(warnings) perl-base >= 2:5.42.0
Processing files: perl-Clownfish-debugsource-0.6.3-13.mga10.x86_64
Provides: perl-Clownfish-debugsource = 0.6.3-13.mga10 perl-Clownfish-debugsource(x86-64) = 0.6.3-13.mga10
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Processing files: perl-Clownfish-debuginfo-0.6.3-13.mga10.x86_64
Provides: debuginfo(build-id) = f4fbee9fe4a86dfe1fa5fcde70483825a17dade0 perl-Clownfish-debuginfo = 0.6.3-13.mga10 perl-Clownfish-debuginfo(x86-64) = 0.6.3-13.mga10
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Recommends: perl-Clownfish-debugsource(x86-64) = 0.6.3-13.mga10
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build/BUILDROOT
Wrote: /home/pterjan/rpmbuild/RPMS/x86_64/perl-Clownfish-0.6.3-13.mga10.x86_64.rpm
Wrote: /home/pterjan/rpmbuild/RPMS/x86_64/perl-Clownfish-debuginfo-0.6.3-13.mga10.x86_64.rpm
Wrote: /home/pterjan/rpmbuild/RPMS/x86_64/perl-Clownfish-debugsource-0.6.3-13.mga10.x86_64.rpm
Executing(rmbuild): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.OVlYYQ
+ umask 022
+ cd /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build
+ test -d /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build
+ rm -rf /home/pterjan/rpmbuild/BUILD/perl-Clownfish-0.6.3-build
+ RPM_EC=0
++ jobs -p
+ exit 0
D: [iurt_root_command] Success!
