rpav / c2ffi

Clang-based FFI wrapper generator
GNU Lesser General Public License v2.1
234 stars 39 forks source link

Build fails with llvm-17 #115

Closed hjudt closed 8 months ago

hjudt commented 1 year ago

As described in https://github.com/rpav/c2ffi/issues/114, here is the output (there are also some deprecated header warnings in addition to the compile error in AST.cpp):

 * checking ebuild checksums ;-) ...                                                                          [ ok ]
 * checking miscfile checksums ;-) ...                                                                        [ ok ]
>>> Unpacking source...
>>> Unpacking c2ffi-16.0.0.20231016.tar.gz to /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work
>>> Source unpacked in /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work
>>> Preparing source in /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345 ...
 * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345"
 * Build directory  (BUILD_DIR):     "/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345_build"
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345 ...
 * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345"
 * Build directory  (BUILD_DIR):     "/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345_build"
cmake -C /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345_build/gentoo_common_config.cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE=/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345_build/gentoo_toolchain.cmake /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345
loading initial cache file /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345_build/gentoo_common_config.cmake
-- Config: -Release
-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/x86_64-pc-linux-gnu-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CXX Compiler: GNU
-- Building for Linux-x64
-- Performing Test HAVE_FFI_CALL
-- Performing Test HAVE_FFI_CALL - Success
-- Found FFI: /usr/lib64/libffi.so  
-- Performing Test Terminfo_LINKABLE
-- Performing Test Terminfo_LINKABLE - Success
-- Found Terminfo: /usr/lib64/libtinfo.so  
-- Found ZLIB: /usr/lib64/libz.so (found version "1.3")  
-- Found LibXml2: /usr/lib64/libxml2.so (found version "2.11.5") 
-- Found LLVM 17.0.1
-- LLVM installed in /usr/lib/llvm/17
-- Using LLVMConfig.cmake in: /usr/lib/llvm/17/lib64/cmake/llvm
-- c2ffi c++std: -std=c++17
**   C++ flags: -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result
**   C++ debug    flags:  -O1 -ggdb2 -fno-omit-frame-pointer
**   C++ rwdi     flags: -O2 -ggdb2 -fno-omit-frame-pointer -DNDEBUG
**   C++ release  flags: -O3 -DNDEBUG
**   Link flags: -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--sort-common -Wl,-z,now
**   Link debug flags: 
**
**   This build: Release
-- <<< Gentoo configuration >>>
Build type      Release
Install path    /usr
Compiler flags:
C               -O2 -march=native -pipe -fno-ident -ggdb
C++             -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result
Linker flags:
Executable      -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--sort-common -Wl,-z,now
Module          -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--sort-common -Wl,-z,now
Shared          -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--sort-common -Wl,-z,now

-- Configuring done (1.2s)
-- Generating done (0.0s)
-- Build files have been written to: /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345_build
>>> Source configured.
>>> Compiling source in /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345 ...
 * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345"
 * Build directory  (BUILD_DIR):     "/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345_build"
ninja -v -j10 -l0
[1/13] /usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/drivers/Null.cpp.o -MF CMakeFiles/c2ffi.dir/src/drivers/Null.cpp.o.d -o CMakeFiles/c2ffi.dir/src/drivers/Null.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/drivers/Null.cpp
In file included from /usr/lib/llvm/17/include/clang/AST/DeclCXX.h:29,
                 from /usr/lib/llvm/17/include/clang/AST/DeclTemplate.h:21,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:29,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi.h:106,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/drivers/Null.cpp:22:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h: In constructor ‘clang::TypeSourceInfo::TypeSourceInfo(clang::QualType, size_t)’:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h:245:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class clang::TypeSourceInfo’; use assignment instead [-Wclass-memaccess]
  245 |   memset(this + 1, 0, DataSize);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/TemplateBase.h:20,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:28:
/usr/lib/llvm/17/include/clang/AST/Type.h:6655:18: note: ‘class clang::TypeSourceInfo’ declared here
 6655 | class alignas(8) TypeSourceInfo {
      |                  ^~~~~~~~~~~~~~
[2/13] /usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/Template.cpp.o -MF CMakeFiles/c2ffi.dir/src/Template.cpp.o.d -o CMakeFiles/c2ffi.dir/src/Template.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/Template.cpp
In file included from /usr/lib/llvm/17/include/clang/AST/DeclCXX.h:29,
                 from /usr/lib/llvm/17/include/clang/AST/DeclTemplate.h:21,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:29,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi.h:106,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/Template.cpp:24:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h: In constructor ‘clang::TypeSourceInfo::TypeSourceInfo(clang::QualType, size_t)’:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h:245:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class clang::TypeSourceInfo’; use assignment instead [-Wclass-memaccess]
  245 |   memset(this + 1, 0, DataSize);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/TemplateBase.h:20,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:28:
/usr/lib/llvm/17/include/clang/AST/Type.h:6655:18: note: ‘class clang::TypeSourceInfo’ declared here
 6655 | class alignas(8) TypeSourceInfo {
      |                  ^~~~~~~~~~~~~~
[3/13] /usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/OutputDriver.cpp.o -MF CMakeFiles/c2ffi.dir/src/OutputDriver.cpp.o.d -o CMakeFiles/c2ffi.dir/src/OutputDriver.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/OutputDriver.cpp
In file included from /usr/lib/llvm/17/include/clang/AST/DeclCXX.h:29,
                 from /usr/lib/llvm/17/include/clang/AST/DeclTemplate.h:21,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:29,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi.h:106,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/OutputDriver.cpp:23:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h: In constructor ‘clang::TypeSourceInfo::TypeSourceInfo(clang::QualType, size_t)’:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h:245:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class clang::TypeSourceInfo’; use assignment instead [-Wclass-memaccess]
  245 |   memset(this + 1, 0, DataSize);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/TemplateBase.h:20,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:28:
/usr/lib/llvm/17/include/clang/AST/Type.h:6655:18: note: ‘class clang::TypeSourceInfo’ declared here
 6655 | class alignas(8) TypeSourceInfo {
      |                  ^~~~~~~~~~~~~~
[4/13] /usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/drivers/Sexp.cpp.o -MF CMakeFiles/c2ffi.dir/src/drivers/Sexp.cpp.o.d -o CMakeFiles/c2ffi.dir/src/drivers/Sexp.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/drivers/Sexp.cpp
In file included from /usr/lib/llvm/17/include/clang/AST/DeclCXX.h:29,
                 from /usr/lib/llvm/17/include/clang/AST/DeclTemplate.h:21,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:29,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi.h:106,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/drivers/Sexp.cpp:22:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h: In constructor ‘clang::TypeSourceInfo::TypeSourceInfo(clang::QualType, size_t)’:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h:245:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class clang::TypeSourceInfo’; use assignment instead [-Wclass-memaccess]
  245 |   memset(this + 1, 0, DataSize);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/TemplateBase.h:20,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:28:
/usr/lib/llvm/17/include/clang/AST/Type.h:6655:18: note: ‘class clang::TypeSourceInfo’ declared here
 6655 | class alignas(8) TypeSourceInfo {
      |                  ^~~~~~~~~~~~~~
[5/13] /usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/Type.cpp.o -MF CMakeFiles/c2ffi.dir/src/Type.cpp.o.d -o CMakeFiles/c2ffi.dir/src/Type.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/Type.cpp
In file included from /usr/lib/llvm/17/include/clang/AST/DeclCXX.h:29,
                 from /usr/lib/llvm/17/include/clang/AST/DeclTemplate.h:21,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/Type.cpp:26:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h: In constructor ‘clang::TypeSourceInfo::TypeSourceInfo(clang::QualType, size_t)’:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h:245:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class clang::TypeSourceInfo’; use assignment instead [-Wclass-memaccess]
  245 |   memset(this + 1, 0, DataSize);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/Type.cpp:24:
/usr/lib/llvm/17/include/clang/AST/Type.h:6655:18: note: ‘class clang::TypeSourceInfo’ declared here
 6655 | class alignas(8) TypeSourceInfo {
      |                  ^~~~~~~~~~~~~~
[6/13] /usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/Decl.cpp.o -MF CMakeFiles/c2ffi.dir/src/Decl.cpp.o.d -o CMakeFiles/c2ffi.dir/src/Decl.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/Decl.cpp
In file included from /usr/lib/llvm/17/include/clang/AST/DeclCXX.h:29,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/Decl.cpp:22:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h: In constructor ‘clang::TypeSourceInfo::TypeSourceInfo(clang::QualType, size_t)’:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h:245:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class clang::TypeSourceInfo’; use assignment instead [-Wclass-memaccess]
  245 |   memset(this + 1, 0, DataSize);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/CanonicalType.h:17,
                 from /usr/lib/llvm/17/include/clang/AST/ASTContext.h:18,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/Decl.cpp:21:
/usr/lib/llvm/17/include/clang/AST/Type.h:6655:18: note: ‘class clang::TypeSourceInfo’ declared here
 6655 | class alignas(8) TypeSourceInfo {
      |                  ^~~~~~~~~~~~~~
[7/13] /usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/Expr.cpp.o -MF CMakeFiles/c2ffi.dir/src/Expr.cpp.o.d -o CMakeFiles/c2ffi.dir/src/Expr.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/Expr.cpp
In file included from /usr/lib/llvm/17/include/clang/AST/DeclCXX.h:29,
                 from /usr/lib/llvm/17/include/clang/AST/DeclTemplate.h:21,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:29,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi.h:106,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/Expr.cpp:32:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h: In constructor ‘clang::TypeSourceInfo::TypeSourceInfo(clang::QualType, size_t)’:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h:245:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class clang::TypeSourceInfo’; use assignment instead [-Wclass-memaccess]
  245 |   memset(this + 1, 0, DataSize);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/TemplateBase.h:20,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:28:
/usr/lib/llvm/17/include/clang/AST/Type.h:6655:18: note: ‘class clang::TypeSourceInfo’ declared here
 6655 | class alignas(8) TypeSourceInfo {
      |                  ^~~~~~~~~~~~~~
[8/13] /usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/drivers/JSON.cpp.o -MF CMakeFiles/c2ffi.dir/src/drivers/JSON.cpp.o.d -o CMakeFiles/c2ffi.dir/src/drivers/JSON.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/drivers/JSON.cpp
In file included from /usr/lib/llvm/17/include/clang/AST/DeclCXX.h:29,
                 from /usr/lib/llvm/17/include/clang/AST/DeclTemplate.h:21,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:29,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi.h:106,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/drivers/JSON.cpp:22:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h: In constructor ‘clang::TypeSourceInfo::TypeSourceInfo(clang::QualType, size_t)’:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h:245:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class clang::TypeSourceInfo’; use assignment instead [-Wclass-memaccess]
  245 |   memset(this + 1, 0, DataSize);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/TemplateBase.h:20,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:28:
/usr/lib/llvm/17/include/clang/AST/Type.h:6655:18: note: ‘class clang::TypeSourceInfo’ declared here
 6655 | class alignas(8) TypeSourceInfo {
      |                  ^~~~~~~~~~~~~~
[9/13] /usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/AST.cpp.o -MF CMakeFiles/c2ffi.dir/src/AST.cpp.o.d -o CMakeFiles/c2ffi.dir/src/AST.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp
FAILED: CMakeFiles/c2ffi.dir/src/AST.cpp.o 
/usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/AST.cpp.o -MF CMakeFiles/c2ffi.dir/src/AST.cpp.o.d -o CMakeFiles/c2ffi.dir/src/AST.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp
In file included from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:42:
/usr/lib/llvm/17/include/llvm/Support/Host.h:16:5: warning: This header is deprecated, please use llvm/TargetParser/Host.h
   16 |     "This header is deprecated, please use llvm/TargetParser/Host.h"
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/DeclCXX.h:29,
                 from /usr/lib/llvm/17/include/clang/AST/DeclTemplate.h:21,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:26:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h: In constructor ‘clang::TypeSourceInfo::TypeSourceInfo(clang::QualType, size_t)’:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h:245:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class clang::TypeSourceInfo’; use assignment instead [-Wclass-memaccess]
  245 |   memset(this + 1, 0, DataSize);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/CanonicalType.h:17,
                 from /usr/lib/llvm/17/include/clang/AST/ASTContext.h:18,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:25:
/usr/lib/llvm/17/include/clang/AST/Type.h:6655:18: note: ‘class clang::TypeSourceInfo’ declared here
 6655 | class alignas(8) TypeSourceInfo {
      |                  ^~~~~~~~~~~~~~
In file included from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:47:
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp: In member function ‘void c2ffi::C2FFIASTConsumer::HandleDecl(clang::Decl*, const clang::NamedDecl*)’:
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:140:18: warning: unused variable ‘x’ [-Wunused-variable]
  140 |     else if_cast(x, clang::ObjCMethodDecl, d);
      |                  ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/ast.h:31:30: note: in definition of macro ‘if_cast’
   31 | #define if_cast(v,T,e) if(T *v = llvm::dyn_cast<T>((e)))
      |                              ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:139:18: warning: unused variable ‘x’ [-Wunused-variable]
  139 |     else if_cast(x, clang::ObjCImplementationDecl, d);
      |                  ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/ast.h:31:30: note: in definition of macro ‘if_cast’
   31 | #define if_cast(v,T,e) if(T *v = llvm::dyn_cast<T>((e)))
      |                              ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:133:18: warning: unused variable ‘x’ [-Wunused-variable]
  133 |     else if_cast(x, clang::ClassTemplateDecl, d);
      |                  ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/ast.h:31:30: note: in definition of macro ‘if_cast’
   31 | #define if_cast(v,T,e) if(T *v = llvm::dyn_cast<T>((e)))
      |                              ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:119:18: warning: unused variable ‘x’ [-Wunused-variable]
  119 |     else if_cast(x, clang::FunctionTemplateDecl, d);
      |                  ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/ast.h:31:30: note: in definition of macro ‘if_cast’
   31 | #define if_cast(v,T,e) if(T *v = llvm::dyn_cast<T>((e)))
      |                              ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:118:18: warning: unused variable ‘x’ [-Wunused-variable]
  118 |     else if_cast(x, clang::CXXMethodDecl, d);
      |                  ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/ast.h:31:30: note: in definition of macro ‘if_cast’
   31 | #define if_cast(v,T,e) if(T *v = llvm::dyn_cast<T>((e)))
      |                              ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:117:18: warning: unused variable ‘x’ [-Wunused-variable]
  117 |     else if_cast(x, clang::IndirectFieldDecl, d);
      |                  ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/ast.h:31:30: note: in definition of macro ‘if_cast’
   31 | #define if_cast(v,T,e) if(T *v = llvm::dyn_cast<T>((e)))
      |                              ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:116:18: warning: unused variable ‘x’ [-Wunused-variable]
  116 |     else if_cast(x, clang::FieldDecl, d);
      |                  ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/ast.h:31:30: note: in definition of macro ‘if_cast’
   31 | #define if_cast(v,T,e) if(T *v = llvm::dyn_cast<T>((e)))
      |                              ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp: In member function ‘void c2ffi::C2FFIASTConsumer::PostProcess()’:
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:185:27: warning: unused variable ‘y’ [-Wunused-variable]
  185 |             if_const_cast(y, clang::ClassTemplatePartialSpecializationDecl, d) continue;
      |                           ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/ast.h:32:42: note: in definition of macro ‘if_const_cast’
   32 | #define if_const_cast(v,T,e) if(const T *v = llvm::dyn_cast<T>((e)))
      |                                          ^
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp: In member function ‘c2ffi::Decl* c2ffi::C2FFIASTConsumer::make_decl(const clang::VarDecl*, bool)’:
/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/AST.cpp:245:66: error: cannot convert ‘clang::Expr’ to ‘clang::Expr*’ in initialization
  245 |             clang::Expr*          e    = clang::cast<clang::Expr>(stmt->Value);
      |                                          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
      |                                                                  |
      |                                                                  clang::Expr
[10/13] /usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/c2ffi.cpp.o -MF CMakeFiles/c2ffi.dir/src/c2ffi.cpp.o.d -o CMakeFiles/c2ffi.dir/src/c2ffi.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/c2ffi.cpp
In file included from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/c2ffi.cpp:24:
/usr/lib/llvm/17/include/llvm/Support/Host.h:16:5: warning: This header is deprecated, please use llvm/TargetParser/Host.h
   16 |     "This header is deprecated, please use llvm/TargetParser/Host.h"
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/DeclCXX.h:29,
                 from /usr/lib/llvm/17/include/clang/AST/ExprCXX.h:21,
                 from /usr/lib/llvm/17/include/clang/Analysis/ConstructionContext.h:20,
                 from /usr/lib/llvm/17/include/clang/Analysis/CFG.h:18,
                 from /usr/lib/llvm/17/include/clang/Analysis/AnalysisDeclContext.h:22,
                 from /usr/lib/llvm/17/include/clang/Analysis/PathDiagnostic.h:17,
                 from /usr/lib/llvm/17/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h:17,
                 from /usr/lib/llvm/17/include/clang/Frontend/CompilerInvocation.h:22,
                 from /usr/lib/llvm/17/include/clang/Frontend/CompilerInstance.h:16,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/c2ffi.cpp:30:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h: In constructor ‘clang::TypeSourceInfo::TypeSourceInfo(clang::QualType, size_t)’:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h:245:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class clang::TypeSourceInfo’; use assignment instead [-Wclass-memaccess]
  245 |   memset(this + 1, 0, DataSize);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/DeclarationName.h:16,
                 from /usr/lib/llvm/17/include/clang/AST/DeclBase.h:18,
                 from /usr/lib/llvm/17/include/clang/Analysis/AnalysisDeclContext.h:20:
/usr/lib/llvm/17/include/clang/AST/Type.h:6655:18: note: ‘class clang::TypeSourceInfo’ declared here
 6655 | class alignas(8) TypeSourceInfo {
      |                  ^~~~~~~~~~~~~~
[11/13] /usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/options.cpp.o -MF CMakeFiles/c2ffi.dir/src/options.cpp.o.d -o CMakeFiles/c2ffi.dir/src/options.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/options.cpp
In file included from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/options.cpp:27:
/usr/lib/llvm/17/include/llvm/Support/Host.h:16:5: warning: This header is deprecated, please use llvm/TargetParser/Host.h
   16 |     "This header is deprecated, please use llvm/TargetParser/Host.h"
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/DeclCXX.h:29,
                 from /usr/lib/llvm/17/include/clang/AST/DeclTemplate.h:21,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:29,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi.h:106,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/options.cpp:29:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h: In constructor ‘clang::TypeSourceInfo::TypeSourceInfo(clang::QualType, size_t)’:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h:245:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class clang::TypeSourceInfo’; use assignment instead [-Wclass-memaccess]
  245 |   memset(this + 1, 0, DataSize);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/TemplateBase.h:20,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include/c2ffi/template.h:28:
/usr/lib/llvm/17/include/clang/AST/Type.h:6655:18: note: ‘class clang::TypeSourceInfo’ declared here
 6655 | class alignas(8) TypeSourceInfo {
      |                  ^~~~~~~~~~~~~~
[12/13] /usr/bin/x86_64-pc-linux-gnu-g++ -DCLANG_RESOURCE_DIRECTORY="R\"(/usr/lib/llvm/17/bin/../../../../lib/clang/17)\"" -I/usr/lib/llvm/17/include -I/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/include  -O2 -march=native -pipe -fno-ident -ggdb -W -Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Werror=return-type -Werror=unused-result -O3 -DNDEBUG -std=c++17 -MD -MT CMakeFiles/c2ffi.dir/src/init.cpp.o -MF CMakeFiles/c2ffi.dir/src/init.cpp.o.d -o CMakeFiles/c2ffi.dir/src/init.cpp.o -c /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/init.cpp
In file included from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/init.cpp:24:
/usr/lib/llvm/17/include/llvm/Support/Host.h:16:5: warning: This header is deprecated, please use llvm/TargetParser/Host.h
   16 |     "This header is deprecated, please use llvm/TargetParser/Host.h"
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/DeclCXX.h:29,
                 from /usr/lib/llvm/17/include/clang/AST/ExprCXX.h:21,
                 from /usr/lib/llvm/17/include/clang/Analysis/ConstructionContext.h:20,
                 from /usr/lib/llvm/17/include/clang/Analysis/CFG.h:18,
                 from /usr/lib/llvm/17/include/clang/Analysis/AnalysisDeclContext.h:22,
                 from /usr/lib/llvm/17/include/clang/Analysis/PathDiagnostic.h:17,
                 from /usr/lib/llvm/17/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h:17,
                 from /usr/lib/llvm/17/include/clang/Frontend/CompilerInvocation.h:22,
                 from /usr/lib/llvm/17/include/clang/Frontend/CompilerInstance.h:16,
                 from /var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345/src/init.cpp:34:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h: In constructor ‘clang::TypeSourceInfo::TypeSourceInfo(clang::QualType, size_t)’:
/usr/lib/llvm/17/include/clang/AST/TypeLoc.h:245:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class clang::TypeSourceInfo’; use assignment instead [-Wclass-memaccess]
  245 |   memset(this + 1, 0, DataSize);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm/17/include/clang/AST/DeclarationName.h:16,
                 from /usr/lib/llvm/17/include/clang/AST/DeclBase.h:18,
                 from /usr/lib/llvm/17/include/clang/Analysis/AnalysisDeclContext.h:20:
/usr/lib/llvm/17/include/clang/AST/Type.h:6655:18: note: ‘class clang::TypeSourceInfo’ declared here
 6655 | class alignas(8) TypeSourceInfo {
      |                  ^~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
 * ERROR: dev-lisp/c2ffi-16.0.0.20231016::misc failed (compile phase):
 *   ninja -v -j10 -l0 failed
 * 
 * Call stack:
 *     ebuild.sh, line  136:  Called src_compile
 *   environment, line 2288:  Called cmake_src_compile
 *   environment, line  919:  Called cmake_build
 *   environment, line  886:  Called eninja
 *   environment, line 1353:  Called die
 * The specific snippet of code:
 *       "$@" || die -n "${*} failed"
 * 
 * If you need support, post the output of `emerge --info '=dev-lisp/c2ffi-16.0.0.20231016::misc'`,
 * the complete build log and the output of `emerge -pqv '=dev-lisp/c2ffi-16.0.0.20231016::misc'`.
 * The complete build log is located at '/var/log/portage/dev-lisp:c2ffi-16.0.0.20231016:20231016-064721.log'.
 * For convenience, a symlink to the build log is located at '/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345_build'
 * S: '/var/tmp/portage/dev-lisp/c2ffi-16.0.0.20231016/work/c2ffi-040e6c0af132e9b315960178d9afdd9d4daaf345'
hjudt commented 8 months ago

llvm-17.0.6 has already been stabilized in gentoo. Any updates possible in the next few weeks?

rpav commented 8 months ago

Yeah sorry for the delay; looks like arch has llvm-17 finally so it should be reasonably straightforward this weekend.

Also apparently I entirely misread this before: the only actual error appears to be the clang::Expr* e = clang::cast<clang::Expr>(stmt->Value); line.

It's probable this would fix it:

clang::Expr* e = clang::cast<clang::Expr*>(stmt->Value);
//                                      ^ notice

If it does (and everything else works!) and you want to submit a PR I'd merge it too.. though fixing the deprecated header would be nice as well.

hjudt commented 8 months ago

Thanks, while I would have been able to fix that line, I was thrown off by some weird linker error which resulted from simply not adapting the LLVM version string in the CMakeLists.txt. My 3 commits in the PR should fix the issues you mentioned, it built fine here.

rpav commented 8 months ago

This should build/work now.