Mock Version: 3.5
Mock Version: 3.5
Mock Version: 3.5
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target riscv64 --nodeps /builddir/build/SPECS/cvise.spec'], chrootPath='/var/lib/mock/f38-build-side-42-init-devel-1353651-30698/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0xffffff95e72cd0>timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False)
Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target riscv64 --nodeps /builddir/build/SPECS/cvise.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False
Building target platforms: riscv64
Building for target riscv64
setting SOURCE_DATE_EPOCH=1674086400
Wrote: /builddir/build/SRPMS/cvise-2.4.0-5.fc38.src.rpm
Child return code was: 0
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --noclean --target riscv64 --nodeps /builddir/build/SPECS/cvise.spec'], chrootPath='/var/lib/mock/f38-build-side-42-init-devel-1353651-30698/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0xffffff95e72cd0>timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False)
Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --noclean --target riscv64 --nodeps /builddir/build/SPECS/cvise.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False
Building target platforms: riscv64
Building for target riscv64
setting SOURCE_DATE_EPOCH=1674086400
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.YrCelE
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf cvise-2.4.0
+ /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/v2.4.0.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd cvise-2.4.0
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.wfnbgJ
+ umask 022
+ cd /builddir/build/BUILD
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib64:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ cd cvise-2.4.0
+ mkdir objdir
+ cd objdir
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib64:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ /usr/bin/cmake -S . -B redhat-linux-build -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_DO_STRIP:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 -DBUILD_SHARED_LIBS:BOOL=ON .. -B riscv64-redhat-linux-gnu -DCMAKE_INSTALL_LIBEXECDIR=/usr/libexec -DCMAKE_INSTALL_BINDIR=/usr/bin -DCMAKE_INSTALL_DATADIR=/usr/share -DCMAKE_BUILD_TYPE= -DCMAKE_SKIP_RPATH=TRUE
CMake Warning:
  Ignoring extra path from command line:
   "/builddir/build/BUILD/cvise-2.4.0/objdir"
CMake Deprecation Warning at CMakeLists.txt:11 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.
  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.
-- 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/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/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find FFI (missing: FFI_LIBRARIES HAVE_FFI_CALL) 
-- Performing Test Terminfo_LINKABLE
-- Performing Test Terminfo_LINKABLE - Success
-- Found Terminfo: /usr/lib64/libtinfo.so  
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) 
-- Found LLVM 16.0.6
-- Using LLVMConfig.cmake in /usr/lib64/cmake/llvm
-- Could NOT find FFI (missing: FFI_LIBRARIES HAVE_FFI_CALL) 
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) 
-- Using ClangConfig.cmake in /usr/lib64/cmake/clang
CMake Warning (dev) at CMakeLists.txt:44 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.11.5", minimum required is "3.6") 
-- Found FLEX: /usr/bin/flex (found version "2.6.4") 
-- Looking for dlfcn.h
-- Looking for dlfcn.h - found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for strings.h
-- Looking for strings.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Performing Test SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG
-- Performing Test SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG - Success
CMake Deprecation Warning at clang_delta/CMakeLists.txt:11 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.
  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.
CMake Deprecation Warning at clex/CMakeLists.txt:11 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.
  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.
CMake Deprecation Warning at cvise/CMakeLists.txt:11 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.
  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.
-- Using clang-format in /usr/bin/clang-format
CMake Deprecation Warning at delta/CMakeLists.txt:11 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.
  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.
-- Configuring done (86.8s)
-- Generating done (0.7s)
CMake Warning:
  Manually-specified variables were not used by the project:
    CMAKE_C_FLAGS_RELEASE
    CMAKE_Fortran_FLAGS_RELEASE
    CMAKE_INSTALL_DO_STRIP
    INCLUDE_INSTALL_DIR
    LIB_INSTALL_DIR
    LIB_SUFFIX
    SHARE_INSTALL_PREFIX
    SYSCONF_INSTALL_DIR
-- Build files have been written to: /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu
+ /usr/bin/make -O -j8 V=1 VERBOSE=1 VERBOSE=1 -C riscv64-redhat-linux-gnu
make: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
/usr/bin/cmake -S/builddir/build/BUILD/cvise-2.4.0 -B/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu --check-build-system CMakeFiles/Makefile.cmake 0
make: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
/usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/CMakeFiles /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu//CMakeFiles/progress.marks
make: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
/usr/bin/make  -f CMakeFiles/Makefile2 all
/usr/bin/make  -f clang_delta/CMakeFiles/clang_delta.dir/build.make clang_delta/CMakeFiles/clang_delta.dir/depend
/usr/bin/make  -f clex/CMakeFiles/clex.dir/build.make clex/CMakeFiles/clex.dir/depend
/usr/bin/make  -f clex/CMakeFiles/strlex.dir/build.make clex/CMakeFiles/strlex.dir/depend
/usr/bin/make  -f delta/CMakeFiles/topformflat.dir/build.make delta/CMakeFiles/topformflat.dir/depend
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/cvise-2.4.0 /builddir/build/BUILD/cvise-2.4.0/clang_delta /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clang_delta /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clang_delta/CMakeFiles/clang_delta.dir/DependInfo.cmake "--color="
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
/usr/bin/make  -f clang_delta/CMakeFiles/clang_delta.dir/build.make clang_delta/CMakeFiles/clang_delta.dir/build
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[  1%] [FLEX][clex_scanner] Building scanner with flex 2.6.4
cd /builddir/build/BUILD/cvise-2.4.0/clex && /usr/bin/flex -o/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex/clex.c clex.l
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[  2%] [FLEX][strlex_scanner] Building scanner with flex 2.6.4
cd /builddir/build/BUILD/cvise-2.4.0/clex && /usr/bin/flex -o/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex/strlex.c strlex.l
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[  3%] [FLEX][topformflat_scanner] Building scanner with flex 2.6.4
cd /builddir/build/BUILD/cvise-2.4.0/delta && /usr/bin/flex -o/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/delta/topformflat.c topformflat.l
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/cvise-2.4.0 /builddir/build/BUILD/cvise-2.4.0/clex /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex/CMakeFiles/clex.dir/DependInfo.cmake "--color="
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
/usr/bin/make  -f clex/CMakeFiles/clex.dir/build.make clex/CMakeFiles/clex.dir/build
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/cvise-2.4.0 /builddir/build/BUILD/cvise-2.4.0/clex /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex/CMakeFiles/strlex.dir/DependInfo.cmake "--color="
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/cvise-2.4.0 /builddir/build/BUILD/cvise-2.4.0/delta /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/delta /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/delta/CMakeFiles/topformflat.dir/DependInfo.cmake "--color="
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
/usr/bin/make  -f clex/CMakeFiles/strlex.dir/build.make clex/CMakeFiles/strlex.dir/build
/usr/bin/make  -f delta/CMakeFiles/topformflat.dir/build.make delta/CMakeFiles/topformflat.dir/build
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[ 10%] Building C object clex/CMakeFiles/strlex.dir/strlex.c.o
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex && /usr/bin/gcc -DHAVE_CONFIG_H -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex -I/builddir/build/BUILD/cvise-2.4.0/clex -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -Wall -Wextra -Wno-unused-function -MD -MT clex/CMakeFiles/strlex.dir/strlex.c.o -MF CMakeFiles/strlex.dir/strlex.c.o.d -o CMakeFiles/strlex.dir/strlex.c.o -c /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex/strlex.c
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[ 12%] Building C object delta/CMakeFiles/topformflat.dir/topformflat.c.o
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/delta && /usr/bin/gcc -DHAVE_CONFIG_H -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/delta -I/builddir/build/BUILD/cvise-2.4.0/delta -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -Wall -Wextra -Wno-unused-function -Wno-unused-parameter -MD -MT delta/CMakeFiles/topformflat.dir/topformflat.c.o -MF CMakeFiles/topformflat.dir/topformflat.c.o.d -o CMakeFiles/topformflat.dir/topformflat.c.o -c /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/delta/topformflat.c
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[ 11%] Building C object clex/CMakeFiles/clex.dir/clex.c.o
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex && /usr/bin/gcc -DHAVE_CONFIG_H -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex -I/builddir/build/BUILD/cvise-2.4.0/clex -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -Wall -Wextra -Wno-unused-function -MD -MT clex/CMakeFiles/clex.dir/clex.c.o -MF CMakeFiles/clex.dir/clex.c.o.d -o CMakeFiles/clex.dir/clex.c.o -c /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex/clex.c
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[ 13%] Building C object clex/CMakeFiles/strlex.dir/driver.c.o
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex && /usr/bin/gcc -DHAVE_CONFIG_H -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex -I/builddir/build/BUILD/cvise-2.4.0/clex -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -Wall -Wextra -MD -MT clex/CMakeFiles/strlex.dir/driver.c.o -MF CMakeFiles/strlex.dir/driver.c.o.d -o CMakeFiles/strlex.dir/driver.c.o -c /builddir/build/BUILD/cvise-2.4.0/clex/driver.c
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[ 16%] Building C object clex/CMakeFiles/clex.dir/driver.c.o
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex && /usr/bin/gcc -DHAVE_CONFIG_H -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex -I/builddir/build/BUILD/cvise-2.4.0/clex -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -Wall -Wextra -MD -MT clex/CMakeFiles/clex.dir/driver.c.o -MF CMakeFiles/clex.dir/driver.c.o.d -o CMakeFiles/clex.dir/driver.c.o -c /builddir/build/BUILD/cvise-2.4.0/clex/driver.c
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[  6%] Building CXX object clang_delta/CMakeFiles/clang_delta.dir/ClangDelta.cpp.o
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clang_delta && /usr/bin/g++ -DHAVE_CONFIG_H -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu -I/builddir/build/BUILD/cvise-2.4.0/clang_delta -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -std=c++14 -fno-rtti -fno-strict-aliasing -Wall -Wextra -Wno-unused-parameter -fvisibility-inlines-hidden   -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MT clang_delta/CMakeFiles/clang_delta.dir/ClangDelta.cpp.o -MF CMakeFiles/clang_delta.dir/ClangDelta.cpp.o.d -o CMakeFiles/clang_delta.dir/ClangDelta.cpp.o -c /builddir/build/BUILD/cvise-2.4.0/clang_delta/ClangDelta.cpp
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
In file included from /usr/include/llvm/Support/raw_ostream.h:16,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/ClangDelta.cpp:19:
/usr/include/llvm/ADT/SmallVector.h: In static member function 'static void llvm::SmallVectorTemplateBase<T, <anonymous> >::uninitialized_move(It1, It1, It2)':
/usr/include/llvm/ADT/SmallVector.h:352:10: error: 'uninitialized_move' is not a member of 'std'; did you mean 'uninitialized_copy'?
  352 |     std::uninitialized_move(I, E, Dest);
      |          ^~~~~~~~~~~~~~~~~~
      |          uninitialized_copy
In file included from /usr/include/llvm/ADT/StringRef.h:12,
                 from /usr/include/llvm/Support/raw_ostream.h:17:
/usr/include/llvm/ADT/DenseMapInfo.h: At global scope:
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: error: 'variant' is not a member of 'std'
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                    ^~~~~~~
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: note: 'std::variant' is only available from C++17 onwards
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: error: 'variant' is not a member of 'std'
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: note: 'std::variant' is only available from C++17 onwards
/usr/include/llvm/ADT/DenseMapInfo.h:294:62: error: expected parameter pack before '...'
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                              ^~~
/usr/include/llvm/ADT/DenseMapInfo.h:294:62: error: template argument 1 is invalid
/usr/include/llvm/ADT/DenseMapInfo.h:294:65: error: expected unqualified-id before '>' token
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                                 ^~
In file included from /usr/include/llvm/ADT/STLFunctionalExtras.h:18,
                 from /usr/include/llvm/ADT/StringRef.h:13:
/usr/include/llvm/ADT/STLForwardCompat.h:46:35: error: 'optional' in namespace 'std' does not name a template type
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                                   ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:46:30: note: 'std::optional' is only available from C++17 onwards
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                              ^~~
/usr/include/llvm/ADT/STLForwardCompat.h:46:43: error: expected ',' or '...' before '<' token
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                                           ^
/usr/include/llvm/ADT/STLForwardCompat.h:47:13: error: 'optional' in namespace 'std' does not name a template type
   47 |     -> std::optional<decltype(F(*O))> {
      |             ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:47:8: note: 'std::optional' is only available from C++17 onwards
   47 |     -> std::optional<decltype(F(*O))> {
      |        ^~~
/usr/include/llvm/ADT/STLForwardCompat.h:47:21: error: expected initializer before '<' token
   47 |     -> std::optional<decltype(F(*O))> {
      |                     ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:29: error: 'optional' is not a member of 'std'
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                             ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:56:29: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/ADT/STLForwardCompat.h:56:39: error: expected primary-expression before '>' token
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                       ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:43: error: label 'O' referenced outside of any function
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                           ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:46: error: expected primary-expression before 'const'
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                              ^~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:56:63: error: expression list treated as compound expression in initializer [-fpermissive]
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                                               ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:64: error: expected ';' before '->' token
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                                                ^
      |                                                                ;
   57 |     -> std::optional<decltype(F(*std::move(O)))> {
      |     ~~                                                          
/usr/include/llvm/ADT/StringRef.h:104:54: error: expected ')' before 'Str'
  104 |     /*implicit*/ constexpr StringRef(std::string_view Str)
      |                                     ~                ^~~~
      |                                                      )
/usr/include/llvm/ADT/StringRef.h:248:14: error: expected type-specifier
  248 |     operator std::string_view() const {
      |              ^~~
/usr/include/llvm/ADT/StringRef.h: In member function 'size_t llvm::StringRef::find(char, size_t) const':
/usr/include/llvm/ADT/StringRef.h:296:19: error: 'string_view' is not a member of 'std'
  296 |       return std::string_view(*this).find(C, From);
      |                   ^~~~~~~~~~~
/usr/include/llvm/ADT/StringRef.h:296:19: note: 'std::string_view' is only available from C++17 onwards
/usr/include/llvm/Support/raw_ostream.h: At global scope:
/usr/include/llvm/Support/raw_ostream.h:252:38: error: 'string_view' in namespace 'std' does not name a type
  252 |   raw_ostream &operator<<(const std::string_view &Str) {
      |                                      ^~~~~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:252:33: note: 'std::string_view' is only available from C++17 onwards
  252 |   raw_ostream &operator<<(const std::string_view &Str) {
      |                                 ^~~
/usr/include/llvm/Support/raw_ostream.h: In member function 'llvm::raw_ostream& llvm::raw_ostream::operator<<(const int&)':
/usr/include/llvm/Support/raw_ostream.h:253:22: error: request for member 'data' in 'Str', which is of non-class type 'const int'
  253 |     return write(Str.data(), Str.length());
      |                      ^~~~
/usr/include/llvm/Support/raw_ostream.h:253:34: error: request for member 'length' in 'Str', which is of non-class type 'const int'
  253 |     return write(Str.data(), Str.length());
      |                                  ^~~~~~
/usr/include/llvm/Support/raw_ostream.h: At global scope:
/usr/include/llvm/Support/raw_ostream.h:459:16: error: 'optional' in namespace 'std' does not name a template type
  459 |   mutable std::optional<bool> HasColors;
      |                ^~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:459:11: note: 'std::optional' is only available from C++17 onwards
  459 |   mutable std::optional<bool> HasColors;
      |           ^~~
/usr/include/llvm/Support/raw_ostream.h:757:47: error: 'std::nullopt_t' has not been declared
  757 | raw_ostream &operator<<(raw_ostream &OS, std::nullopt_t);
      |                                               ^~~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:761:53: error: 'optional' in namespace 'std' does not name a template type
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                     ^~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:761:48: note: 'std::optional' is only available from C++17 onwards
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                ^~~
/usr/include/llvm/Support/raw_ostream.h:761:61: error: expected ',' or '...' before '<' token
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                             ^
/usr/include/llvm/Support/raw_ostream.h: In function 'llvm::raw_ostream& llvm::operator<<(raw_ostream&, int)':
/usr/include/llvm/Support/raw_ostream.h:762:7: error: 'O' was not declared in this scope; did you mean 'OS'?
  762 |   if (O)
      |       ^
      |       OS
/usr/include/llvm/Support/raw_ostream.h:765:16: error: 'nullopt' is not a member of 'std'
  765 |     OS << std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/Support/raw_ostream.h:765:16: note: 'std::nullopt' is only available from C++17 onwards
make[2]: *** [clang_delta/CMakeFiles/clang_delta.dir/build.make:121: clang_delta/CMakeFiles/clang_delta.dir/ClangDelta.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[ 14%] Linking C executable topformflat
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/delta && /usr/bin/cmake -E cmake_link_script CMakeFiles/topformflat.dir/link.txt --verbose=1
/usr/bin/gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -Wall -Wextra -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -rdynamic CMakeFiles/topformflat.dir/topformflat.c.o -o topformflat 
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[1]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[ 18%] Built target topformflat
make[1]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[ 17%] Linking C executable strlex
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex && /usr/bin/cmake -E cmake_link_script CMakeFiles/strlex.dir/link.txt --verbose=1
/usr/bin/gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -Wall -Wextra -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -rdynamic CMakeFiles/strlex.dir/strlex.c.o CMakeFiles/strlex.dir/driver.c.o -o strlex 
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[ 18%] Linking C executable clex
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clex && /usr/bin/cmake -E cmake_link_script CMakeFiles/clex.dir/link.txt --verbose=1
/usr/bin/gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -Wall -Wextra -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -rdynamic CMakeFiles/clex.dir/clex.c.o CMakeFiles/clex.dir/driver.c.o -o clex 
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[1]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[ 18%] Built target strlex
make[1]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[1]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[ 18%] Built target clex
make[1]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[  9%] Building CXX object clang_delta/CMakeFiles/clang_delta.dir/CallExprToValue.cpp.o
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clang_delta && /usr/bin/g++ -DHAVE_CONFIG_H -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu -I/builddir/build/BUILD/cvise-2.4.0/clang_delta -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -std=c++14 -fno-rtti -fno-strict-aliasing -Wall -Wextra -Wno-unused-parameter -fvisibility-inlines-hidden   -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MT clang_delta/CMakeFiles/clang_delta.dir/CallExprToValue.cpp.o -MF CMakeFiles/clang_delta.dir/CallExprToValue.cpp.o.d -o CMakeFiles/clang_delta.dir/CallExprToValue.cpp.o -c /builddir/build/BUILD/cvise-2.4.0/clang_delta/CallExprToValue.cpp
In file included from /usr/include/clang/Basic/LLVM.h:21,
                 from /usr/include/clang/Rewrite/Core/Rewriter.h:17,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/Transformation.h:19,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/CallExprToValue.h:15,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/CallExprToValue.cpp:15:
/usr/include/llvm/Support/Casting.h:266:32: error: 'optional' is not a member of 'std'
  266 | struct CastIsPossible<To, std::optional<From>> {
      |                                ^~~~~~~~
/usr/include/llvm/Support/Casting.h:266:32: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:266:32: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:266:32: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:266:41: error: template argument 2 is invalid
  266 | struct CastIsPossible<To, std::optional<From>> {
      |                                         ^~~~
/usr/include/llvm/Support/Casting.h:266:45: error: expected unqualified-id before '>' token
  266 | struct CastIsPossible<To, std::optional<From>> {
      |                                             ^~
/usr/include/llvm/Support/Casting.h:369:16: error: 'optional' is not a member of 'std'
  369 |           std::optional<To>, From,
      |                ^~~~~~~~
/usr/include/llvm/Support/Casting.h:369:16: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:369:16: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:369:16: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:369:27: error: wrong number of template arguments (1, should be 3)
  369 |           std::optional<To>, From,
      |                           ^
/usr/include/llvm/Support/Casting.h:310:8: note: provided for 'template<class To, class From, class Derived> struct llvm::DefaultDoCastIfPossible'
  310 | struct DefaultDoCastIfPossible {
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/Casting.h:370:65: error: expected '{' before '>' token
  370 |           detail::SelfType<Derived, OptionalValueCast<To, From>>> {
      |                                                                 ^
/usr/include/llvm/Support/Casting.h:540:26: error: 'optional' is not a member of 'std'
  540 | struct CastInfo<To, std::optional<From>> : public OptionalValueCast<To, From> {
      |                          ^~~~~~~~
/usr/include/llvm/Support/Casting.h:540:26: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:540:26: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:540:26: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:540:35: error: template argument 2 is invalid
  540 | struct CastInfo<To, std::optional<From>> : public OptionalValueCast<To, From> {
      |                                   ^~~~
/usr/include/llvm/Support/Casting.h:540:39: error: expected unqualified-id before '>' token
  540 | struct CastInfo<To, std::optional<From>> : public OptionalValueCast<To, From> {
      |                                       ^~
/usr/include/llvm/Support/Casting.h:595:10: error: 'is_pointer_v' is not a member of 'std'; did you mean 'is_pointer'?
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |          ^~~~~~~~~~~~
      |          is_pointer
/usr/include/llvm/Support/Casting.h:595:24: error: expected primary-expression before '>' token
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                        ^
/usr/include/llvm/Support/Casting.h:595:26: error: expected primary-expression before '||' token
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                          ^~
/usr/include/llvm/Support/Casting.h:595:34: error: 'is_constructible_v' is not a member of 'std'; did you mean 'is_constructible'?
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                                  ^~~~~~~~~~~~~~~~~~
      |                                  is_constructible
/usr/include/llvm/Support/Casting.h:595:54: error: expected primary-expression before ',' token
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                                                      ^
/usr/include/llvm/Support/Casting.h:610:50: error: 'optional' is not a member of 'std'
  610 | template <typename T> struct ValueIsPresent<std::optional<T>> {
      |                                                  ^~~~~~~~
/usr/include/llvm/Support/Casting.h:610:50: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:610:50: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:610:50: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:610:59: error: template argument 1 is invalid
  610 | template <typename T> struct ValueIsPresent<std::optional<T>> {
      |                                                           ^
/usr/include/llvm/Support/Casting.h:610:60: error: expected unqualified-id before '>' token
  610 | template <typename T> struct ValueIsPresent<std::optional<T>> {
      |                                                            ^~
In file included from /usr/include/clang/Basic/LLVM.h:24:
/usr/include/llvm/ADT/None.h:26:14: error: 'nullopt_t' in namespace 'std' does not name a type; did you mean 'nullptr_t'?
   26 | typedef std::nullopt_t NoneType;
      |              ^~~~~~~~~
      |              nullptr_t
/usr/include/llvm/ADT/None.h:28:23: error: 'nullopt_t' in namespace 'std' does not name a type; did you mean 'nullptr_t'?
   28 | inline constexpr std::nullopt_t None = std::nullopt;
      |                       ^~~~~~~~~
      |                       nullptr_t
In file included from /usr/include/clang/Basic/LLVM.h:27:
/usr/include/llvm/ADT/SmallVector.h: In static member function 'static void llvm::SmallVectorTemplateBase<T, <anonymous> >::uninitialized_move(It1, It1, It2)':
/usr/include/llvm/ADT/SmallVector.h:352:10: error: 'uninitialized_move' is not a member of 'std'; did you mean 'uninitialized_copy'?
  352 |     std::uninitialized_move(I, E, Dest);
      |          ^~~~~~~~~~~~~~~~~~
      |          uninitialized_copy
/usr/include/clang/Basic/LLVM.h: At global scope:
/usr/include/clang/Basic/LLVM.h:40:47: error: 'optional' in namespace 'std' does not name a template type
   40 |   template <typename T> using Optional = std::optional<T>;
      |                                               ^~~~~~~~
/usr/include/clang/Basic/LLVM.h:40:42: note: 'std::optional' is only available from C++17 onwards
   40 |   template <typename T> using Optional = std::optional<T>;
      |                                          ^~~
/usr/include/clang/Basic/LLVM.h:72:15: error: 'Optional' has not been declared in 'llvm'
   72 |   using llvm::Optional;
      |               ^~~~~~~~
In file included from /usr/include/llvm/ADT/StringRef.h:12,
                 from /usr/include/clang/Basic/SourceLocation.h:18,
                 from /usr/include/clang/Rewrite/Core/Rewriter.h:18:
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: error: 'variant' is not a member of 'std'
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                    ^~~~~~~
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: note: 'std::variant' is only available from C++17 onwards
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: error: 'variant' is not a member of 'std'
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: note: 'std::variant' is only available from C++17 onwards
/usr/include/llvm/ADT/DenseMapInfo.h:294:62: error: expected parameter pack before '...'
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                              ^~~
/usr/include/llvm/ADT/DenseMapInfo.h:294:62: error: template argument 1 is invalid
/usr/include/llvm/ADT/DenseMapInfo.h:294:65: error: expected unqualified-id before '>' token
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                                 ^~
In file included from /usr/include/llvm/ADT/STLFunctionalExtras.h:18,
                 from /usr/include/llvm/ADT/StringRef.h:13:
/usr/include/llvm/ADT/STLForwardCompat.h:46:35: error: 'optional' in namespace 'std' does not name a template type
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                                   ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:46:30: note: 'std::optional' is only available from C++17 onwards
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                              ^~~
/usr/include/llvm/ADT/STLForwardCompat.h:46:43: error: expected ',' or '...' before '<' token
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                                           ^
/usr/include/llvm/ADT/STLForwardCompat.h:47:13: error: 'optional' in namespace 'std' does not name a template type
   47 |     -> std::optional<decltype(F(*O))> {
      |             ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:47:8: note: 'std::optional' is only available from C++17 onwards
   47 |     -> std::optional<decltype(F(*O))> {
      |        ^~~
/usr/include/llvm/ADT/STLForwardCompat.h:47:21: error: expected initializer before '<' token
   47 |     -> std::optional<decltype(F(*O))> {
      |                     ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:29: error: 'optional' is not a member of 'std'
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                             ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:56:29: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/ADT/STLForwardCompat.h:56:39: error: expected primary-expression before '>' token
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                       ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:43: error: label 'O' referenced outside of any function
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                           ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:46: error: expected primary-expression before 'const'
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                              ^~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:56:63: error: expression list treated as compound expression in initializer [-fpermissive]
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                                               ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:64: error: expected ';' before '->' token
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                                                ^
      |                                                                ;
   57 |     -> std::optional<decltype(F(*std::move(O)))> {
      |     ~~                                                          
/usr/include/llvm/ADT/StringRef.h:104:54: error: expected ')' before 'Str'
  104 |     /*implicit*/ constexpr StringRef(std::string_view Str)
      |                                     ~                ^~~~
      |                                                      )
/usr/include/llvm/ADT/StringRef.h:248:14: error: expected type-specifier
  248 |     operator std::string_view() const {
      |              ^~~
/usr/include/llvm/ADT/StringRef.h: In member function 'size_t llvm::StringRef::find(char, size_t) const':
/usr/include/llvm/ADT/StringRef.h:296:19: error: 'string_view' is not a member of 'std'
  296 |       return std::string_view(*this).find(C, From);
      |                   ^~~~~~~~~~~
/usr/include/llvm/ADT/StringRef.h:296:19: note: 'std::string_view' is only available from C++17 onwards
In file included from /usr/include/llvm/Support/MathExtras.h:16,
                 from /usr/include/llvm/ADT/BitmaskEnum.h:16,
                 from /usr/include/clang/Basic/BitmaskEnum.h:18,
                 from /usr/include/clang/AST/DependenceFlags.h:11,
                 from /usr/include/clang/AST/NestedNameSpecifier.h:17,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/RewriteUtils.h:16,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/Transformation.h:20:
/usr/include/llvm/ADT/bit.h: At global scope:
/usr/include/llvm/ADT/bit.h:64:56: error: 'is_integral_v' is not a member of 'std'; did you mean 'is_integral'?
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_integral
/usr/include/llvm/ADT/bit.h:64:56: error: 'is_integral_v' is not a member of 'std'; did you mean 'is_integral'?
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_integral
/usr/include/llvm/ADT/bit.h:64:70: error: template argument 1 is invalid
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                                      ^
/usr/include/llvm/ADT/bit.h:64:73: error: expected unqualified-id before '>' token
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                                         ^
/usr/include/llvm/ADT/bit.h:109:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:109:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:109:70: error: template argument 1 is invalid
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                      ^
/usr/include/llvm/ADT/bit.h:109:73: error: expected unqualified-id before '>' token
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                         ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countr_zero(T)':
/usr/include/llvm/ADT/bit.h:180:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  180 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:180:37: error: expected primary-expression before '>' token
  180 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:180:38: error: expected primary-expression before ',' token
  180 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countl_zero(T)':
/usr/include/llvm/ADT/bit.h:246:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  246 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:246:37: error: expected primary-expression before '>' token
  246 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:246:38: error: expected primary-expression before ',' token
  246 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countl_one(T)':
/usr/include/llvm/ADT/bit.h:259:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  259 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:259:37: error: expected primary-expression before '>' token
  259 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:259:38: error: expected primary-expression before ',' token
  259 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countr_one(T)':
/usr/include/llvm/ADT/bit.h:272:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  272 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:272:37: error: expected primary-expression before '>' token
  272 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:272:38: error: expected primary-expression before ',' token
  272 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::bit_width(T)':
/usr/include/llvm/ADT/bit.h:282:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  282 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:282:37: error: expected primary-expression before '>' token
  282 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:282:38: error: expected primary-expression before ',' token
  282 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'T llvm::bit_floor(T)':
/usr/include/llvm/ADT/bit.h:292:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  292 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:292:37: error: expected primary-expression before '>' token
  292 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:292:38: error: expected primary-expression before ',' token
  292 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'T llvm::bit_ceil(T)':
/usr/include/llvm/ADT/bit.h:307:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  307 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:307:37: error: expected primary-expression before '>' token
  307 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:307:38: error: expected primary-expression before ',' token
  307 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: At global scope:
/usr/include/llvm/ADT/bit.h:348:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:348:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:348:70: error: template argument 1 is invalid
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                      ^
/usr/include/llvm/ADT/bit.h:348:73: error: expected unqualified-id before '>' token
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                         ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countTrailingZeros(T)':
/usr/include/llvm/Support/MathExtras.h:78:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
   78 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:78:37: error: expected primary-expression before '>' token
   78 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:78:38: error: expected primary-expression before ',' token
   78 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countLeadingZeros(T)':
/usr/include/llvm/Support/MathExtras.h:90:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
   90 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:90:37: error: expected primary-expression before '>' token
   90 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:90:38: error: expected primary-expression before ',' token
   90 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'constexpr bool llvm::isPowerOf2_32(uint32_t)':
/usr/include/llvm/Support/MathExtras.h:325:16: error: 'has_single_bit' is not a member of 'llvm'
  325 |   return llvm::has_single_bit(Value);
      |                ^~~~~~~~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'constexpr bool llvm::isPowerOf2_64(uint64_t)':
/usr/include/llvm/Support/MathExtras.h:330:16: error: 'has_single_bit' is not a member of 'llvm'
  330 |   return llvm::has_single_bit(Value);
      |                ^~~~~~~~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countLeadingOnes(T)':
/usr/include/llvm/Support/MathExtras.h:341:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  341 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:341:37: error: expected primary-expression before '>' token
  341 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:341:38: error: expected primary-expression before ',' token
  341 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countTrailingOnes(T)':
/usr/include/llvm/Support/MathExtras.h:354:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  354 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:354:37: error: expected primary-expression before '>' token
  354 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:354:38: error: expected primary-expression before ',' token
  354 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countPopulation(T)':
/usr/include/llvm/Support/MathExtras.h:364:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  364 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:364:37: error: expected primary-expression before '>' token
  364 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:364:38: error: expected primary-expression before ',' token
  364 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h:366:26: error: 'popcount' is not a member of 'llvm'
  366 |   return (unsigned)llvm::popcount(Value);
      |                          ^~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'bool llvm::isShiftedMask_32(uint32_t, unsigned int&, unsigned int&)':
/usr/include/llvm/Support/MathExtras.h:379:19: error: 'popcount' is not a member of 'llvm'
  379 |   MaskLen = llvm::popcount(Value);
      |                   ^~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'bool llvm::isShiftedMask_64(uint64_t, unsigned int&, unsigned int&)':
/usr/include/llvm/Support/MathExtras.h:392:19: error: 'popcount' is not a member of 'llvm'
  392 |   MaskLen = llvm::popcount(Value);
      |                   ^~~~~~~~
/usr/include/llvm/Support/MathExtras.h: At global scope:
/usr/include/llvm/Support/MathExtras.h:620:23: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                       ^~~~~~~~~~~~~
      |                       is_unsigned
/usr/include/llvm/Support/MathExtras.h:620:23: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                       ^~~~~~~~~~~~~
      |                       is_unsigned
/usr/include/llvm/Support/MathExtras.h:620:38: error: template argument 1 is invalid
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h:620:39: error: expected unqualified-id before ',' token
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                                       ^
In file included from /usr/include/clang/Basic/Diagnostic.h:17,
                 from /usr/include/clang/AST/NestedNameSpecifier.h:18:
/usr/include/clang/Basic/DiagnosticIDs.h:241:15: error: 'optional' in namespace 'std' does not name a template type
  241 |   static std::optional<diag::Group> getGroupForWarningOption(StringRef);
      |               ^~~~~~~~
/usr/include/clang/Basic/DiagnosticIDs.h:241:10: note: 'std::optional' is only available from C++17 onwards
  241 |   static std::optional<diag::Group> getGroupForWarningOption(StringRef);
      |          ^~~
/usr/include/clang/Basic/DiagnosticIDs.h:244:15: error: 'optional' in namespace 'std' does not name a template type
  244 |   static std::optional<diag::Group> getGroupForDiag(unsigned DiagID);
      |               ^~~~~~~~
/usr/include/clang/Basic/DiagnosticIDs.h:244:10: note: 'std::optional' is only available from C++17 onwards
  244 |   static std::optional<diag::Group> getGroupForDiag(unsigned DiagID);
      |          ^~~
In file included from /usr/include/llvm/ADT/Hashing.h:49,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/clang/Basic/Diagnostic.h:21:
/usr/include/llvm/Support/SwapByteOrder.h: In function 'uint16_t llvm::ByteSwap_16(uint16_t)':
/usr/include/llvm/Support/SwapByteOrder.h:51:60: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_16'?
   51 | inline uint16_t ByteSwap_16(uint16_t value) { return llvm::byteswap(value); }
      |                                                            ^~~~~~~~
      |                                                            ByteSwap_16
/usr/include/llvm/Support/SwapByteOrder.h: In function 'uint32_t llvm::ByteSwap_32(uint32_t)':
/usr/include/llvm/Support/SwapByteOrder.h:54:60: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_32'?
   54 | inline uint32_t ByteSwap_32(uint32_t value) { return llvm::byteswap(value); }
      |                                                            ^~~~~~~~
      |                                                            ByteSwap_32
/usr/include/llvm/Support/SwapByteOrder.h: In function 'uint64_t llvm::ByteSwap_64(uint64_t)':
/usr/include/llvm/Support/SwapByteOrder.h:57:60: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   57 | inline uint64_t ByteSwap_64(uint64_t value) { return llvm::byteswap(value); }
      |                                                            ^~~~~~~~
      |                                                            ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'unsigned char llvm::sys::getSwappedBytes(unsigned char)':
/usr/include/llvm/Support/SwapByteOrder.h:69:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   69 | inline unsigned char      getSwappedBytes(unsigned char      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'signed char llvm::sys::getSwappedBytes(signed char)':
/usr/include/llvm/Support/SwapByteOrder.h:70:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   70 | inline   signed char      getSwappedBytes( signed  char      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'char llvm::sys::getSwappedBytes(char)':
/usr/include/llvm/Support/SwapByteOrder.h:71:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   71 | inline          char      getSwappedBytes(         char      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'short unsigned int llvm::sys::getSwappedBytes(short unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:73:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   73 | inline unsigned short     getSwappedBytes(unsigned short     C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'short int llvm::sys::getSwappedBytes(short int)':
/usr/include/llvm/Support/SwapByteOrder.h:74:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   74 | inline   signed short     getSwappedBytes(  signed short     C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'unsigned int llvm::sys::getSwappedBytes(unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:76:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   76 | inline unsigned int       getSwappedBytes(unsigned int       C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'int llvm::sys::getSwappedBytes(int)':
/usr/include/llvm/Support/SwapByteOrder.h:77:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   77 | inline   signed int       getSwappedBytes(  signed int       C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long unsigned int llvm::sys::getSwappedBytes(long unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:79:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   79 | inline unsigned long      getSwappedBytes(unsigned long      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long int llvm::sys::getSwappedBytes(long int)':
/usr/include/llvm/Support/SwapByteOrder.h:80:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   80 | inline   signed long      getSwappedBytes(  signed long      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long long unsigned int llvm::sys::getSwappedBytes(long long unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:82:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   82 | inline unsigned long long getSwappedBytes(unsigned long long C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long long int llvm::sys::getSwappedBytes(long long int)':
/usr/include/llvm/Support/SwapByteOrder.h:83:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   83 | inline   signed long long getSwappedBytes(  signed long long C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'float llvm::sys::getSwappedBytes(float)':
/usr/include/llvm/Support/SwapByteOrder.h:91:17: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   91 |   out.i = llvm::byteswap(in.i);
      |                 ^~~~~~~~
      |                 ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'double llvm::sys::getSwappedBytes(double)':
/usr/include/llvm/Support/SwapByteOrder.h:101:17: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
  101 |   out.i = llvm::byteswap(in.i);
      |                 ^~~~~~~~
      |                 ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'std::enable_if_t<std::is_enum<_Tp>::value, T> llvm::sys::getSwappedBytes(T)':
/usr/include/llvm/Support/SwapByteOrder.h:108:13: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
  108 |       llvm::byteswap(static_cast<std::underlying_type_t<T>>(C)));
      |             ^~~~~~~~
      |             ByteSwap_64
/usr/include/llvm/ADT/Hashing.h: At global scope:
/usr/include/llvm/ADT/Hashing.h:127:55: error: 'optional' in namespace 'std' does not name a template type
  127 | template <typename T> hash_code hash_value(const std::optional<T> &arg);
      |                                                       ^~~~~~~~
/usr/include/llvm/ADT/Hashing.h:127:50: note: 'std::optional' is only available from C++17 onwards
  127 | template <typename T> hash_code hash_value(const std::optional<T> &arg);
      |                                                  ^~~
/usr/include/llvm/ADT/Hashing.h:127:63: error: expected ',' or '...' before '<' token
  127 | template <typename T> hash_code hash_value(const std::optional<T> &arg);
      |                                                               ^
/usr/include/llvm/ADT/Hashing.h: In function 'llvm::hash_code llvm::hash_value(const std::tuple<_Args1 ...>&)':
/usr/include/llvm/ADT/Hashing.h:658:15: error: 'apply' is not a member of 'std'
  658 |   return std::apply([](const auto &...xs) { return hash_combine(xs...); }, arg);
      |               ^~~~~
/usr/include/llvm/ADT/Hashing.h:658:15: note: 'std::apply' is only available from C++17 onwards
/usr/include/llvm/ADT/Hashing.h: At global scope:
/usr/include/llvm/ADT/Hashing.h:668:55: error: 'optional' in namespace 'std' does not name a template type
  668 | template <typename T> hash_code hash_value(const std::optional<T> &arg) {
      |                                                       ^~~~~~~~
/usr/include/llvm/ADT/Hashing.h:668:50: note: 'std::optional' is only available from C++17 onwards
  668 | template <typename T> hash_code hash_value(const std::optional<T> &arg) {
      |                                                  ^~~
/usr/include/llvm/ADT/Hashing.h:668:63: error: expected ',' or '...' before '<' token
  668 | template <typename T> hash_code hash_value(const std::optional<T> &arg) {
      |                                                               ^
/usr/include/llvm/ADT/Hashing.h: In function 'llvm::hash_code llvm::hash_value(int)':
/usr/include/llvm/ADT/Hashing.h:669:10: error: 'arg' was not declared in this scope
  669 |   return arg ? hash_combine(true, *arg) : hash_value(false);
      |          ^~~
In file included from /usr/include/llvm/ADT/ArrayRef.h:14:
/usr/include/llvm/ADT/STLExtras.h: At global scope:
/usr/include/llvm/ADT/STLExtras.h:81:22: error: 'void_t' is not a member of 'std'
   81 | struct detector<std::void_t<Op<Args...>>, Op, Args...> {
      |                      ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:81:22: note: 'std::void_t' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h:81:22: error: 'void_t' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:81:22: note: 'std::void_t' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h:81:39: error: wrong number of template arguments (1, should be at least 2)
   81 | struct detector<std::void_t<Op<Args...>>, Op, Args...> {
      |                                       ^~
/usr/include/llvm/ADT/STLExtras.h:77:70: note: provided for 'template<class, template<class ...> class Op, class ... Args> struct llvm::detail::detector'
   77 | template <class, template <class...> class Op, class... Args> struct detector {
      |                                                                      ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:144:24: error: 'disjunction' in namespace 'std' does not name a template type
  144 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                        ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:144:19: note: 'std::disjunction' is only available from C++17 onwards
  144 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                   ^~~
/usr/include/llvm/ADT/STLExtras.h:149:26: error: 'conjunction' in namespace 'std' does not name a template type
  149 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                          ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:149:21: note: 'std::conjunction' is only available from C++17 onwards
  149 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                     ^~~
/usr/include/llvm/ADT/STLExtras.h:155:37: error: 'is_one_of' was not declared in this scope
  155 |     : std::integral_constant<bool, !is_one_of<T, Us...>::value &&
      |                                     ^~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:155:55: error: template argument 2 is invalid
  155 |     : std::integral_constant<bool, !is_one_of<T, Us...>::value &&
      |                                                       ^
/usr/include/llvm/ADT/STLExtras.h:155:56: error: expected '{' before '::' token
  155 |     : std::integral_constant<bool, !is_one_of<T, Us...>::value &&
      |                                                        ^~
/usr/include/llvm/ADT/STLExtras.h:224:23: error: 'is_function_v' is not a member of 'std'; did you mean 'is_function'?
  224 |           bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
      |                       ^~~~~~~~~~~~~
      |                       is_function
/usr/include/llvm/ADT/STLExtras.h:224:77: error: expected primary-expression before '>>' token
  224 |           bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
      |                                                                             ^~
/usr/include/llvm/ADT/STLExtras.h:224:77: error: expected '>' before '>>' token
/usr/include/llvm/ADT/STLExtras.h:230:8: error: 'optional' in namespace 'std' does not name a template type
  230 |   std::optional<value_type> Obj;
      |        ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:230:3: note: 'std::optional' is only available from C++17 onwards
  230 |   std::optional<value_type> Obj;
      |   ^~~
/usr/include/llvm/ADT/STLExtras.h:232:23: error: 'is_pointer_v' is not a member of 'std'; did you mean 'is_pointer'?
  232 |   static_assert(!std::is_pointer_v<value_type>,
      |                       ^~~~~~~~~~~~
      |                       is_pointer
/usr/include/llvm/ADT/STLExtras.h:232:46: error: expected primary-expression before '>' token
  232 |   static_assert(!std::is_pointer_v<value_type>,
      |                                              ^
/usr/include/llvm/ADT/STLExtras.h:232:47: error: expected primary-expression before ',' token
  232 |   static_assert(!std::is_pointer_v<value_type>,
      |                                               ^
/usr/include/llvm/ADT/STLExtras.h:257:35: error: 'is_invocable_v' is not a member of 'std'
  257 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                   ^~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:257:35: error: 'is_invocable_v' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:257:58: error: pack expansion argument for non-pack parameter '_Tp' of alias template 'template<bool _Cond, class _Tp> using std::enable_if_t = typename std::enable_if::type'
  257 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                          ^
In file included from /usr/include/c++/13/bits/char_traits.h:50,
                 from /usr/include/c++/13/string:42,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/CallExprToValue.h:14:
/usr/include/c++/13/type_traits:2609:24: note: declared here
 2609 |   template<bool _Cond, typename _Tp = void>
      |                        ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:257:66: error: expected unqualified-id before '=' token
  257 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                                  ^
/usr/include/llvm/ADT/STLExtras.h:263:35: error: 'is_invocable_v' is not a member of 'std'
  263 |             std::enable_if_t<std::is_invocable_v<T const, Pn...>, int> = 0>
      |                                   ^~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:263:35: error: 'is_invocable_v' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:263:64: error: template argument 1 is invalid
  263 |             std::enable_if_t<std::is_invocable_v<T const, Pn...>, int> = 0>
      |                                                                ^
/usr/include/llvm/ADT/STLExtras.h:263:72: error: expected unqualified-id before '=' token
  263 |             std::enable_if_t<std::is_invocable_v<T const, Pn...>, int> = 0>
      |                                                                        ^
/usr/include/llvm/ADT/STLExtras.h: In constructor 'llvm::callable_detail::Callable<T, <anonymous> >::Callable(const T&)':
/usr/include/llvm/ADT/STLExtras.h:237:26: error: class 'llvm::callable_detail::Callable<T, <anonymous> >' does not have any field named 'Obj'
  237 |   Callable(T const &O) : Obj(std::in_place, O) {}
      |                          ^~~
/usr/include/llvm/ADT/STLExtras.h:237:35: error: 'in_place' is not a member of 'std'
  237 |   Callable(T const &O) : Obj(std::in_place, O) {}
      |                                   ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:237:35: note: 'std::in_place' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >& llvm::callable_detail::Callable<T, <anonymous> >::operator=(const llvm::callable_detail::Callable<T, <anonymous> >&)':
/usr/include/llvm/ADT/STLExtras.h:243:5: error: 'Obj' was not declared in this scope
  243 |     Obj = std::nullopt;
      |     ^~~
/usr/include/llvm/ADT/STLExtras.h:243:16: error: 'nullopt' is not a member of 'std'
  243 |     Obj = std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:243:16: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >& llvm::callable_detail::Callable<T, <anonymous> >::operator=(llvm::callable_detail::Callable<T, <anonymous> >&&)':
/usr/include/llvm/ADT/STLExtras.h:250:5: error: 'Obj' was not declared in this scope
  250 |     Obj = std::nullopt;
      |     ^~~
/usr/include/llvm/ADT/STLExtras.h:250:16: error: 'nullopt' is not a member of 'std'
  250 |     Obj = std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:250:16: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'bool llvm::callable_detail::Callable<T, <anonymous> >::valid() const':
/usr/include/llvm/ADT/STLExtras.h:268:31: error: 'Obj' was not declared in this scope
  268 |   bool valid() const { return Obj != std::nullopt; }
      |                               ^~~
/usr/include/llvm/ADT/STLExtras.h:268:43: error: 'nullopt' is not a member of 'std'
  268 |   bool valid() const { return Obj != std::nullopt; }
      |                                           ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:268:43: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'bool llvm::callable_detail::Callable<T, <anonymous> >::reset()':
/usr/include/llvm/ADT/STLExtras.h:269:25: error: 'Obj' was not declared in this scope
  269 |   bool reset() { return Obj = std::nullopt; }
      |                         ^~~
/usr/include/llvm/ADT/STLExtras.h:269:36: error: 'nullopt' is not a member of 'std'
  269 |   bool reset() { return Obj = std::nullopt; }
      |                                    ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:269:36: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >::operator reference()':
/usr/include/llvm/ADT/STLExtras.h:271:34: error: 'Obj' was not declared in this scope
  271 |   operator reference() { return *Obj; }
      |                                  ^~~
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >::operator const_reference() const':
/usr/include/llvm/ADT/STLExtras.h:272:46: error: 'Obj' was not declared in this scope
  272 |   operator const_reference() const { return *Obj; }
      |                                              ^~~
/usr/include/llvm/ADT/STLExtras.h: At global scope:
/usr/include/llvm/ADT/STLExtras.h:278:38: error: 'is_pointer_v' is not a member of 'std'; did you mean 'is_pointer'?
  278 |   static constexpr bool IsPtr = std::is_pointer_v<remove_cvref_t<T>>;
      |                                      ^~~~~~~~~~~~
      |                                      is_pointer
/usr/include/llvm/ADT/STLExtras.h:278:67: error: expected primary-expression before '>' token
  278 |   static constexpr bool IsPtr = std::is_pointer_v<remove_cvref_t<T>>;
      |                                                                   ^~
/usr/include/llvm/ADT/STLExtras.h:278:69: error: expected primary-expression before ';' token
  278 |   static constexpr bool IsPtr = std::is_pointer_v<remove_cvref_t<T>>;
      |                                                                     ^
/usr/include/llvm/ADT/STLExtras.h:284:3: error: 'StorageT' does not name a type
  284 |   StorageT Func = nullptr;
      |   ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:307:13: error: 'is_same_v' is not a member of 'std'; did you mean 'is_same'?
  307 |       !std::is_same_v<remove_cvref_t<FnPtrOrRef>, Callable>, int
      |             ^~~~~~~~~
      |             is_same
/usr/include/llvm/ADT/STLExtras.h:307:59: error: template argument 1 is invalid
  307 |       !std::is_same_v<remove_cvref_t<FnPtrOrRef>, Callable>, int
      |                                                           ^
/usr/include/llvm/ADT/STLExtras.h:308:7: error: expected unqualified-id before '=' token
  308 |     > = 0
      |       ^
/usr/include/llvm/ADT/STLExtras.h:313:35: error: 'is_invocable_v' is not a member of 'std'
  313 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                   ^~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:313:35: error: 'is_invocable_v' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:313:58: error: pack expansion argument for non-pack parameter '_Tp' of alias template 'template<bool _Cond, class _Tp> using std::enable_if_t = typename std::enable_if::type'
  313 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                          ^
/usr/include/c++/13/type_traits:2609:24: note: declared here
 2609 |   template<bool _Cond, typename _Tp = void>
      |                        ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:313:66: error: expected unqualified-id before '=' token
  313 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                                  ^
/usr/include/llvm/ADT/STLExtras.h: In member function 'bool llvm::callable_detail::Callable<T, true>::valid() const':
/usr/include/llvm/ADT/STLExtras.h:318:31: error: 'Func' was not declared in this scope
  318 |   bool valid() const { return Func != nullptr; }
      |                               ^~~~
/usr/include/llvm/ADT/STLExtras.h: In member function 'void llvm::callable_detail::Callable<T, true>::reset()':
/usr/include/llvm/ADT/STLExtras.h:319:18: error: 'Func' was not declared in this scope
  319 |   void reset() { Func = nullptr; }
      |                  ^~~~
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, true>::operator const T&() const':
/usr/include/llvm/ADT/STLExtras.h:324:14: error: 'Func' was not declared in this scope
  324 |       return Func;
      |              ^~~~
/usr/include/llvm/ADT/STLExtras.h:326:26: error: 'is_reference_v' is not a member of 'std'; did you mean 'is_reference'?
  326 |       static_assert(std::is_reference_v<T>,
      |                          ^~~~~~~~~~~~~~
      |                          is_reference
/usr/include/llvm/ADT/STLExtras.h:326:42: error: expected primary-expression before '>' token
  326 |       static_assert(std::is_reference_v<T>,
      |                                          ^
/usr/include/llvm/ADT/STLExtras.h:326:43: error: expected primary-expression before ',' token
  326 |       static_assert(std::is_reference_v<T>,
      |                                           ^
/usr/include/llvm/ADT/STLExtras.h:329:15: error: 'Func' was not declared in this scope
  329 |       return *Func;
      |               ^~~~
/usr/include/llvm/ADT/STLExtras.h: At global scope:
/usr/include/llvm/ADT/STLExtras.h:423:35: error: template argument 2 is invalid
  423 |   callable_detail::Callable<FuncTy> F{};
      |                                   ^
/usr/include/llvm/ADT/STLExtras.h:927:60: error: 'optional' in namespace 'std' does not name a template type
  927 | auto deref_or_none(const Iter &I, const Iter &End) -> std::optional<
      |                                                            ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:927:55: note: 'std::optional' is only available from C++17 onwards
  927 | auto deref_or_none(const Iter &I, const Iter &End) -> std::optional<
      |                                                       ^~~
/usr/include/llvm/ADT/STLExtras.h:927:68: error: expected initializer before '<' token
  927 | auto deref_or_none(const Iter &I, const Iter &End) -> std::optional<
      |                                                                    ^
/usr/include/llvm/ADT/STLExtras.h:935:21: error: 'optional' in namespace 'std' does not name a template type
  935 |   using type = std::optional<std::remove_const_t<
      |                     ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:935:16: note: 'std::optional' is only available from C++17 onwards
  935 |   using type = std::optional<std::remove_const_t<
      |                ^~~
/usr/include/llvm/ADT/STLExtras.h:1511:24: error: 'disjunction' in namespace 'std' does not name a template type
 1511 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                        ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1511:19: note: 'std::disjunction' is only available from C++17 onwards
 1511 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                   ^~~
/usr/include/llvm/ADT/STLExtras.h:1516:26: error: 'conjunction' in namespace 'std' does not name a template type
 1516 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                          ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1516:21: note: 'std::conjunction' is only available from C++17 onwards
 1516 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                     ^~~
/usr/include/llvm/ADT/STLExtras.h:1675:38: error: 'conjunction' in namespace 'std' does not name a template type
 1675 | using sort_trivially_copyable = std::conjunction<
      |                                      ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1675:33: note: 'std::conjunction' is only available from C++17 onwards
 1675 | using sort_trivially_copyable = std::conjunction<
      |                                 ^~~
/usr/include/llvm/ADT/STLExtras.h: In function 'void llvm::sort(IteratorTy, IteratorTy)':
/usr/include/llvm/ADT/STLExtras.h:1684:25: error: 'sort_trivially_copyable' is not a member of 'llvm::detail'
 1684 |   if constexpr (detail::sort_trivially_copyable<IteratorTy>::value) {
      |                         ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1684:59: error: expected primary-expression before '>' token
 1684 |   if constexpr (detail::sort_trivially_copyable<IteratorTy>::value) {
      |                                                           ^
/usr/include/llvm/ADT/STLExtras.h:1684:62: error: '::value' has not been declared
 1684 |   if constexpr (detail::sort_trivially_copyable<IteratorTy>::value) {
      |                                                              ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In function 'bool llvm::detail::all_of_zip_predicate_first(Predicate&&, Args&& ...)':
/usr/include/llvm/ADT/STLExtras.h:2276:15: error: 'apply' is not a member of 'std'
 2276 |     if (!std::apply([&](auto &&...args) { return P(args...); }, *it))
      |               ^~~~~
/usr/include/llvm/ADT/STLExtras.h:2276:15: note: 'std::apply' is only available from C++17 onwards
/usr/include/llvm/ADT/ArrayRef.h: At global scope:
/usr/include/llvm/ADT/ArrayRef.h:70:27: error: invalid use of '::'
   70 |     /*implicit*/ ArrayRef(std::nullopt_t) {}
      |                           ^~~
/usr/include/llvm/ADT/ArrayRef.h:70:44: error: expected ';' at end of member declaration
   70 |     /*implicit*/ ArrayRef(std::nullopt_t) {}
      |                                            ^
      |                                             ;
/usr/include/llvm/ADT/ArrayRef.h:323:34: error: invalid use of '::'
  323 |     /*implicit*/ MutableArrayRef(std::nullopt_t) : ArrayRef<T>() {}
      |                                  ^~~
/usr/include/llvm/ADT/ArrayRef.h:472:65: error: expected constructor, destructor, or type conversion before ';' token
  472 |   template <typename T> ArrayRef(const T &OneElt) -> ArrayRef<T>;
      |                                                                 ^
/usr/include/llvm/ADT/ArrayRef.h:475:78: error: expected constructor, destructor, or type conversion before ';' token
  475 |   template <typename T> ArrayRef(const T *data, size_t length) -> ArrayRef<T>;
      |                                                                              ^
/usr/include/llvm/ADT/ArrayRef.h:478:77: error: expected constructor, destructor, or type conversion before ';' token
  478 |   template <typename T> ArrayRef(const T *data, const T *end) -> ArrayRef<T>;
      |                                                                             ^
/usr/include/llvm/ADT/ArrayRef.h:481:79: error: expected constructor, destructor, or type conversion before ';' token
  481 |   template <typename T> ArrayRef(const SmallVectorImpl<T> &Vec) -> ArrayRef<T>;
      |                                                                               ^
/usr/include/llvm/ADT/ArrayRef.h:485:56: error: expected constructor, destructor, or type conversion before ';' token
  485 |   ArrayRef(const SmallVector<T, N> &Vec) -> ArrayRef<T>;
      |                                                        ^
/usr/include/llvm/ADT/ArrayRef.h:488:75: error: expected constructor, destructor, or type conversion before ';' token
  488 |   template <typename T> ArrayRef(const std::vector<T> &Vec) -> ArrayRef<T>;
      |                                                                           ^
/usr/include/llvm/ADT/ArrayRef.h:492:55: error: expected constructor, destructor, or type conversion before ';' token
  492 |   ArrayRef(const std::array<T, N> &Vec) -> ArrayRef<T>;
      |                                                       ^
/usr/include/llvm/ADT/ArrayRef.h:495:72: error: expected constructor, destructor, or type conversion before ';' token
  495 |   template <typename T> ArrayRef(const ArrayRef<T> &Vec) -> ArrayRef<T>;
      |                                                                        ^
/usr/include/llvm/ADT/ArrayRef.h:498:66: error: expected constructor, destructor, or type conversion before ';' token
  498 |   template <typename T> ArrayRef(ArrayRef<T> &Vec) -> ArrayRef<T>;
      |                                                                  ^
/usr/include/llvm/ADT/ArrayRef.h:501:77: error: expected constructor, destructor, or type conversion before ';' token
  501 |   template <typename T, size_t N> ArrayRef(const T (&Arr)[N]) -> ArrayRef<T>;
      |                                                                             ^
/usr/include/llvm/ADT/ArrayRef.h:580:70: error: expected constructor, destructor, or type conversion before ';' token
  580 |   template <class T> MutableArrayRef(T &OneElt) -> MutableArrayRef<T>;
      |                                                                      ^
/usr/include/llvm/ADT/ArrayRef.h:585:64: error: expected constructor, destructor, or type conversion before ';' token
  585 |   MutableArrayRef(T *data, size_t length) -> MutableArrayRef<T>;
      |                                                                ^
/usr/include/llvm/ADT/ArrayRef.h:589:65: error: expected constructor, destructor, or type conversion before ';' token
  589 |   MutableArrayRef(SmallVectorImpl<T> &Vec) -> MutableArrayRef<T>;
      |                                                                 ^
/usr/include/llvm/ADT/ArrayRef.h:592:64: error: expected constructor, destructor, or type conversion before ';' token
  592 |   MutableArrayRef(SmallVector<T, N> &Vec) -> MutableArrayRef<T>;
      |                                                                ^
/usr/include/llvm/ADT/ArrayRef.h:595:80: error: expected constructor, destructor, or type conversion before ';' token
  595 |   template <class T> MutableArrayRef(std::vector<T> &Vec) -> MutableArrayRef<T>;
      |                                                                                ^
/usr/include/llvm/ADT/ArrayRef.h:599:63: error: expected constructor, destructor, or type conversion before ';' token
  599 |   MutableArrayRef(std::array<T, N> &Vec) -> MutableArrayRef<T>;
      |                                                               ^
/usr/include/llvm/ADT/ArrayRef.h:603:53: error: expected constructor, destructor, or type conversion before ';' token
  603 |   MutableArrayRef(T (&Arr)[N]) -> MutableArrayRef<T>;
      |                                                     ^
/usr/include/clang/Basic/Diagnostic.h: In static member function 'static clang::FixItHint clang::FixItHint::CreateInsertion(clang::SourceLocation, llvm::StringRef, bool)':
/usr/include/clang/Basic/Diagnostic.h:103:41: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  103 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
In file included from /usr/include/c++/13/string:54:
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:103:41: note:   candidate expects 3 arguments, 1 provided
  103 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: In static member function 'static clang::FixItHint clang::FixItHint::CreateReplacement(clang::CharSourceRange, llvm::StringRef)':
/usr/include/clang/Basic/Diagnostic.h:138:41: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  138 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:138:41: note:   candidate expects 3 arguments, 1 provided
  138 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: In member function 'void clang::StreamingDiagnostic::AddString(llvm::StringRef) const':
/usr/include/clang/Basic/Diagnostic.h:1202:78: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
 1202 |     DiagStorage->DiagArgumentsStr[DiagStorage->NumDiagArgs++] = std::string(V);
      |                                                                              ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:1202:78: note:   candidate expects 3 arguments, 1 provided
 1202 |     DiagStorage->DiagArgumentsStr[DiagStorage->NumDiagArgs++] = std::string(V);
      |                                                                              ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: In member function 'void clang::DiagnosticBuilder::addFlagValue(llvm::StringRef) const':
/usr/include/clang/Basic/Diagnostic.h:1369:76: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
 1369 |   void addFlagValue(StringRef V) const { DiagObj->FlagValue = std::string(V); }
      |                                                                            ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:1369:76: note:   candidate expects 3 arguments, 1 provided
 1369 |   void addFlagValue(StringRef V) const { DiagObj->FlagValue = std::string(V); }
      |                                                                            ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: At global scope:
/usr/include/clang/Basic/Diagnostic.h:1514:23: error: 'optional' in namespace 'std' does not name a template type
 1514 |            const std::optional<SourceRange> &Opt) {
      |                       ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1514:18: note: 'std::optional' is only available from C++17 onwards
 1514 |            const std::optional<SourceRange> &Opt) {
      |                  ^~~
/usr/include/clang/Basic/Diagnostic.h:1514:31: error: expected ',' or '...' before '<' token
 1514 |            const std::optional<SourceRange> &Opt) {
      |                               ^
/usr/include/clang/Basic/Diagnostic.h:1513:1: error: redefinition of 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)'
 1513 | operator<<(const StreamingDiagnostic &DB,
      | ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1401:35: note: 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)' previously defined here
 1401 | inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
      |                                   ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h: In function 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)':
/usr/include/clang/Basic/Diagnostic.h:1515:7: error: 'Opt' was not declared in this scope
 1515 |   if (Opt)
      |       ^~~
/usr/include/clang/Basic/Diagnostic.h: At global scope:
/usr/include/clang/Basic/Diagnostic.h:1522:23: error: 'optional' in namespace 'std' does not name a template type
 1522 |            const std::optional<CharSourceRange> &Opt) {
      |                       ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1522:18: note: 'std::optional' is only available from C++17 onwards
 1522 |            const std::optional<CharSourceRange> &Opt) {
      |                  ^~~
/usr/include/clang/Basic/Diagnostic.h:1522:31: error: expected ',' or '...' before '<' token
 1522 |            const std::optional<CharSourceRange> &Opt) {
      |                               ^
/usr/include/clang/Basic/Diagnostic.h:1521:1: error: redefinition of 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)'
 1521 | operator<<(const StreamingDiagnostic &DB,
      | ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1401:35: note: 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)' previously defined here
 1401 | inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
      |                                   ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h: In function 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)':
/usr/include/clang/Basic/Diagnostic.h:1523:7: error: 'Opt' was not declared in this scope
 1523 |   if (Opt)
      |       ^~~
/usr/include/clang/Basic/Diagnostic.h: At global scope:
/usr/include/clang/Basic/Diagnostic.h:1529:54: error: 'optional' in namespace 'std' does not name a template type
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      |                                                      ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1529:49: note: 'std::optional' is only available from C++17 onwards
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      |                                                 ^~~
/usr/include/clang/Basic/Diagnostic.h:1529:62: error: expected ',' or '...' before '<' token
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      |                                                              ^
/usr/include/clang/Basic/Diagnostic.h:1529:1: error: redefinition of 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)'
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      | ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1401:35: note: 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)' previously defined here
 1401 | inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
      |                                   ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h: In function 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)':
/usr/include/clang/Basic/Diagnostic.h:1530:7: error: 'Opt' was not declared in this scope
 1530 |   if (Opt)
      |       ^~~
/usr/include/clang/Basic/Diagnostic.h: In member function 'llvm::ArrayRef<clang::CharSourceRange> clang::StoredDiagnostic::getRanges() const':
/usr/include/clang/Basic/Diagnostic.h:1724:70: error: missing template arguments before '(' token
 1724 |   ArrayRef<CharSourceRange> getRanges() const { return llvm::ArrayRef(Ranges); }
      |                                                                      ^
/usr/include/clang/Basic/Diagnostic.h: In member function 'llvm::ArrayRef<clang::FixItHint> clang::StoredDiagnostic::getFixIts() const':
/usr/include/clang/Basic/Diagnostic.h:1732:64: error: missing template arguments before '(' token
 1732 |   ArrayRef<FixItHint> getFixIts() const { return llvm::ArrayRef(FixIts); }
      |                                                                ^
In file included from /usr/include/llvm/Support/Allocator.h:21,
                 from /usr/include/llvm/ADT/FoldingSet.h:22,
                 from /usr/include/clang/AST/NestedNameSpecifier.h:21:
/usr/include/llvm/Support/Alignment.h: At global scope:
/usr/include/llvm/Support/Alignment.h:117:41: error: expected template-name before '<' token
  117 | struct MaybeAlign : public std::optional<Align> {
      |                                         ^
/usr/include/llvm/Support/Alignment.h:117:41: error: expected '{' before '<' token
/usr/include/llvm/Support/Alignment.h:117:41: error: expected unqualified-id before '<' token
/usr/include/llvm/Support/Alignment.h:217:35: error: 'A' has incomplete type
  217 | inline unsigned encode(MaybeAlign A) { return A ? A->ShiftValue + 1 : 0; }
      |                        ~~~~~~~~~~~^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:220:50: error: return type 'struct llvm::MaybeAlign' is incomplete
  220 | inline MaybeAlign decodeMaybeAlign(unsigned Value) {
      |                                                  ^
/usr/include/llvm/Support/Alignment.h:220:19: error: ambiguating new declaration of 'void llvm::decodeMaybeAlign(unsigned int)'
  220 | inline MaybeAlign decodeMaybeAlign(unsigned Value) {
      |                   ^~~~~~~~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:53:28: note: old declaration 'llvm::MaybeAlign llvm::decodeMaybeAlign(unsigned int)'
   53 |   friend struct MaybeAlign decodeMaybeAlign(unsigned Value);
      |                            ^~~~~~~~~~~~~~~~
/usr/include/llvm/Support/Alignment.h: In function 'void llvm::decodeMaybeAlign(unsigned int)':
/usr/include/llvm/Support/Alignment.h:222:23: error: invalid use of incomplete type 'struct llvm::MaybeAlign'
  222 |     return MaybeAlign();
      |                       ^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:224:7: error: 'uint8_t llvm::Align::ShiftValue' is private within this context
  224 |   Out.ShiftValue = Value - 1;
      |       ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:41:11: note: declared private here
   41 |   uint8_t ShiftValue = 0; /// The log2 of the required alignment.
      |           ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h: In function 'unsigned int llvm::encode(Align)':
/usr/include/llvm/Support/Alignment.h:230:61: error: invalid use of incomplete type 'struct llvm::MaybeAlign'
  230 | inline unsigned encode(Align A) { return encode(MaybeAlign(A)); }
      |                                                             ^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h: At global scope:
/usr/include/llvm/Support/Alignment.h:295:35: error: 'Lhs' has incomplete type
  295 | inline bool operator==(MaybeAlign Lhs, Align Rhs) { return Lhs && *Lhs == Rhs; }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:296:35: error: 'Lhs' has incomplete type
  296 | inline bool operator!=(MaybeAlign Lhs, Align Rhs) { return !(Lhs == Rhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:297:46: error: 'Rhs' has incomplete type
  297 | inline bool operator==(Align Lhs, MaybeAlign Rhs) { return Rhs == Lhs; }
      |                                   ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:298:46: error: 'Rhs' has incomplete type
  298 | inline bool operator!=(Align Lhs, MaybeAlign Rhs) { return !(Rhs == Lhs); }
      |                                   ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:300:35: error: 'Lhs' has incomplete type
  300 | inline bool operator==(MaybeAlign Lhs, MaybeAlign Rhs) {
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:300:51: error: 'Rhs' has incomplete type
  300 | inline bool operator==(MaybeAlign Lhs, MaybeAlign Rhs) {
      |                                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:303:35: error: 'Lhs' has incomplete type
  303 | inline bool operator!=(MaybeAlign Lhs, MaybeAlign Rhs) { return !(Lhs == Rhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:303:51: error: 'Rhs' has incomplete type
  303 | inline bool operator!=(MaybeAlign Lhs, MaybeAlign Rhs) { return !(Lhs == Rhs); }
      |                                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:305:45: error: 'std::nullopt_t' has not been declared
  305 | inline bool operator==(MaybeAlign Lhs, std::nullopt_t) { return !bool(Lhs); }
      |                                             ^~~~~~~~~
/usr/include/llvm/Support/Alignment.h:305:35: error: 'Lhs' has incomplete type
  305 | inline bool operator==(MaybeAlign Lhs, std::nullopt_t) { return !bool(Lhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:306:45: error: 'std::nullopt_t' has not been declared
  306 | inline bool operator!=(MaybeAlign Lhs, std::nullopt_t) { return bool(Lhs); }
      |                                             ^~~~~~~~~
/usr/include/llvm/Support/Alignment.h:306:35: error: 'Lhs' has incomplete type
  306 | inline bool operator!=(MaybeAlign Lhs, std::nullopt_t) { return bool(Lhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:307:13: error: declaration of 'operator==' as non-function
  307 | inline bool operator==(std::nullopt_t, MaybeAlign Rhs) { return !bool(Rhs); }
      |             ^~~~~~~~
/usr/include/llvm/Support/Alignment.h:307:29: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  307 | inline bool operator==(std::nullopt_t, MaybeAlign Rhs) { return !bool(Rhs); }
      |                             ^~~~~~~~~
      |                             nullptr_t
/usr/include/llvm/Support/Alignment.h:307:51: error: expected primary-expression before 'Rhs'
  307 | inline bool operator==(std::nullopt_t, MaybeAlign Rhs) { return !bool(Rhs); }
      |                                                   ^~~
/usr/include/llvm/Support/Alignment.h:308:13: error: declaration of 'operator!=' as non-function
  308 | inline bool operator!=(std::nullopt_t, MaybeAlign Rhs) { return bool(Rhs); }
      |             ^~~~~~~~
/usr/include/llvm/Support/Alignment.h:308:29: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  308 | inline bool operator!=(std::nullopt_t, MaybeAlign Rhs) { return bool(Rhs); }
      |                             ^~~~~~~~~
      |                             nullptr_t
/usr/include/llvm/Support/Alignment.h:308:51: error: expected primary-expression before 'Rhs'
  308 | inline bool operator!=(std::nullopt_t, MaybeAlign Rhs) { return bool(Rhs); }
      |                                                   ^~~
/usr/include/llvm/Support/Alignment.h: In function 'std::string llvm::DebugStr(const MaybeAlign&)':
/usr/include/llvm/Support/Alignment.h:317:7: error: could not convert 'MA' from 'const llvm::MaybeAlign' to 'bool'
  317 |   if (MA)
      |       ^~
      |       |
      |       const llvm::MaybeAlign
/usr/include/llvm/Support/Alignment.h:318:29: error: base operand of '->' has non-pointer type 'const llvm::MaybeAlign'
  318 |     return std::to_string(MA->value());
      |                             ^~
/usr/include/llvm/Support/Allocator.h: At global scope:
/usr/include/llvm/Support/Allocator.h:232:8: error: 'optional' in namespace 'std' does not name a template type
  232 |   std::optional<int64_t> identifyObject(const void *Ptr) {
      |        ^~~~~~~~
/usr/include/llvm/Support/Allocator.h:232:3: note: 'std::optional' is only available from C++17 onwards
  232 |   std::optional<int64_t> identifyObject(const void *Ptr) {
      |   ^~~
/usr/include/llvm/Support/Allocator.h: In member function 'int64_t llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold, GrowthDelay>::identifyKnownObject(const void*)':
/usr/include/llvm/Support/Allocator.h:259:10: error: 'optional' is not a member of 'std'
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |          ^~~~~~~~
/usr/include/llvm/Support/Allocator.h:259:10: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Allocator.h:259:26: error: expected primary-expression before '>' token
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |                          ^
/usr/include/llvm/Support/Allocator.h:259:28: error: 'Out' was not declared in this scope
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |                            ^~~
/usr/include/llvm/Support/Allocator.h:259:34: error: there are no arguments to 'identifyObject' that depend on a template parameter, so a declaration of 'identifyObject' must be available [-fpermissive]
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |                                  ^~~~~~~~~~~~~~
/usr/include/llvm/Support/Allocator.h:259:34: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from /usr/include/llvm/ADT/APSInt.h:18,
                 from /usr/include/llvm/ADT/APFixedPoint.h:19,
                 from /usr/include/clang/AST/APValue.h:17,
                 from /usr/include/clang/AST/Expr.h:16,
                 from /usr/include/clang/AST/ASTConcept.h:17,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:16,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/CallExprToValue.cpp:17:
/usr/include/llvm/ADT/APInt.h: At global scope:
/usr/include/llvm/ADT/APInt.h:1506:8: error: 'optional' in namespace 'std' does not name a template type
 1506 |   std::optional<uint64_t> tryZExtValue() const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:1506:3: note: 'std::optional' is only available from C++17 onwards
 1506 |   std::optional<uint64_t> tryZExtValue() const {
      |   ^~~
/usr/include/llvm/ADT/APInt.h:1528:8: error: 'optional' in namespace 'std' does not name a template type
 1528 |   std::optional<int64_t> trySExtValue() const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:1528:3: note: 'std::optional' is only available from C++17 onwards
 1528 |   std::optional<int64_t> trySExtValue() const {
      |   ^~~
/usr/include/llvm/ADT/APInt.h: In member function 'unsigned int llvm::APInt::countPopulation() const':
/usr/include/llvm/ADT/APInt.h:1621:20: error: 'popcount' is not a member of 'llvm'; did you mean 'count'?
 1621 |       return llvm::popcount(U.VAL);
      |                    ^~~~~~~~
      |                    count
/usr/include/llvm/ADT/APInt.h: At global scope:
/usr/include/llvm/ADT/APInt.h:2279:6: error: 'optional' in namespace 'std' does not name a template type
 2279 | std::optional<APInt> SolveQuadraticEquationWrap(APInt A, APInt B, APInt C,
      |      ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:2279:1: note: 'std::optional' is only available from C++17 onwards
 2279 | std::optional<APInt> SolveQuadraticEquationWrap(APInt A, APInt B, APInt C,
      | ^~~
/usr/include/llvm/ADT/APInt.h:2284:6: error: 'optional' in namespace 'std' does not name a template type
 2284 | std::optional<unsigned> GetMostSignificantDifferentBit(const APInt &A,
      |      ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:2284:1: note: 'std::optional' is only available from C++17 onwards
 2284 | std::optional<unsigned> GetMostSignificantDifferentBit(const APInt &A,
      | ^~~
/usr/include/llvm/ADT/APSInt.h:103:8: error: 'optional' in namespace 'std' does not name a template type
  103 |   std::optional<int64_t> tryExtValue() const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APSInt.h:103:3: note: 'std::optional' is only available from C++17 onwards
  103 |   std::optional<int64_t> tryExtValue() const {
      |   ^~~
In file included from /usr/include/llvm/ADT/APFixedPoint.h:23:
/usr/include/llvm/Support/raw_ostream.h:252:38: error: 'string_view' in namespace 'std' does not name a type
  252 |   raw_ostream &operator<<(const std::string_view &Str) {
      |                                      ^~~~~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:252:33: note: 'std::string_view' is only available from C++17 onwards
  252 |   raw_ostream &operator<<(const std::string_view &Str) {
      |                                 ^~~
/usr/include/llvm/Support/raw_ostream.h: In member function 'llvm::raw_ostream& llvm::raw_ostream::operator<<(const int&)':
/usr/include/llvm/Support/raw_ostream.h:253:22: error: request for member 'data' in 'Str', which is of non-class type 'const int'
  253 |     return write(Str.data(), Str.length());
      |                      ^~~~
/usr/include/llvm/Support/raw_ostream.h:253:34: error: request for member 'length' in 'Str', which is of non-class type 'const int'
  253 |     return write(Str.data(), Str.length());
      |                                  ^~~~~~
/usr/include/llvm/Support/raw_ostream.h: At global scope:
/usr/include/llvm/Support/raw_ostream.h:459:16: error: 'optional' in namespace 'std' does not name a template type
  459 |   mutable std::optional<bool> HasColors;
      |                ^~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:459:11: note: 'std::optional' is only available from C++17 onwards
  459 |   mutable std::optional<bool> HasColors;
      |           ^~~
/usr/include/llvm/Support/raw_ostream.h:757:47: error: 'std::nullopt_t' has not been declared
  757 | raw_ostream &operator<<(raw_ostream &OS, std::nullopt_t);
      |                                               ^~~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:761:53: error: 'optional' in namespace 'std' does not name a template type
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                     ^~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:761:48: note: 'std::optional' is only available from C++17 onwards
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                ^~~
/usr/include/llvm/Support/raw_ostream.h:761:61: error: expected ',' or '...' before '<' token
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                             ^
/usr/include/llvm/Support/raw_ostream.h: In function 'llvm::raw_ostream& llvm::operator<<(raw_ostream&, int)':
/usr/include/llvm/Support/raw_ostream.h:762:7: error: 'O' was not declared in this scope; did you mean 'OS'?
  762 |   if (O)
      |       ^
      |       OS
/usr/include/llvm/Support/raw_ostream.h:765:16: error: 'nullopt' is not a member of 'std'
  765 |     OS << std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/Support/raw_ostream.h:765:16: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/APFixedPoint.h: In member function 'std::string llvm::APFixedPoint::toString() const':
/usr/include/llvm/ADT/APFixedPoint.h:238:31: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef)'
  238 |     return std::string(S.str());
      |                               ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/ADT/APFixedPoint.h:238:31: note:   candidate expects 3 arguments, 1 provided
  238 |     return std::string(S.str());
      |                               ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/llvm/ADT/FloatingPointMode.h:18,
                 from /usr/include/llvm/ADT/APFloat.h:20,
                 from /usr/include/clang/AST/APValue.h:18:
/usr/include/llvm/ADT/StringSwitch.h: At global scope:
/usr/include/llvm/ADT/StringSwitch.h:50:8: error: 'optional' in namespace 'std' does not name a template type
   50 |   std::optional<T> Result;
      |        ^~~~~~~~
/usr/include/llvm/ADT/StringSwitch.h:50:3: note: 'std::optional' is only available from C++17 onwards
   50 |   std::optional<T> Result;
      |   ^~~
/usr/include/llvm/ADT/StringSwitch.h: In constructor 'llvm::StringSwitch<T, R>::StringSwitch(llvm::StringRef)':
/usr/include/llvm/ADT/StringSwitch.h:54:13: error: class 'llvm::StringSwitch<T, R>' does not have any field named 'Result'
   54 |   : Str(S), Result() { }
      |             ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In constructor 'llvm::StringSwitch<T, R>::StringSwitch(llvm::StringSwitch<T, R>&&)':
/usr/include/llvm/ADT/StringSwitch.h:64:23: error: class 'llvm::StringSwitch<T, R>' does not have any field named 'Result'
   64 |     : Str(other.Str), Result(std::move(other.Result)) { }
      |                       ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Case(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:70:10: error: 'Result' was not declared in this scope
   70 |     if (!Result && Str == S) {
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::EndsWith(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:77:10: error: 'Result' was not declared in this scope
   77 |     if (!Result && Str.endswith(S)) {
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::StartsWith(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:84:10: error: 'Result' was not declared in this scope
   84 |     if (!Result && Str.startswith(S)) {
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::CaseLower(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:143:10: error: 'Result' was not declared in this scope
  143 |     if (!Result && Str.equals_insensitive(S))
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::EndsWithLower(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:150:10: error: 'Result' was not declared in this scope
  150 |     if (!Result && Str.endswith_insensitive(S))
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::StartsWithLower(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:157:10: error: 'Result' was not declared in this scope
  157 |     if (!Result && Str.startswith_insensitive(S))
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'R llvm::StringSwitch<T, R>::Default(T)':
/usr/include/llvm/ADT/StringSwitch.h:183:9: error: 'Result' was not declared in this scope
  183 |     if (Result)
      |         ^~~~~~
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/llvm/ADT/StringSwitch.h:18:
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>::operator R()':
/usr/include/llvm/ADT/StringSwitch.h:189:5: error: 'Result' was not declared in this scope
  189 |     assert(Result && "Fell off the end of a string-switch");
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>'
/usr/include/clang/AST/APValue.h:190:11:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
In file included from /usr/include/clang/AST/APValue.h:22:
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>':
/usr/include/clang/AST/APValue.h:190:11:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/Type.h:22,
                 from /usr/include/clang/AST/DeclarationName.h:16,
                 from /usr/include/clang/AST/DeclBase.h:18,
                 from /usr/include/clang/AST/Decl.h:19,
                 from /usr/include/clang/AST/Expr.h:19:
/usr/include/clang/AST/TemplateName.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::OverloadedTemplateStorage::decls() const':
/usr/include/clang/AST/TemplateName.h:130:26: error: missing template arguments before '(' token
  130 |     return llvm::ArrayRef(begin(), end());
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>'
/usr/include/clang/AST/TemplateName.h:211:15:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>':
/usr/include/clang/AST/TemplateName.h:211:15:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/TemplateName.h: At global scope:
/usr/include/clang/AST/TemplateName.h:383:41: error: 'std::optional' has not been declared
  383 |                                    std::optional<unsigned> PackIndex)
      |                                         ^~~~~~~~
/usr/include/clang/AST/TemplateName.h:383:49: error: expected ',' or '...' before '<' token
  383 |                                    std::optional<unsigned> PackIndex)
      |                                                 ^
/usr/include/clang/AST/TemplateName.h:399:8: error: 'optional' in namespace 'std' does not name a template type
  399 |   std::optional<unsigned> getPackIndex() const {
      |        ^~~~~~~~
/usr/include/clang/AST/TemplateName.h:399:3: note: 'std::optional' is only available from C++17 onwards
  399 |   std::optional<unsigned> getPackIndex() const {
      |   ^~~
/usr/include/clang/AST/TemplateName.h:412:28: error: 'std::optional' has not been declared
  412 |                       std::optional<unsigned> PackIndex);
      |                            ^~~~~~~~
/usr/include/clang/AST/TemplateName.h:412:36: error: expected ',' or '...' before '<' token
  412 |                       std::optional<unsigned> PackIndex);
      |                                    ^
/usr/include/clang/AST/TemplateName.h: In constructor 'clang::SubstTemplateTemplateParmStorage::SubstTemplateTemplateParmStorage(clang::TemplateName, clang::Decl*, unsigned int, int)':
/usr/include/clang/AST/TemplateName.h:385:37: error: 'PackIndex' was not declared in this scope
  385 |                                     PackIndex ? *PackIndex + 1 : 0),
      |                                     ^~~~~~~~~
In file included from /usr/include/clang/AST/Type.h:40:
/usr/include/llvm/ADT/Twine.h: At global scope:
/usr/include/llvm/ADT/Twine.h:292:35: error: 'string_view' in namespace 'std' does not name a type
  292 |     /*implicit*/ Twine(const std::string_view &Str)
      |                                   ^~~~~~~~~~~
/usr/include/llvm/ADT/Twine.h:292:30: note: 'std::string_view' is only available from C++17 onwards
  292 |     /*implicit*/ Twine(const std::string_view &Str)
      |                              ^~~
/usr/include/llvm/ADT/Twine.h: In constructor 'llvm::Twine::Twine(const int&)':
/usr/include/llvm/ADT/Twine.h:294:34: error: request for member 'data' in 'Str', which is of non-class type 'const int'
  294 |       LHS.ptrAndLength.ptr = Str.data();
      |                                  ^~~~
/usr/include/llvm/ADT/Twine.h:295:37: error: request for member 'length' in 'Str', which is of non-class type 'const int'
  295 |       LHS.ptrAndLength.length = Str.length();
      |                                     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::Type*, const clang::ExtQuals*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::Type*, const clang::ExtQuals*>'
/usr/include/clang/AST/Type.h:744:28:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::Type*, const clang::ExtQuals*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::Type*, const clang::ExtQuals*>':
/usr/include/clang/AST/Type.h:744:28:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::Type*, const clang::ExtQuals*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Type.h: At global scope:
/usr/include/clang/AST/Type.h:2555:8: error: 'optional' in namespace 'std' does not name a template type
 2555 |   std::optional<NullabilityKind> getNullability() const;
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:2555:3: note: 'std::optional' is only available from C++17 onwards
 2555 |   std::optional<NullabilityKind> getNullability() const;
      |   ^~~
/usr/include/clang/AST/Type.h:2579:8: error: 'optional' in namespace 'std' does not name a template type
 2579 |   std::optional<ArrayRef<QualType>>
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:2579:3: note: 'std::optional' is only available from C++17 onwards
 2579 |   std::optional<ArrayRef<QualType>>
      |   ^~~
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::FunctionProtoType::getParamTypes() const':
/usr/include/clang/AST/Type.h:4240:26: error: missing template arguments before '(' token
 4240 |     return llvm::ArrayRef(param_type_begin(), param_type_end());
      |                          ^
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::FunctionProtoType::param_types() const':
/usr/include/clang/AST/Type.h:4387:26: error: missing template arguments before '(' token
 4387 |     return llvm::ArrayRef(param_type_begin(), param_type_end());
      |                          ^
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::FunctionProtoType::exceptions() const':
/usr/include/clang/AST/Type.h:4401:26: error: missing template arguments before '(' token
 4401 |     return llvm::ArrayRef(exception_begin(), exception_end());
      |                          ^
/usr/include/clang/AST/Type.h: At global scope:
/usr/include/clang/AST/Type.h:4925:8: error: 'optional' in namespace 'std' does not name a template type
 4925 |   std::optional<NullabilityKind> getImmediateNullability() const;
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:4925:3: note: 'std::optional' is only available from C++17 onwards
 4925 |   std::optional<NullabilityKind> getImmediateNullability() const;
      |   ^~~
/usr/include/clang/AST/Type.h:4955:15: error: 'optional' in namespace 'std' does not name a template type
 4955 |   static std::optional<NullabilityKind> stripOuterNullability(QualType &T);
      |               ^~~~~~~~
/usr/include/clang/AST/Type.h:4955:10: note: 'std::optional' is only available from C++17 onwards
 4955 |   static std::optional<NullabilityKind> stripOuterNullability(QualType &T);
      |          ^~~
/usr/include/clang/AST/Type.h:5096:50: error: 'std::optional' has not been declared
 5096 |                             unsigned Index, std::optional<unsigned> PackIndex);
      |                                                  ^~~~~~~~
/usr/include/clang/AST/Type.h:5096:58: error: expected ',' or '...' before '<' token
 5096 |                             unsigned Index, std::optional<unsigned> PackIndex);
      |                                                          ^
/usr/include/clang/AST/Type.h:5119:8: error: 'optional' in namespace 'std' does not name a template type
 5119 |   std::optional<unsigned> getPackIndex() const {
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:5119:3: note: 'std::optional' is only available from C++17 onwards
 5119 |   std::optional<unsigned> getPackIndex() const {
      |   ^~~
/usr/include/clang/AST/Type.h:5135:28: error: 'std::optional' has not been declared
 5135 |                       std::optional<unsigned> PackIndex) {
      |                            ^~~~~~~~
/usr/include/clang/AST/Type.h:5135:36: error: expected ',' or '...' before '<' token
 5135 |                       std::optional<unsigned> PackIndex) {
      |                                    ^
/usr/include/clang/AST/Type.h: In member function 'void clang::SubstTemplateTypeParmType::Profile(llvm::FoldingSetNodeID&)':
/usr/include/clang/AST/Type.h:5130:13: error: 'getPackIndex' was not declared in this scope; did you mean 'getIndex'?
 5130 |             getPackIndex());
      |             ^~~~~~~~~~~~
      |             getIndex
/usr/include/clang/AST/Type.h: In static member function 'static void clang::SubstTemplateTypeParmType::Profile(llvm::FoldingSetNodeID&, clang::QualType, const clang::Decl*, unsigned int, int)':
/usr/include/clang/AST/Type.h:5139:19: error: 'PackIndex' was not declared in this scope
 5139 |     ID.AddInteger(PackIndex ? *PackIndex - 1 : 0);
      |                   ^~~~~~~~~
/usr/include/clang/AST/Type.h: At global scope:
/usr/include/clang/AST/Type.h:5849:26: error: 'std::optional' has not been declared
 5849 |                     std::optional<unsigned> NumExpansions)
      |                          ^~~~~~~~
/usr/include/clang/AST/Type.h:5849:34: error: expected ',' or '...' before '<' token
 5849 |                     std::optional<unsigned> NumExpansions)
      |                                  ^
/usr/include/clang/AST/Type.h:5867:8: error: 'optional' in namespace 'std' does not name a template type
 5867 |   std::optional<unsigned> getNumExpansions() const {
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:5867:3: note: 'std::optional' is only available from C++17 onwards
 5867 |   std::optional<unsigned> getNumExpansions() const {
      |   ^~~
/usr/include/clang/AST/Type.h:5881:28: error: 'std::optional' has not been declared
 5881 |                       std::optional<unsigned> NumExpansions) {
      |                            ^~~~~~~~
/usr/include/clang/AST/Type.h:5881:36: error: expected ',' or '...' before '<' token
 5881 |                       std::optional<unsigned> NumExpansions) {
      |                                    ^
/usr/include/clang/AST/Type.h: In constructor 'clang::PackExpansionType::PackExpansionType(clang::QualType, clang::QualType, int)':
/usr/include/clang/AST/Type.h:5856:9: error: 'NumExpansions' was not declared in this scope
 5856 |         NumExpansions ? *NumExpansions + 1 : 0;
      |         ^~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In member function 'void clang::PackExpansionType::Profile(llvm::FoldingSetNodeID&)':
/usr/include/clang/AST/Type.h:5877:31: error: 'getNumExpansions' was not declared in this scope
 5877 |     Profile(ID, getPattern(), getNumExpansions());
      |                               ^~~~~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In static member function 'static void clang::PackExpansionType::Profile(llvm::FoldingSetNodeID&, clang::QualType, int)':
/usr/include/clang/AST/Type.h:5883:19: error: 'NumExpansions' was not declared in this scope
 5883 |     ID.AddBoolean(NumExpansions.has_value());
      |                   ^~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::ObjCObjectType::getTypeArgsAsWritten() const':
/usr/include/clang/AST/Type.h:6138:26: error: missing template arguments before '(' token
 6138 |     return llvm::ArrayRef(getTypeArgStorage(), ObjCObjectTypeBits.NumTypeArgs);
      |                          ^
/usr/include/clang/AST/Type.h: In constructor 'clang::DecayedType::DecayedType(clang::QualType, clang::QualType, clang::QualType)':
/usr/include/clang/AST/Type.h:7484:25: error: 'stripOuterNullability' is not a member of 'clang::AttributedType'
 7484 |   (void)AttributedType::stripOuterNullability(Adjusted);
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In member function 'clang::QualType clang::DecayedType::getPointeeType() const':
/usr/include/clang/AST/Type.h:7491:25: error: 'stripOuterNullability' is not a member of 'clang::AttributedType'
 7491 |   (void)AttributedType::stripOuterNullability(Decayed);
      |                         ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/ADT/StringMap.h:17,
                 from /usr/include/clang/Basic/IdentifierTable.h:23,
                 from /usr/include/clang/AST/DeclarationName.h:18:
/usr/include/llvm/ADT/StringMapEntry.h: At global scope:
/usr/include/llvm/ADT/StringMapEntry.h:88:34: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
   88 | class StringMapEntryStorage<std::nullopt_t> : public StringMapEntryBase {
      |                                  ^~~~~~~~~
      |                                  nullptr_t
/usr/include/llvm/ADT/StringMapEntry.h:88:34: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
   88 | class StringMapEntryStorage<std::nullopt_t> : public StringMapEntryBase {
      |                                  ^~~~~~~~~
      |                                  nullptr_t
/usr/include/llvm/ADT/StringMapEntry.h:88:43: error: template argument 1 is invalid
   88 | class StringMapEntryStorage<std::nullopt_t> : public StringMapEntryBase {
      |                                           ^
In file included from /usr/include/clang/AST/DeclBase.h:31:
/usr/include/llvm/Support/VersionTuple.h:76:8: error: 'optional' in namespace 'std' does not name a template type
   76 |   std::optional<unsigned> getMinor() const {
      |        ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:76:3: note: 'std::optional' is only available from C++17 onwards
   76 |   std::optional<unsigned> getMinor() const {
      |   ^~~
/usr/include/llvm/Support/VersionTuple.h:83:8: error: 'optional' in namespace 'std' does not name a template type
   83 |   std::optional<unsigned> getSubminor() const {
      |        ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:83:3: note: 'std::optional' is only available from C++17 onwards
   83 |   std::optional<unsigned> getSubminor() const {
      |   ^~~
/usr/include/llvm/Support/VersionTuple.h:90:8: error: 'optional' in namespace 'std' does not name a template type
   90 |   std::optional<unsigned> getBuild() const {
      |        ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:90:3: note: 'std::optional' is only available from C++17 onwards
   90 |   std::optional<unsigned> getBuild() const {
      |   ^~~
/usr/include/llvm/Support/VersionTuple.h: In static member function 'static unsigned int llvm::DenseMapInfo<llvm::VersionTuple>::getHashValue(const llvm::VersionTuple&)':
/usr/include/llvm/Support/VersionTuple.h:203:28: error: 'const class llvm::VersionTuple' has no member named 'getMinor'; did you mean 'getMajor'?
  203 |     if (auto Minor = Value.getMinor())
      |                            ^~~~~~~~
      |                            getMajor
/usr/include/llvm/Support/VersionTuple.h:205:31: error: 'const class llvm::VersionTuple' has no member named 'getSubminor'; did you mean 'unsigned int:31 llvm::VersionTuple::Subminor'? (not accessible from this context)
  205 |     if (auto Subminor = Value.getSubminor())
      |                               ^~~~~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:37:12: note: declared private here
   37 |   unsigned Subminor : 31;
      |            ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:207:28: error: 'const class llvm::VersionTuple' has no member named 'getBuild'; did you mean 'unsigned int:31 llvm::VersionTuple::Build'? (not accessible from this context)
  207 |     if (auto Build = Value.getBuild())
      |                            ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:40:12: note: declared private here
   40 |   unsigned Build : 31;
      |            ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::DeclContext*, clang::Decl::MultipleDC*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::DeclContext*, clang::Decl::MultipleDC*>'
/usr/include/clang/AST/DeclBase.h:269:49:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::DeclContext*, clang::Decl::MultipleDC*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::DeclContext*, clang::Decl::MultipleDC*>':
/usr/include/clang/AST/DeclBase.h:269:49:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::DeclContext*, clang::Decl::MultipleDC*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::NamedDecl*, clang::DeclListNode*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::NamedDecl*, clang::DeclListNode*>'
/usr/include/clang/AST/DeclBase.h:1290:11:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::NamedDecl*, clang::DeclListNode*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::NamedDecl*, clang::DeclListNode*>':
/usr/include/clang/AST/DeclBase.h:1290:11:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::NamedDecl*, clang::DeclListNode*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/ExternalASTSource.h:17,
                 from /usr/include/clang/AST/Decl.h:21:
/usr/include/clang/AST/CharUnits.h: At global scope:
/usr/include/clang/AST/CharUnits.h:194:48: error: return type 'struct llvm::MaybeAlign' is incomplete
  194 |       llvm::MaybeAlign getAsMaybeAlign() const {
      |                                                ^
/usr/include/clang/AST/CharUnits.h: In member function 'void clang::CharUnits::getAsMaybeAlign() const':
/usr/include/clang/AST/CharUnits.h:195:41: error: invalid use of incomplete type 'struct llvm::MaybeAlign'
  195 |         return llvm::MaybeAlign(Quantity);
      |                                         ^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/clang/AST/ExternalASTSource.h: At global scope:
/usr/include/clang/AST/ExternalASTSource.h:163:16: error: 'optional' in namespace 'std' does not name a template type
  163 |   virtual std::optional<ASTSourceDescriptor> getSourceDescriptor(unsigned ID);
      |                ^~~~~~~~
/usr/include/clang/AST/ExternalASTSource.h:163:11: note: 'std::optional' is only available from C++17 onwards
  163 |   virtual std::optional<ASTSourceDescriptor> getSourceDescriptor(unsigned ID);
      |           ^~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >'
/usr/include/clang/AST/Redeclarable.h:105:61:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >':
/usr/include/clang/AST/Redeclarable.h:105:61:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Decl*, const void*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Decl*, const void*>'
/usr/include/clang/AST/Redeclarable.h:119:40:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Decl*, const void*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Decl*, const void*>':
/usr/include/clang/AST/Redeclarable.h:119:40:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Decl*, const void*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>'
/usr/include/clang/AST/ExternalASTSource.h:402:13:   required from 'struct clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>'
/usr/include/clang/AST/Redeclarable.h:134:61:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>':
/usr/include/clang/AST/ExternalASTSource.h:402:13:   required from 'struct clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>'
/usr/include/clang/AST/Redeclarable.h:134:61:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Decl.h:440:8: error: 'optional' in namespace 'std' does not name a template type
  440 |   std::optional<Visibility>
      |        ^~~~~~~~
/usr/include/clang/AST/Decl.h:440:3: note: 'std::optional' is only available from C++17 onwards
  440 |   std::optional<Visibility>
      |   ^~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>'
/usr/include/clang/AST/Decl.h:776:51:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>':
/usr/include/clang/AST/Decl.h:776:51:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, clang::EvaluatedStmt*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, clang::EvaluatedStmt*>'
/usr/include/clang/AST/Decl.h:961:20:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, clang::EvaluatedStmt*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, clang::EvaluatedStmt*>':
/usr/include/clang/AST/Decl.h:961:20:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, clang::EvaluatedStmt*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>'
/usr/include/clang/AST/Decl.h:2006:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>':
/usr/include/clang/AST/Decl.h:2006:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Decl.h:2477:12: error: 'std::optional' has not been declared
 2477 |       std::optional<unsigned> *AlignmentParam = nullptr,
      |            ^~~~~~~~
/usr/include/clang/AST/Decl.h:2477:20: error: expected ',' or '...' before '<' token
 2477 |       std::optional<unsigned> *AlignmentParam = nullptr,
      |                    ^
/usr/include/clang/AST/Decl.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::IndirectFieldDecl::chain() const':
/usr/include/clang/AST/Decl.h:3220:26: error: missing template arguments before '(' token
 3220 |     return llvm::ArrayRef(Chaining, ChainingSize);
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>'
/usr/include/clang/AST/Decl.h:3307:9:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>':
/usr/include/clang/AST/Decl.h:3307:9:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypedefNameDecl*, clang::QualifierInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypedefNameDecl*, clang::QualifierInfo*>'
/usr/include/clang/AST/Decl.h:3460:52:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypedefNameDecl*, clang::QualifierInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypedefNameDecl*, clang::QualifierInfo*>':
/usr/include/clang/AST/Decl.h:3460:52:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypedefNameDecl*, clang::QualifierInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::Type*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::Type*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/Decl.h:3736:54:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::Type*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::Type*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/Decl.h:3736:54:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::Type*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/Basic/ObjCRuntime.h:21,
                 from /usr/include/clang/Basic/LangOptions.h:20,
                 from /usr/include/clang/AST/Stmt.h:22,
                 from /usr/include/clang/AST/Expr.h:23:
/usr/include/llvm/Support/HashBuilder.h: At global scope:
/usr/include/llvm/Support/HashBuilder.h:84:8: error: 'optional' in namespace 'std' does not name a template type
   84 |   std::optional<HasherT> OptionalHasher;
      |        ^~~~~~~~
/usr/include/llvm/Support/HashBuilder.h:84:3: note: 'std::optional' is only available from C++17 onwards
   84 |   std::optional<HasherT> OptionalHasher;
      |   ^~~
/usr/include/llvm/Support/HashBuilder.h: In member function 'void llvm::HashBuilderBase<HasherT>::update(llvm::StringRef)':
/usr/include/llvm/Support/HashBuilder.h:62:17: error: missing template arguments before '(' token
   62 |         ArrayRef(reinterpret_cast<const uint8_t *>(Data.data()), Data.size()));
      |                 ^
/usr/include/llvm/Support/HashBuilder.h: In constructor 'llvm::HashBuilderBase<HasherT>::HashBuilderBase(ArgTypes&& ...)':
/usr/include/llvm/Support/HashBuilder.h:80:9: error: class 'llvm::HashBuilderBase<HasherT>' does not have any field named 'OptionalHasher'
   80 |       : OptionalHasher(std::in_place, std::forward<ArgTypes>(Args)...),
      |         ^~~~~~~~~~~~~~
/usr/include/llvm/Support/HashBuilder.h:80:29: error: 'in_place' is not a member of 'std'
   80 |       : OptionalHasher(std::in_place, std::forward<ArgTypes>(Args)...),
      |                             ^~~~~~~~
/usr/include/llvm/Support/HashBuilder.h:80:29: note: 'std::in_place' is only available from C++17 onwards
/usr/include/llvm/Support/HashBuilder.h:81:17: error: 'OptionalHasher' was not declared in this scope
   81 |         Hasher(*OptionalHasher) {}
      |                 ^~~~~~~~~~~~~~
/usr/include/llvm/Support/HashBuilder.h: In member function 'llvm::HashBuilderImpl<HasherT, Endianness>& llvm::HashBuilderImpl<HasherT, Endianness>::add(llvm::ArrayRef<U>)':
/usr/include/llvm/Support/HashBuilder.h:134:28: error: missing template arguments before '(' token
  134 |       this->update(ArrayRef(reinterpret_cast<const uint8_t *>(Value.begin()),
      |                            ^
/usr/include/llvm/Support/HashBuilder.h: In member function 'llvm::HashBuilderImpl<HasherT, Endianness>& llvm::HashBuilderImpl<HasherT, Endianness>::add(llvm::StringRef)':
/usr/include/llvm/Support/HashBuilder.h:162:26: error: missing template arguments before '(' token
  162 |     this->update(ArrayRef(reinterpret_cast<const uint8_t *>(Value.begin()),
      |                          ^
/usr/include/llvm/Support/HashBuilder.h: In member function 'llvm::HashBuilderImpl<HasherT, Endianness>& llvm::HashBuilderImpl<HasherT, Endianness>::add(const std::tuple<_Args1 ...>&)':
/usr/include/llvm/Support/HashBuilder.h:268:10: error: 'apply' is not a member of 'std'
  268 |     std::apply([this](const auto &...Args) { this->add(Args...); }, Arg);
      |          ^~~~~
/usr/include/llvm/Support/HashBuilder.h:268:10: note: 'std::apply' is only available from C++17 onwards
/usr/include/llvm/Support/HashBuilder.h: In member function 'std::enable_if_t<typename llvm::detail::detector<void, llvm::HashBuilderImpl<HasherT, Endianness>::HasByteSwapT, T>::value_t::value, llvm::HashBuilderImpl<HasherT, Endianness>&> llvm::HashBuilderImpl<HasherT, Endianness>::adjustForEndiannessAndAdd(const T&)':
/usr/include/llvm/Support/HashBuilder.h:319:26: error: missing template arguments before '(' token
  319 |     this->update(ArrayRef(reinterpret_cast<const uint8_t *>(&SwappedValue),
      |                          ^
/usr/include/llvm/Support/HashBuilder.h: In member function 'std::enable_if_t<(llvm::hashbuilder_detail::IsHashableData<T>::value && (Endianness == llvm::support::endian::system_endianness())), llvm::HashBuilderImpl<HasherT, Endianness>&> llvm::HashBuilderImpl<HasherT, Endianness>::addRangeElementsImpl(T*, T*, std::forward_iterator_tag)':
/usr/include/llvm/Support/HashBuilder.h:341:26: error: missing template arguments before '(' token
  341 |     this->update(ArrayRef(reinterpret_cast<const uint8_t *>(First),
      |                          ^
/usr/include/clang/Basic/LangOptions.h: At global scope:
/usr/include/clang/Basic/LangOptions.h:470:8: error: 'optional' in namespace 'std' does not name a template type
  470 |   std::optional<TargetCXXABI::Kind> CXXABI;
      |        ^~~~~~~~
/usr/include/clang/Basic/LangOptions.h:470:3: note: 'std::optional' is only available from C++17 onwards
  470 |   std::optional<TargetCXXABI::Kind> CXXABI;
      |   ^~~
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<const clang::Attr*> clang::AttributedStmt::getAttrs() const':
/usr/include/clang/AST/Stmt.h:1927:26: error: missing template arguments before '(' token
 1927 |     return llvm::ArrayRef(getAttrArrayPtr(), AttributedStmtBits.NumAttrs);
      |                          ^
/usr/include/clang/AST/Stmt.h: At global scope:
/usr/include/clang/AST/Stmt.h:2152:8: error: 'optional' in namespace 'std' does not name a template type
 2152 |   std::optional<const Stmt *> getNondiscardedCase(const ASTContext &Ctx) const;
      |        ^~~~~~~~
/usr/include/clang/AST/Stmt.h:2152:3: note: 'std::optional' is only available from C++17 onwards
 2152 |   std::optional<const Stmt *> getNondiscardedCase(const ASTContext &Ctx) const;
      |   ^~~
/usr/include/clang/AST/Stmt.h:2153:8: error: 'optional' in namespace 'std' does not name a template type
 2153 |   std::optional<Stmt *> getNondiscardedCase(const ASTContext &Ctx);
      |        ^~~~~~~~
/usr/include/clang/AST/Stmt.h:2153:3: note: 'std::optional' is only available from C++17 onwards
 2153 |   std::optional<Stmt *> getNondiscardedCase(const ASTContext &Ctx);
      |   ^~~
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<llvm::StringRef> clang::MSAsmStmt::getAllConstraints() const':
/usr/include/clang/AST/Stmt.h:3338:26: error: missing template arguments before '(' token
 3338 |     return llvm::ArrayRef(Constraints, NumInputs + NumOutputs);
      |                          ^
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<llvm::StringRef> clang::MSAsmStmt::getClobbers() const':
/usr/include/clang/AST/Stmt.h:3342:26: error: missing template arguments before '(' token
 3342 |     return llvm::ArrayRef(Clobbers, NumClobbers);
      |                          ^
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::MSAsmStmt::getAllExprs() const':
/usr/include/clang/AST/Stmt.h:3346:26: error: missing template arguments before '(' token
 3346 |     return llvm::ArrayRef(reinterpret_cast<Expr **>(Exprs),
      |                          ^
In file included from /usr/include/clang/AST/Expr.h:24:
/usr/include/clang/AST/TemplateBase.h: At global scope:
/usr/include/clang/AST/TemplateBase.h:204:44: error: 'std::optional' has not been declared
  204 |   TemplateArgument(TemplateName Name, std::optional<unsigned> NumExpansions) {
      |                                            ^~~~~~~~
/usr/include/clang/AST/TemplateBase.h:204:52: error: expected ',' or '...' before '<' token
  204 |   TemplateArgument(TemplateName Name, std::optional<unsigned> NumExpansions) {
      |                                                    ^
/usr/include/clang/AST/TemplateBase.h:309:8: error: 'optional' in namespace 'std' does not name a template type
  309 |   std::optional<unsigned> getNumTemplateExpansions() const;
      |        ^~~~~~~~
/usr/include/clang/AST/TemplateBase.h:309:3: note: 'std::optional' is only available from C++17 onwards
  309 |   std::optional<unsigned> getNumTemplateExpansions() const;
      |   ^~~
/usr/include/clang/AST/TemplateBase.h: In constructor 'clang::TemplateArgument::TemplateArgument(clang::TemplateName, int)':
/usr/include/clang/AST/TemplateBase.h:207:9: error: 'NumExpansions' was not declared in this scope
  207 |     if (NumExpansions)
      |         ^~~~~~~~~~~~~
/usr/include/clang/AST/TemplateBase.h: In static member function 'static clang::TemplateArgument clang::TemplateArgument::getEmptyPack()':
/usr/include/clang/AST/TemplateBase.h:236:34: error: 'nullopt' is not a member of 'std'
  236 |     return TemplateArgument(std::nullopt);
      |                                  ^~~~~~~
/usr/include/clang/AST/TemplateBase.h:236:34: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::APSInt clang::TemplateArgument::getAsIntegral() const':
/usr/include/clang/AST/TemplateBase.h:322:18: error: expected primary-expression before '(' token
  322 |     return APSInt(APInt(Integer.BitWidth, ArrayRef(Integer.pVal, NumWords)),
      |                  ^
/usr/include/clang/AST/TemplateBase.h:322:24: error: expected primary-expression before '(' token
  322 |     return APSInt(APInt(Integer.BitWidth, ArrayRef(Integer.pVal, NumWords)),
      |                        ^
/usr/include/clang/AST/TemplateBase.h:322:51: error: missing template arguments before '(' token
  322 |     return APSInt(APInt(Integer.BitWidth, ArrayRef(Integer.pVal, NumWords)),
      |                                                   ^
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::TemplateArgument::pack_elements() const':
/usr/include/clang/AST/TemplateBase.h:367:26: error: missing template arguments before '(' token
  367 |     return llvm::ArrayRef(pack_begin(), pack_end());
      |                          ^
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::TemplateArgument::getPackAsArray() const':
/usr/include/clang/AST/TemplateBase.h:380:26: error: missing template arguments before '(' token
  380 |     return llvm::ArrayRef(Args.Args, Args.NumArgs);
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/TemplateBase.h:418:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/TemplateBase.h:418:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::ArrayRef<clang::TemplateArgumentLoc> clang::ASTTemplateArgumentListInfo::arguments() const':
/usr/include/clang/AST/TemplateBase.h:645:26: error: missing template arguments before '(' token
  645 |     return llvm::ArrayRef(getTemplateArgs(), getNumTemplateArgs());
      |                          ^
In file included from /usr/include/clang/AST/Expr.h:28:
/usr/include/clang/Basic/SyncScope.h: In member function 'virtual llvm::ArrayRef<unsigned int> clang::AtomicScopeOpenCLModel::getRuntimeValues() const':
/usr/include/clang/Basic/SyncScope.h:148:26: error: missing template arguments before '(' token
  148 |     return llvm::ArrayRef(Scopes);
      |                          ^
/usr/include/clang/Basic/SyncScope.h: In member function 'virtual llvm::ArrayRef<unsigned int> clang::AtomicScopeHIPModel::getRuntimeValues() const':
/usr/include/clang/Basic/SyncScope.h:200:26: error: missing template arguments before '(' token
  200 |     return llvm::ArrayRef(Scopes);
      |                          ^
/usr/include/clang/AST/Expr.h: At global scope:
/usr/include/clang/AST/Expr.h:543:8: error: 'optional' in namespace 'std' does not name a template type
  543 |   std::optional<llvm::APSInt>
      |        ^~~~~~~~
/usr/include/clang/AST/Expr.h:543:3: note: 'std::optional' is only available from C++17 onwards
  543 |   std::optional<llvm::APSInt>
      |   ^~~
/usr/include/clang/AST/Expr.h: In member function 'void clang::CallExpr::computeDependence()':
/usr/include/clang/AST/Expr.h:3024:29: error: missing template arguments before '(' token
 3024 |         this, llvm::ArrayRef(
      |                             ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Stmt*> clang::CallExpr::getRawSubExprs()':
/usr/include/clang/AST/Expr.h:3071:26: error: missing template arguments before '(' token
 3071 |     return llvm::ArrayRef(getTrailingStmts(),
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, clang::FieldDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, clang::FieldDecl*>'
/usr/include/clang/AST/Expr.h:4818:43:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, clang::FieldDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, clang::FieldDecl*>':
/usr/include/clang/AST/Expr.h:4818:43:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, clang::FieldDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::InitListExpr::inits()':
/usr/include/clang/AST/Expr.h:4838:51: error: missing template arguments before '(' token
 4838 |   ArrayRef<Expr *> inits() { return llvm::ArrayRef(getInits(), getNumInits()); }
      |                                                   ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::InitListExpr::inits() const':
/usr/include/clang/AST/Expr.h:4841:26: error: missing template arguments before '(' token
 4841 |     return llvm::ArrayRef(getInits(), getNumInits());
      |                          ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::ParenListExpr::exprs()':
/usr/include/clang/AST/Expr.h:5583:51: error: missing template arguments before '(' token
 5583 |   ArrayRef<Expr *> exprs() { return llvm::ArrayRef(getExprs(), getNumExprs()); }
      |                                                   ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::RecoveryExpr::subExpressions()':
/usr/include/clang/AST/Expr.h:6434:26: error: missing template arguments before '(' token
 6434 |     return llvm::ArrayRef(B, B + NumExprs);
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>'
/usr/include/c++/13/bits/stl_pair.h:194:11:   required from 'struct std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >'
/usr/include/llvm/Support/type_traits.h:75:7:   required from 'union llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/c++/13/type_traits:1040:25:   required by substitution of 'template<class _Tp, class ... _Args> using std::__is_constructible_impl = std::__bool_constant<__is_constructible(_Tp, _Args ...)> [with _Tp = llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >; _Args = {const llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >&}]'
/usr/include/c++/13/type_traits:1076:12:   required from 'struct std::is_copy_constructible<llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > > >'
/usr/include/llvm/Support/type_traits.h:98:8:   required from 'struct llvm::is_trivially_copy_constructible<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:329:74:   required from 'class llvm::SmallVectorImpl<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:1199:22:   required from 'class llvm::SmallVector<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >, 4>'
/usr/include/clang/AST/ASTConcept.h:53:57:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>':
/usr/include/c++/13/bits/stl_pair.h:194:11:   required from 'struct std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >'
/usr/include/llvm/Support/type_traits.h:75:7:   required from 'union llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/c++/13/type_traits:1040:25:   required by substitution of 'template<class _Tp, class ... _Args> using std::__is_constructible_impl = std::__bool_constant<__is_constructible(_Tp, _Args ...)> [with _Tp = llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >; _Args = {const llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >&}]'
/usr/include/c++/13/type_traits:1076:12:   required from 'struct std::is_copy_constructible<llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > > >'
/usr/include/llvm/Support/type_traits.h:98:8:   required from 'struct llvm::is_trivially_copy_constructible<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:329:74:   required from 'class llvm::SmallVectorImpl<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:1199:22:   required from 'class llvm::SmallVector<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >, 4>'
/usr/include/clang/AST/ASTConcept.h:53:57:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/Attr.h:365,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:17:
/usr/include/clang/AST/Attrs.inc: At global scope:
/usr/include/clang/AST/Attrs.inc:7459:17: error: 'optional' in namespace 'std' does not name a template type
 7459 |     static std::optional<MapTypeTy>
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7459:12: note: 'std::optional' is only available from C++17 onwards
 7459 |     static std::optional<MapTypeTy>
      |            ^~~
/usr/include/clang/AST/Attrs.inc:7461:17: error: 'optional' in namespace 'std' does not name a template type
 7461 |     static std::optional<OMPDeclareTargetDeclAttr*> getActiveAttr(const ValueDecl *VD);
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7461:12: note: 'std::optional' is only available from C++17 onwards
 7461 |     static std::optional<OMPDeclareTargetDeclAttr*> getActiveAttr(const ValueDecl *VD);
      |            ^~~
/usr/include/clang/AST/Attrs.inc:7462:17: error: 'optional' in namespace 'std' does not name a template type
 7462 |     static std::optional<DevTypeTy> getDeviceType(const ValueDecl *VD);
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7462:12: note: 'std::optional' is only available from C++17 onwards
 7462 |     static std::optional<DevTypeTy> getDeviceType(const ValueDecl *VD);
      |            ^~~
/usr/include/clang/AST/Attrs.inc:7463:17: error: 'optional' in namespace 'std' does not name a template type
 7463 |     static std::optional<SourceLocation> getLocation(const ValueDecl *VD);
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7463:12: note: 'std::optional' is only available from C++17 onwards
 7463 |     static std::optional<SourceLocation> getLocation(const ValueDecl *VD);
      |            ^~~
In file included from /usr/include/clang/AST/DeclCXX.h:29,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:20:
/usr/include/clang/AST/TypeLoc.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::ObjCTypeParamTypeLoc::getProtocolLocs() const':
/usr/include/clang/AST/TypeLoc.h:817:26: error: missing template arguments before '(' token
  817 |     return llvm::ArrayRef(getProtocolLocArray(), getNumProtocols());
      |                          ^
/usr/include/clang/AST/TypeLoc.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::ObjCObjectTypeLoc::getProtocolLocs() const':
/usr/include/clang/AST/TypeLoc.h:1023:26: error: missing template arguments before '(' token
 1023 |     return llvm::ArrayRef(getProtocolLocArray(), getNumProtocols());
      |                          ^
/usr/include/clang/AST/TypeLoc.h: In member function 'llvm::ArrayRef<clang::ParmVarDecl*> clang::FunctionTypeLoc::getParams() const':
/usr/include/clang/AST/TypeLoc.h:1450:26: error: missing template arguments before '(' token
 1450 |     return llvm::ArrayRef(getParmArray(), getNumParams());
      |                          ^
In file included from /usr/include/clang/AST/DeclCXX.h:42:
/usr/include/llvm/ADT/TinyPtrVector.h: In member function 'llvm::TinyPtrVector<EltTy>::operator llvm::ArrayRef<T>() const':
/usr/include/llvm/ADT/TinyPtrVector.h:138:19: error: 'nullopt' is not a member of 'std'
  138 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/llvm/ADT/TinyPtrVector.h:138:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/TinyPtrVector.h: In member function 'llvm::TinyPtrVector<EltTy>::operator llvm::MutableArrayRef<T>()':
/usr/include/llvm/ADT/TinyPtrVector.h:147:19: error: 'nullopt' is not a member of 'std'
  147 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/llvm/ADT/TinyPtrVector.h:147:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>'
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<clang::LambdaCapture*>'
/usr/include/clang/AST/DeclCXX.h:417:35:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>':
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<clang::LambdaCapture*>'
/usr/include/clang/AST/DeclCXX.h:417:35:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>'
/usr/include/clang/AST/DeclCXX.h:470:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>':
/usr/include/clang/AST/DeclCXX.h:470:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::CXXBaseSpecifier> clang::CXXRecordDecl::DefinitionData::bases() const':
/usr/include/clang/AST/DeclCXX.h:360:28: error: missing template arguments before '(' token
  360 |       return llvm::ArrayRef(getBases(), NumBases);
      |                            ^
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::CXXBaseSpecifier> clang::CXXRecordDecl::DefinitionData::vbases() const':
/usr/include/clang/AST/DeclCXX.h:364:28: error: missing template arguments before '(' token
  364 |       return llvm::ArrayRef(getVBases(), NumVBases);
      |                            ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>'
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<const clang::CXXMethodDecl*>'
/usr/include/clang/AST/DeclCXX.h:2104:49:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>':
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<const clang::CXXMethodDecl*>'
/usr/include/clang/AST/DeclCXX.h:2104:49:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>'
/usr/include/clang/AST/DeclCXX.h:2224:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>':
/usr/include/clang/AST/DeclCXX.h:2224:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::UsingPackDecl::expansions() const':
/usr/include/clang/AST/DeclCXX.h:3742:26: error: missing template arguments before '(' token
 3742 |     return llvm::ArrayRef(getTrailingObjects<NamedDecl *>(), NumExpansions);
      |                          ^
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::BindingDecl*> clang::DecompositionDecl::bindings() const':
/usr/include/clang/AST/DeclCXX.h:4112:26: error: missing template arguments before '(' token
 4112 |     return llvm::ArrayRef(getTrailingObjects<BindingDecl *>(), NumBindings);
      |                          ^
In file included from /usr/include/clang/AST/ASTContext.h:20,
                 from /usr/include/clang/AST/DeclTemplate.h:18,
                 from /usr/include/clang/AST/DeclFriend.h:20,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:21:
/usr/include/clang/AST/ComparisonCategories.h: At global scope:
/usr/include/clang/AST/ComparisonCategories.h:62:6: error: 'optional' in namespace 'std' does not name a template type
   62 | std::optional<ComparisonCategoryType>
      |      ^~~~~~~~
/usr/include/clang/AST/ComparisonCategories.h:62:1: note: 'std::optional' is only available from C++17 onwards
   62 | std::optional<ComparisonCategoryType>
      | ^~~
In file included from /usr/include/clang/AST/ASTContext.h:25:
/usr/include/clang/AST/PrettyPrinter.h: In member function 'virtual std::string clang::PrintingCallbacks::remapPath(llvm::StringRef) const':
/usr/include/clang/AST/PrettyPrinter.h:39:28: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
   39 |     return std::string(Path);
      |                            ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/AST/PrettyPrinter.h:39:28: note:   candidate expects 3 arguments, 1 provided
   39 |     return std::string(Path);
      |                            ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/clang/AST/ASTContext.h:26:
/usr/include/clang/AST/RawCommentList.h: In constructor 'clang::RawComment::CommentLine::CommentLine(llvm::StringRef, clang::PresumedLoc, clang::PresumedLoc)':
/usr/include/clang/AST/RawCommentList.h:148:11: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  148 |         : Text(Text), Begin(Begin), End(End) {}
      |           ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/AST/RawCommentList.h:148:11: note:   candidate expects 3 arguments, 1 provided
  148 |         : Text(Text), Begin(Begin), End(End) {}
      |           ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/clang/Basic/CodeGenOptions.h:20,
                 from /usr/include/clang/Basic/ProfileList.h:16,
                 from /usr/include/clang/AST/ASTContext.h:33:
/usr/include/llvm/Support/CodeGen.h: At global scope:
/usr/include/llvm/Support/CodeGen.h:66:15: error: 'optional' in namespace 'std' does not name a template type
   66 |   inline std::optional<Level> getLevel(IDType ID) {
      |               ^~~~~~~~
/usr/include/llvm/Support/CodeGen.h:66:10: note: 'std::optional' is only available from C++17 onwards
   66 |   inline std::optional<Level> getLevel(IDType ID) {
      |          ^~~
/usr/include/llvm/Support/CodeGen.h:74:15: error: 'optional' in namespace 'std' does not name a template type
   74 |   inline std::optional<Level> parseLevel(char C) {
      |               ^~~~~~~~
/usr/include/llvm/Support/CodeGen.h:74:10: note: 'std::optional' is only available from C++17 onwards
   74 |   inline std::optional<Level> parseLevel(char C) {
      |          ^~~
/usr/include/clang/Basic/CodeGenOptions.h:443:8: error: 'optional' in namespace 'std' does not name a template type
  443 |   std::optional<uint64_t> DiagnosticsHotnessThreshold = 0;
      |        ^~~~~~~~
/usr/include/clang/Basic/CodeGenOptions.h:443:3: note: 'std::optional' is only available from C++17 onwards
  443 |   std::optional<uint64_t> DiagnosticsHotnessThreshold = 0;
      |   ^~~
/usr/include/clang/Basic/CodeGenOptions.h:447:8: error: 'optional' in namespace 'std' does not name a template type
  447 |   std::optional<uint32_t> DiagnosticsMisExpectTolerance = 0;
      |        ^~~~~~~~
/usr/include/clang/Basic/CodeGenOptions.h:447:3: note: 'std::optional' is only available from C++17 onwards
  447 |   std::optional<uint32_t> DiagnosticsMisExpectTolerance = 0;
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:44:8: error: 'optional' in namespace 'std' does not name a template type
   44 |   std::optional<ExclusionType> inSection(StringRef Section, StringRef Prefix,
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:44:3: note: 'std::optional' is only available from C++17 onwards
   44 |   std::optional<ExclusionType> inSection(StringRef Section, StringRef Prefix,
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:54:8: error: 'optional' in namespace 'std' does not name a template type
   54 |   std::optional<ExclusionType>
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:54:3: note: 'std::optional' is only available from C++17 onwards
   54 |   std::optional<ExclusionType>
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:57:8: error: 'optional' in namespace 'std' does not name a template type
   57 |   std::optional<ExclusionType>
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:57:3: note: 'std::optional' is only available from C++17 onwards
   57 |   std::optional<ExclusionType>
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:60:8: error: 'optional' in namespace 'std' does not name a template type
   60 |   std::optional<ExclusionType>
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:60:3: note: 'std::optional' is only available from C++17 onwards
   60 |   std::optional<ExclusionType>
      |   ^~~
In file included from /usr/include/clang/AST/ASTContext.h:40:
/usr/include/llvm/ADT/MapVector.h:42:12: error: 'is_integral_v' is not a member of 'std'; did you mean 'is_integral'?
   42 |       std::is_integral_v<typename MapType::mapped_type>,
      |            ^~~~~~~~~~~~~
      |            is_integral
/usr/include/llvm/ADT/MapVector.h:42:55: error: expected '(' before '>' token
   42 |       std::is_integral_v<typename MapType::mapped_type>,
      |                                                       ^
      |                                                       (
/usr/include/llvm/ADT/MapVector.h:42:56: error: expected primary-expression before ',' token
   42 |       std::is_integral_v<typename MapType::mapped_type>,
      |                                                        ^
/usr/include/llvm/ADT/MapVector.h: In member function 'ValueT llvm::MapVector<KeyT, ValueT, MapType, VectorType>::lookup(const KeyT&) const':
/usr/include/llvm/ADT/MapVector.h:112:24: error: 'is_copy_constructible_v' is not a member of 'std'; did you mean 'is_copy_constructible'?
  112 |     static_assert(std::is_copy_constructible_v<ValueT>,
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
      |                        is_copy_constructible
/usr/include/llvm/ADT/MapVector.h:112:54: error: expected primary-expression before '>' token
  112 |     static_assert(std::is_copy_constructible_v<ValueT>,
      |                                                      ^
/usr/include/llvm/ADT/MapVector.h:112:55: error: expected primary-expression before ',' token
  112 |     static_assert(std::is_copy_constructible_v<ValueT>,
      |                                                       ^
/usr/include/clang/AST/ASTContext.h: At global scope:
/usr/include/clang/AST/ASTContext.h:1593:37: error: 'std::optional' has not been declared
 1593 |                                std::optional<unsigned> PackIndex) const;
      |                                     ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:1593:45: error: expected ',' or '...' before '<' token
 1593 |                                std::optional<unsigned> PackIndex) const;
      |                                             ^
/usr/include/clang/AST/ASTContext.h:1656:38: error: 'std::optional' has not been declared
 1656 |                                 std::optional<unsigned> NumExpansions,
      |                                      ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:1656:46: error: expected ',' or '...' before '<' token
 1656 |                                 std::optional<unsigned> NumExpansions,
      |                                              ^
/usr/include/clang/AST/ASTContext.h:2178:37: error: 'std::optional' has not been declared
 2178 |                                std::optional<unsigned> PackIndex) const;
      |                                     ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:2178:45: error: expected ',' or '...' before '<' token
 2178 |                                std::optional<unsigned> PackIndex) const;
      |                                             ^
/usr/include/clang/AST/ASTContext.h:2292:8: error: 'optional' in namespace 'std' does not name a template type
 2292 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(QualType Ty) const {
      |        ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:2292:3: note: 'std::optional' is only available from C++17 onwards
 2292 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(QualType Ty) const {
      |   ^~~
/usr/include/clang/AST/ASTContext.h:2298:8: error: 'optional' in namespace 'std' does not name a template type
 2298 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(const Type *Ty) const {
      |        ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:2298:3: note: 'std::optional' is only available from C++17 onwards
 2298 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(const Type *Ty) const {
      |   ^~~
/usr/include/clang/AST/ASTContext.h: In member function 'bool clang::ASTContext::hasSameNullabilityTypeQualifier(clang::QualType, clang::QualType, bool) const':
/usr/include/clang/AST/ASTContext.h:2549:34: error: 'const class clang::Type' has no member named 'getNullability'
 2549 |     auto SubTnullability = SubT->getNullability();
      |                                  ^~~~~~~~~~~~~~
/usr/include/clang/AST/ASTContext.h:2550:38: error: 'const class clang::Type' has no member named 'getNullability'
 2550 |     auto SuperTnullability = SuperT->getNullability();
      |                                      ^~~~~~~~~~~~~~
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::TemplateParameterList::asArray()':
/usr/include/clang/AST/DeclTemplate.h:133:58: error: missing template arguments before '(' token
  133 |   ArrayRef<NamedDecl *> asArray() { return llvm::ArrayRef(begin(), end()); }
      |                                                          ^
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<const clang::NamedDecl*> clang::TemplateParameterList::asArray() const':
/usr/include/clang/AST/DeclTemplate.h:135:26: error: missing template arguments before '(' token
  135 |     return llvm::ArrayRef(begin(), size());
      |                          ^
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::TemplateArgumentList::asArray() const':
/usr/include/clang/AST/DeclTemplate.h:291:26: error: missing template arguments before '(' token
  291 |     return llvm::ArrayRef(data(), size());
      |                          ^
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<clang::TemplateArgumentLoc> clang::DependentFunctionTemplateSpecializationInfo::arguments() const':
/usr/include/clang/AST/DeclTemplate.h:743:26: error: missing template arguments before '(' token
  743 |     return llvm::ArrayRef(getTemplateArgs(), getNumTemplateArgs());
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>'
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>'
/usr/include/clang/AST/DeclTemplate.h:1236:17:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>':
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>'
/usr/include/clang/AST/DeclTemplate.h:1236:17:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclTemplate.h: At global scope:
/usr/include/clang/AST/DeclTemplate.h:1241:29: error: 'std::optional' has not been declared
 1241 |                        std::optional<unsigned> NumExpanded)
      |                             ^~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:1241:37: error: expected ',' or '...' before '<' token
 1241 |                        std::optional<unsigned> NumExpanded)
      |                                     ^
/usr/include/clang/AST/DeclTemplate.h:1252:15: error: 'std::optional' has not been declared
 1252 |          std::optional<unsigned> NumExpanded = std::nullopt);
      |               ^~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:1252:23: error: expected ',' or '...' before '<' token
 1252 |          std::optional<unsigned> NumExpanded = std::nullopt);
      |                       ^
/usr/include/clang/AST/DeclTemplate.h:1252:10: error: default argument missing for parameter 11 of 'static clang::TemplateTypeParmDecl* clang::TemplateTypeParmDecl::Create(const clang::ASTContext&, clang::DeclContext*, clang::SourceLocation, clang::SourceLocation, unsigned int, unsigned int, clang::IdentifierInfo*, bool, bool, bool, int)'
 1252 |          std::optional<unsigned> NumExpanded = std::nullopt);
      |          ^~~~~~~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:1251:50: note: ...following parameter 10 which has a default argument
 1251 |          bool Typename, bool ParameterPack, bool HasTypeConstraint = false,
      |                                             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/clang/AST/DeclTemplate.h: In constructor 'clang::TemplateTypeParmDecl::TemplateTypeParmDecl(clang::DeclContext*, clang::SourceLocation, clang::SourceLocation, clang::IdentifierInfo*, bool, bool, int)':
/usr/include/clang/AST/DeclTemplate.h:1245:33: error: request for member 'value_or' in '((clang::TemplateTypeParmDecl*)this)->clang::TemplateTypeParmDecl::NumExpanded', which is of non-class type 'unsigned int'
 1245 |         NumExpanded(NumExpanded.value_or(0)) {}
      |                                 ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>'
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>'
/usr/include/clang/AST/DeclTemplate.h:1419:17:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>':
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>'
/usr/include/clang/AST/DeclTemplate.h:1419:17:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>'
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>'
/usr/include/clang/AST/DeclTemplate.h:1632:17:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>':
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>'
/usr/include/clang/AST/DeclTemplate.h:1632:17:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
/usr/include/clang/AST/DeclTemplate.h:1843:5:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/clang/AST/DeclTemplate.h:1843:5:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>'
/usr/include/clang/AST/DeclTemplate.h:1978:31:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>':
/usr/include/clang/AST/DeclTemplate.h:1978:31:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::NamedDecl*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::NamedDecl*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/DeclTemplate.h:2481:15:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::NamedDecl*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::NamedDecl*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/DeclTemplate.h:2481:15:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::NamedDecl*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
/usr/include/clang/AST/DeclTemplate.h:2705:3:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/clang/AST/DeclTemplate.h:2705:3:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>'
/usr/include/clang/AST/DeclTemplate.h:2832:31:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>':
/usr/include/clang/AST/DeclTemplate.h:2832:31:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>'
/usr/include/clang/AST/DeclTemplate.h:3424:53:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>':
/usr/include/clang/AST/DeclTemplate.h:3424:53:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclTemplate.h: At global scope:
/usr/include/clang/AST/DeclTemplate.h:3453:13: error: 'optional' in namespace 'std' does not name a template type
 3453 | inline std::optional<unsigned> getExpandedPackSize(const NamedDecl *Param) {
      |             ^~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:3453:8: note: 'std::optional' is only available from C++17 onwards
 3453 | inline std::optional<unsigned> getExpandedPackSize(const NamedDecl *Param) {
      |        ^~~
/usr/include/clang/AST/DeclFriend.h:113:69: error: 'nullopt' is not a member of 'std'
  113 |          ArrayRef<TemplateParameterList *> FriendTypeTPLists = std::nullopt);
      |                                                                     ^~~~~~~
/usr/include/clang/AST/DeclFriend.h:113:69: note: 'std::nullopt' is only available from C++17 onwards
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:22:
/usr/include/clang/AST/DeclObjC.h:391:64: error: 'nullopt' is not a member of 'std'
  391 |                        ArrayRef<SourceLocation> SelLocs = std::nullopt);
      |                                                                ^~~~~~~
/usr/include/clang/AST/DeclObjC.h:391:64: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/DeclObjC.h: In member function 'llvm::ArrayRef<clang::ParmVarDecl*> clang::ObjCMethodDecl::parameters() const':
/usr/include/clang/AST/DeclObjC.h:376:26: error: missing template arguments before '(' token
  376 |     return llvm::ArrayRef(const_cast<ParmVarDecl **>(getParams()), NumParams);
      |                          ^
/usr/include/clang/AST/DeclObjC.h: In member function 'std::string clang::ObjCImplementationDecl::getNameAsString() const':
/usr/include/clang/AST/DeclObjC.h:2713:69: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef)'
 2713 |   std::string getNameAsString() const { return std::string(getName()); }
      |                                                                     ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/AST/DeclObjC.h:2713:69: note:   candidate expects 3 arguments, 1 provided
 2713 |   std::string getNameAsString() const { return std::string(getName()); }
      |                                                                     ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/llvm/Frontend/OpenMP/OMPContext.h:19,
                 from /usr/include/clang/AST/OpenMPClause.h:37,
                 from /usr/include/clang/AST/DeclOpenMP.h:21,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:23:
/usr/include/llvm/ADT/BitVector.h: In member function 'llvm::BitVector::size_type llvm::BitVector::count() const':
/usr/include/llvm/ADT/BitVector.h:158:24: error: 'popcount' is not a member of 'llvm'; did you mean 'count'?
  158 |       NumBits += llvm::popcount(Bit);
      |                        ^~~~~~~~
      |                        count
In file included from /usr/include/clang/Basic/Diagnostic.h:22:
/usr/include/llvm/ADT/DenseMap.h: In instantiation of 'class llvm::SmallDenseMap<llvm::omp::TraitProperty, llvm::APInt>':
/usr/include/llvm/Frontend/OpenMP/OMPContext.h:151:39:   required from here
/usr/include/llvm/ADT/DenseMap.h:890:30: error: non-constant condition for static assertion
  890 |   static_assert(isPowerOf2_64(InlineBuckets),
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/usr/include/llvm/ADT/DenseMap.h:890:30:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(4)'
/usr/include/llvm/ADT/DenseMap.h:890:30: error: 'constexpr' call flows off the end of the function
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPVarListClause<T>::getVarRefs() const':
/usr/include/clang/AST/OpenMPClause.h:339:26: error: missing template arguments before '(' token
  339 |     return llvm::ArrayRef(
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPPrivateClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:2560:26: error: missing template arguments before '(' token
 2560 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPFirstprivateClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:2669:26: error: missing template arguments before '(' token
 2669 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPFirstprivateClause::getInits() const':
/usr/include/clang/AST/OpenMPClause.h:2683:26: error: missing template arguments before '(' token
 2683 |     return llvm::ArrayRef(getPrivateCopies().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:2831:26: error: missing template arguments before '(' token
 2831 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getSourceExprs() const':
/usr/include/clang/AST/OpenMPClause.h:2845:26: error: missing template arguments before '(' token
 2845 |     return llvm::ArrayRef(getPrivateCopies().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getDestinationExprs() const':
/usr/include/clang/AST/OpenMPClause.h:2859:26: error: missing template arguments before '(' token
 2859 |     return llvm::ArrayRef(getSourceExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getAssignmentOps() const':
/usr/include/clang/AST/OpenMPClause.h:2872:26: error: missing template arguments before '(' token
 2872 |     return llvm::ArrayRef(getDestinationExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3160:26: error: missing template arguments before '(' token
 3160 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getLHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3173:26: error: missing template arguments before '(' token
 3173 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getRHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3188:26: error: missing template arguments before '(' token
 3188 |     return llvm::ArrayRef(getLHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getReductionOps() const':
/usr/include/clang/AST/OpenMPClause.h:3202:26: error: missing template arguments before '(' token
 3202 |     return llvm::ArrayRef(getRHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getInscanCopyOps() const':
/usr/include/clang/AST/OpenMPClause.h:3214:26: error: missing template arguments before '(' token
 3214 |     return llvm::ArrayRef(getReductionOps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getInscanCopyArrayTemps() const':
/usr/include/clang/AST/OpenMPClause.h:3225:26: error: missing template arguments before '(' token
 3225 |     return llvm::ArrayRef(getInscanCopyOps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getInscanCopyArrayElems() const':
/usr/include/clang/AST/OpenMPClause.h:3237:26: error: missing template arguments before '(' token
 3237 |     return llvm::ArrayRef(getInscanCopyArrayTemps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3479:26: error: missing template arguments before '(' token
 3479 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getLHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3492:26: error: missing template arguments before '(' token
 3492 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getRHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3506:26: error: missing template arguments before '(' token
 3506 |     return llvm::ArrayRef(getLHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getReductionOps() const':
/usr/include/clang/AST/OpenMPClause.h:3520:26: error: missing template arguments before '(' token
 3520 |     return llvm::ArrayRef(getRHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3710:26: error: missing template arguments before '(' token
 3710 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getLHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3723:26: error: missing template arguments before '(' token
 3723 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getRHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3737:26: error: missing template arguments before '(' token
 3737 |     return llvm::ArrayRef(getLHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getReductionOps() const':
/usr/include/clang/AST/OpenMPClause.h:3751:26: error: missing template arguments before '(' token
 3751 |     return llvm::ArrayRef(getRHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getTaskgroupDescriptors() const':
/usr/include/clang/AST/OpenMPClause.h:3762:26: error: missing template arguments before '(' token
 3762 |     return llvm::ArrayRef(getReductionOps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3968:26: error: missing template arguments before '(' token
 3968 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getInits() const':
/usr/include/clang/AST/OpenMPClause.h:3975:26: error: missing template arguments before '(' token
 3975 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getUpdates() const':
/usr/include/clang/AST/OpenMPClause.h:3983:26: error: missing template arguments before '(' token
 3983 |     return llvm::ArrayRef(getInits().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getFinals() const':
/usr/include/clang/AST/OpenMPClause.h:3991:26: error: missing template arguments before '(' token
 3991 |     return llvm::ArrayRef(getUpdates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getUsedExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3999:26: error: missing template arguments before '(' token
 3999 |     return llvm::ArrayRef(getFinals().end() + 2, varlist_size() + 1);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyinClause::getSourceExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4328:26: error: missing template arguments before '(' token
 4328 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyinClause::getDestinationExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4341:26: error: missing template arguments before '(' token
 4341 |     return llvm::ArrayRef(getSourceExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyinClause::getAssignmentOps() const':
/usr/include/clang/AST/OpenMPClause.h:4355:26: error: missing template arguments before '(' token
 4355 |     return llvm::ArrayRef(getDestinationExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyprivateClause::getSourceExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4493:26: error: missing template arguments before '(' token
 4493 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyprivateClause::getDestinationExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4506:26: error: missing template arguments before '(' token
 4506 |     return llvm::ArrayRef(getSourceExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyprivateClause::getAssignmentOps() const':
/usr/include/clang/AST/OpenMPClause.h:4520:26: error: missing template arguments before '(' token
 4520 |     return llvm::ArrayRef(getDestinationExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'clang::OMPMappableExprListClause<T>::const_component_lists_iterator clang::OMPMappableExprListClause<T>::component_lists_begin() const':
/usr/include/clang/AST/OpenMPClause.h:5638:51: error: 'nullopt' is not a member of 'std'
 5638 |         SupportsMapper ? getUDMapperRefs() : std::nullopt);
      |                                                   ^~~~~~~
/usr/include/clang/AST/OpenMPClause.h:5638:51: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/OpenMPClause.h: In member function 'clang::OMPMappableExprListClause<T>::const_component_lists_iterator clang::OMPMappableExprListClause<T>::component_lists_end() const':
/usr/include/clang/AST/OpenMPClause.h:5645:30: error: 'nullopt' is not a member of 'std'
 5645 |         SupportsMapper, std::nullopt);
      |                              ^~~~~~~
/usr/include/clang/AST/OpenMPClause.h:5645:30: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/OpenMPClause.h: In member function 'clang::OMPMappableExprListClause<T>::const_component_lists_iterator clang::OMPMappableExprListClause<T>::decl_component_lists_begin(const clang::ValueDecl*) const':
/usr/include/clang/AST/OpenMPClause.h:5658:51: error: 'nullopt' is not a member of 'std'
 5658 |         SupportsMapper ? getUDMapperRefs() : std::nullopt);
      |                                                   ^~~~~~~
/usr/include/clang/AST/OpenMPClause.h:5658:51: note: 'std::nullopt' is only available from C++17 onwards
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/clang/AST/OpenMPClause.h:41:
/usr/include/clang/AST/OpenMPClause.h: In constructor 'clang::OMPMapClause::OMPMapClause(llvm::ArrayRef<clang::OpenMPMapModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, clang::OpenMPMapClauseKind, bool, clang::SourceLocation, const clang::OMPVarListLocTy&, const clang::OMPMappableExprListSizeTy&)':
/usr/include/clang/AST/OpenMPClause.h:5810:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 5810 |     assert(std::size(MapTypeModifiers) == MapModifiers.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h:5814:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 5814 |     assert(std::size(MapTypeModifiersLoc) == MapModifiersLoc.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::OpenMPMapModifierKind> clang::OMPMapClause::getMapTypeModifiers() const':
/usr/include/clang/AST/OpenMPClause.h:5948:26: error: missing template arguments before '(' token
 5948 |     return llvm::ArrayRef(MapTypeModifiers);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::OMPMapClause::getMapTypeModifiersLoc() const':
/usr/include/clang/AST/OpenMPClause.h:5953:26: error: missing template arguments before '(' token
 5953 |     return llvm::ArrayRef(MapTypeModifiersLoc);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In constructor 'clang::OMPToClause::OMPToClause(llvm::ArrayRef<clang::OpenMPMotionModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, const clang::OMPVarListLocTy&, const clang::OMPMappableExprListSizeTy&)':
/usr/include/clang/AST/OpenMPClause.h:6788:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6788 |     assert(std::size(MotionModifiers) == TheMotionModifiers.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h:6792:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6792 |     assert(std::size(MotionModifiersLoc) == TheMotionModifiersLoc.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::OpenMPMotionModifierKind> clang::OMPToClause::getMotionModifiers() const':
/usr/include/clang/AST/OpenMPClause.h:6904:26: error: missing template arguments before '(' token
 6904 |     return llvm::ArrayRef(MotionModifiers);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::OMPToClause::getMotionModifiersLoc() const':
/usr/include/clang/AST/OpenMPClause.h:6909:26: error: missing template arguments before '(' token
 6909 |     return llvm::ArrayRef(MotionModifiersLoc);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In constructor 'clang::OMPFromClause::OMPFromClause(llvm::ArrayRef<clang::OpenMPMotionModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, const clang::OMPVarListLocTy&, const clang::OMPMappableExprListSizeTy&)':
/usr/include/clang/AST/OpenMPClause.h:6989:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6989 |     assert(std::size(MotionModifiers) == TheMotionModifiers.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h:6993:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6993 |     assert(std::size(MotionModifiersLoc) == TheMotionModifiersLoc.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::OpenMPMotionModifierKind> clang::OMPFromClause::getMotionModifiers() const':
/usr/include/clang/AST/OpenMPClause.h:7104:26: error: missing template arguments before '(' token
 7104 |     return llvm::ArrayRef(MotionModifiers);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::OMPFromClause::getMotionModifiersLoc() const':
/usr/include/clang/AST/OpenMPClause.h:7109:26: error: missing template arguments before '(' token
 7109 |     return llvm::ArrayRef(MotionModifiersLoc);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPUseDevicePtrClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:7204:26: error: missing template arguments before '(' token
 7204 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPUseDevicePtrClause::getInits() const':
/usr/include/clang/AST/OpenMPClause.h:7218:26: error: missing template arguments before '(' token
 7218 |     return llvm::ArrayRef(getPrivateCopies().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPNontemporalClause::getPrivateRefs() const':
/usr/include/clang/AST/OpenMPClause.h:7652:26: error: missing template arguments before '(' token
 7652 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::MutableArrayRef<clang::OMPClause*> clang::OMPChildren::getClauses()':
/usr/include/clang/AST/OpenMPClause.h:8934:33: error: missing template arguments before '(' token
 8934 |     return llvm::MutableArrayRef(getTrailingObjects<OMPClause *>(),
      |                                 ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::MutableArrayRef<clang::OMPClause*> clang::OMPDeclarativeDirective<T>::getClauses()':
/usr/include/clang/AST/DeclOpenMP.h:37:19: error: 'nullopt' is not a member of 'std'
   37 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/DeclOpenMP.h:37:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::ArrayRef<clang::OMPClause*> clang::OMPDeclarativeDirective<T>::clauses() const':
/usr/include/clang/AST/DeclOpenMP.h:93:19: error: 'nullopt' is not a member of 'std'
   93 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/DeclOpenMP.h:93:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPThreadPrivateDecl::getVars() const':
/usr/include/clang/AST/DeclOpenMP.h:121:26: error: missing template arguments before '(' token
  121 |     return llvm::ArrayRef(Storage, Data->getNumChildren());
      |                          ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPThreadPrivateDecl::getVars()':
/usr/include/clang/AST/DeclOpenMP.h:126:33: error: missing template arguments before '(' token
  126 |     return llvm::MutableArrayRef(Storage, Data->getNumChildren());
      |                                 ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPAllocateDecl::getVars() const':
/usr/include/clang/AST/DeclOpenMP.h:484:26: error: missing template arguments before '(' token
  484 |     return llvm::ArrayRef(Storage, Data->getNumChildren());
      |                          ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPAllocateDecl::getVars()':
/usr/include/clang/AST/DeclOpenMP.h:489:33: error: missing template arguments before '(' token
  489 |     return llvm::MutableArrayRef(Storage, Data->getNumChildren());
      |                                 ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/ExprCXX.h:849:48:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/ExprCXX.h:849:48:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:27:
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:2265:45: error: 'std::optional' has not been declared
 2265 |              SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                             ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2265:53: error: expected ',' or '...' before '<' token
 2265 |              SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                                     ^
/usr/include/clang/AST/ExprCXX.h:2280:41: error: 'std::optional' has not been declared
 2280 |          SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                         ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2280:49: error: expected ',' or '...' before '<' token
 2280 |          SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                                 ^
/usr/include/clang/AST/ExprCXX.h:2325:8: error: 'optional' in namespace 'std' does not name a template type
 2325 |   std::optional<Expr *> getArraySize() {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2325:3: note: 'std::optional' is only available from C++17 onwards
 2325 |   std::optional<Expr *> getArraySize() {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h:2339:8: error: 'optional' in namespace 'std' does not name a template type
 2339 |   std::optional<const Expr *> getArraySize() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2339:3: note: 'std::optional' is only available from C++17 onwards
 2339 |   std::optional<const Expr *> getArraySize() const {
      |   ^~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::IdentifierInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::IdentifierInfo*>'
/usr/include/clang/AST/ExprCXX.h:2544:58:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::IdentifierInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::IdentifierInfo*>':
/usr/include/clang/AST/ExprCXX.h:2544:58:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::IdentifierInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::TypeSourceInfo*> clang::TypeTraitExpr::getArgs() const':
/usr/include/clang/AST/ExprCXX.h:2799:26: error: missing template arguments before '(' token
 2799 |     return llvm::ArrayRef(getTrailingObjects<TypeSourceInfo *>(), getNumArgs());
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::BlockDecl*, clang::CompoundLiteralExpr*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*>'
/usr/include/llvm/Support/TrailingObjects.h:77:22:   required from 'class llvm::trailing_objects_internal::AlignmentCalcHelper<llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/llvm/Support/TrailingObjects.h:212:7:   required from 'class llvm::TrailingObjects<clang::ExprWithCleanups, llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/clang/AST/ExprCXX.h:3418:21:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::BlockDecl*, clang::CompoundLiteralExpr*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*>':
/usr/include/llvm/Support/TrailingObjects.h:77:22:   required from 'class llvm::trailing_objects_internal::AlignmentCalcHelper<llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/llvm/Support/TrailingObjects.h:212:7:   required from 'class llvm::TrailingObjects<clang::ExprWithCleanups, llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/clang/AST/ExprCXX.h:3418:21:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::BlockDecl*, clang::CompoundLiteralExpr*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> > clang::ExprWithCleanups::getObjects() const':
/usr/include/clang/AST/ExprCXX.h:3445:26: error: missing template arguments before '(' token
 3445 |     return llvm::ArrayRef(getTrailingObjects<CleanupObject>(), getNumObjects());
      |                          ^
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4141:26: error: 'std::optional' has not been declared
 4141 |                     std::optional<unsigned> NumExpansions)
      |                          ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4141:34: error: expected ',' or '...' before '<' token
 4141 |                     std::optional<unsigned> NumExpansions)
      |                                  ^
/usr/include/clang/AST/ExprCXX.h:4164:8: error: 'optional' in namespace 'std' does not name a template type
 4164 |   std::optional<unsigned> getNumExpansions() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4164:3: note: 'std::optional' is only available from C++17 onwards
 4164 |   std::optional<unsigned> getNumExpansions() const {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::PackExpansionExpr::PackExpansionExpr(clang::QualType, clang::Expr*, clang::SourceLocation, int)':
/usr/include/clang/AST/ExprCXX.h:4145:39: error: invalid type argument of unary '*' (have 'unsigned int')
 4145 |         NumExpansions(NumExpansions ? *NumExpansions + 1 : 0),
      |                                       ^~~~~~~~~~~~~~
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4235:23: error: 'std::optional' has not been declared
 4235 |                  std::optional<unsigned> Length,
      |                       ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4235:31: error: expected ',' or '...' before '<' token
 4235 |                  std::optional<unsigned> Length,
      |                               ^
/usr/include/clang/AST/ExprCXX.h:4256:15: error: 'std::optional' has not been declared
 4256 |          std::optional<unsigned> Length = std::nullopt,
      |               ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4256:23: error: expected ',' or '...' before '<' token
 4256 |          std::optional<unsigned> Length = std::nullopt,
      |                       ^
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::SizeOfPackExpr::SizeOfPackExpr(clang::QualType, clang::SourceLocation, clang::NamedDecl*, clang::SourceLocation, clang::SourceLocation, int)':
/usr/include/clang/AST/ExprCXX.h:4239:25: error: invalid type argument of unary '*' (have 'unsigned int')
 4239 |         Length(Length ? *Length : PartialArgs.size()), Pack(Pack) {
      |                         ^~~~~~~
/usr/include/clang/AST/ExprCXX.h:4239:35: error: 'PartialArgs' was not declared in this scope
 4239 |         Length(Length ? *Length : PartialArgs.size()), Pack(Pack) {
      |                                   ^~~~~~~~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::SizeOfPackExpr::getPartialArguments() const':
/usr/include/clang/AST/ExprCXX.h:4296:26: error: missing template arguments before '(' token
 4296 |     return llvm::ArrayRef(Args, Args + Length);
      |                          ^
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4340:37: error: 'std::optional' has not been declared
 4340 |                                std::optional<unsigned> PackIndex, bool RefParam)
      |                                     ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4340:45: error: expected ',' or '...' before '<' token
 4340 |                                std::optional<unsigned> PackIndex, bool RefParam)
      |                                             ^
/usr/include/clang/AST/ExprCXX.h:4366:8: error: 'optional' in namespace 'std' does not name a template type
 4366 |   std::optional<unsigned> getPackIndex() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4366:3: note: 'std::optional' is only available from C++17 onwards
 4366 |   std::optional<unsigned> getPackIndex() const {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::SubstNonTypeTemplateParmExpr::SubstNonTypeTemplateParmExpr(clang::QualType, clang::ExprValueKind, clang::SourceLocation, clang::Expr*, clang::Decl*, unsigned int, int)':
/usr/include/clang/AST/ExprCXX.h:4343:46: error: 'RefParam' was not declared in this scope
 4343 |         AssociatedDeclAndRef(AssociatedDecl, RefParam), Index(Index),
      |                                              ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4344:31: error: invalid type argument of unary '*' (have 'unsigned int')
 4344 |         PackIndex(PackIndex ? *PackIndex + 1 : 0) {
      |                               ^~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>'
/usr/include/clang/AST/ExprCXX.h:4567:63:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>':
/usr/include/clang/AST/ExprCXX.h:4567:63:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4693:20: error: 'std::optional' has not been declared
 4693 |               std::optional<unsigned> NumExpansions)
      |                    ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4693:28: error: expected ',' or '...' before '<' token
 4693 |               std::optional<unsigned> NumExpansions)
      |                            ^
/usr/include/clang/AST/ExprCXX.h:4730:8: error: 'optional' in namespace 'std' does not name a template type
 4730 |   std::optional<unsigned> getNumExpansions() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4730:3: note: 'std::optional' is only available from C++17 onwards
 4730 |   std::optional<unsigned> getNumExpansions() const {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::CXXFoldExpr::CXXFoldExpr(clang::QualType, clang::UnresolvedLookupExpr*, clang::SourceLocation, clang::Expr*, clang::BinaryOperatorKind, clang::SourceLocation, clang::Expr*, clang::SourceLocation, int)':
/usr/include/clang/AST/ExprCXX.h:4696:39: error: invalid type argument of unary '*' (have 'unsigned int')
 4696 |         NumExpansions(NumExpansions ? *NumExpansions + 1 : 0), Opcode(Opcode) {
      |                                       ^~~~~~~~~~~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getInitExprs()':
/usr/include/clang/AST/ExprCXX.h:4837:20: error: missing template arguments before '(' token
 4837 |     return ArrayRef(getTrailingObjects<Expr *>(), NumExprs);
      |                    ^
/usr/include/clang/AST/ExprCXX.h: In member function 'const llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getInitExprs() const':
/usr/include/clang/AST/ExprCXX.h:4841:20: error: missing template arguments before '(' token
 4841 |     return ArrayRef(getTrailingObjects<Expr *>(), NumExprs);
      |                    ^
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getUserSpecifiedInitExprs()':
/usr/include/clang/AST/ExprCXX.h:4845:20: error: missing template arguments before '(' token
 4845 |     return ArrayRef(getTrailingObjects<Expr *>(), NumUserSpecifiedExprs);
      |                    ^
/usr/include/clang/AST/ExprCXX.h: In member function 'const llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getUserSpecifiedInitExprs() const':
/usr/include/clang/AST/ExprCXX.h:4849:20: error: missing template arguments before '(' token
 4849 |     return ArrayRef(getTrailingObjects<Expr *>(), NumUserSpecifiedExprs);
      |                    ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/ExprConcepts.h:216:66:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/ExprConcepts.h:216:66:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
/usr/include/clang/AST/ExprConcepts.h:336:56:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/clang/AST/ExprConcepts.h:336:56:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
/usr/include/clang/AST/ExprConcepts.h:283:33:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/clang/AST/ExprConcepts.h:283:33:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:29:
/usr/include/clang/AST/ExprObjC.h: At global scope:
/usr/include/clang/AST/ExprObjC.h:274:8: error: 'optional' in namespace 'std' does not name a template type
  274 |   std::optional<unsigned> NumExpansions;
      |        ^~~~~~~~
/usr/include/clang/AST/ExprObjC.h:274:3: note: 'std::optional' is only available from C++17 onwards
  274 |   std::optional<unsigned> NumExpansions;
      |   ^~~
/usr/include/clang/AST/ExprObjC.h: In member function 'clang::ObjCDictionaryElement clang::ObjCDictionaryLiteral::getKeyValueElement(unsigned int) const':
/usr/include/clang/AST/ExprObjC.h:365:42: error: 'nullopt' is not a member of 'std'
  365 |                                     std::nullopt};
      |                                          ^~~~~~~
/usr/include/clang/AST/ExprObjC.h:365:42: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/ExprObjC.h:365:49: error: too many initializers for 'clang::ObjCDictionaryElement'
  365 |                                     std::nullopt};
      |                                                 ^
/usr/include/clang/AST/ExprObjC.h:371:16: error: 'struct clang::ObjCDictionaryElement' has no member named 'NumExpansions'
  371 |         Result.NumExpansions = Expansion.NumExpansionsPlusOne - 1;
      |                ^~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>'
/usr/include/clang/AST/ExprObjC.h:645:65:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>':
/usr/include/clang/AST/ExprObjC.h:645:65:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprObjC.h: In member function 'clang::SourceLocation clang::ObjCMessageExpr::getSelectorLoc(unsigned int) const':
/usr/include/clang/AST/ExprObjC.h:1420:25: error: missing template arguments before '(' token
 1420 |           llvm::ArrayRef(const_cast<Expr **>(getArgs()), getNumArgs()),
      |                         ^
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:30:
/usr/include/clang/AST/ExprOpenMP.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::OMPArrayShapingExpr::getDimensions() const':
/usr/include/clang/AST/ExprOpenMP.h:205:26: error: missing template arguments before '(' token
  205 |     return llvm::ArrayRef(getTrailingObjects<Expr *>(), NumDims);
      |                          ^
/usr/include/clang/AST/ExprOpenMP.h: In member function 'llvm::ArrayRef<clang::SourceRange> clang::OMPArrayShapingExpr::getBracketsRanges() const':
/usr/include/clang/AST/ExprOpenMP.h:210:26: error: missing template arguments before '(' token
  210 |     return llvm::ArrayRef(getTrailingObjects<SourceRange>(), NumDims);
      |                          ^
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:37:
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::OMPClause*> clang::OMPExecutableDirective::getClauses()':
/usr/include/clang/AST/StmtOpenMP.h:280:19: error: 'nullopt' is not a member of 'std'
  280 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/StmtOpenMP.h:280:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/StmtOpenMP.h: In static member function 'static llvm::iterator_range<clang::OMPExecutableDirective::used_clauses_child_iterator> clang::OMPExecutableDirective::used_clauses_children(llvm::ArrayRef<clang::OMPClause*>)':
/usr/include/clang/AST/StmtOpenMP.h:404:36: error: expected primary-expression before '(' token
  404 |         used_clauses_child_iterator(llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                                    ^
/usr/include/clang/AST/StmtOpenMP.h:404:51: error: missing template arguments before '(' token
  404 |         used_clauses_child_iterator(llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                                                   ^
/usr/include/clang/AST/StmtOpenMP.h:404:78: error: could not convert '{clang::OMPExecutableDirective::used_clauses_child_iterator(Clauses), <expression error>}' from '<brace-enclosed initializer list>' to 'llvm::iterator_range<clang::OMPExecutableDirective::used_clauses_child_iterator>'
  404 |         used_clauses_child_iterator(llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                                                                              ^
      |                                                                              |
      |                                                                              <brace-enclosed initializer list>
/usr/include/clang/AST/StmtOpenMP.h: In static member function 'static llvm::iterator_range<clang::OMPExecutableDirective::specific_clause_iterator<SpecificClause> > clang::OMPExecutableDirective::getClausesOfKind(llvm::ArrayRef<clang::OMPClause*>)':
/usr/include/clang/AST/StmtOpenMP.h:448:53: error: expected primary-expression before '(' token
  448 |             specific_clause_iterator<SpecificClause>(
      |                                                     ^
/usr/include/clang/AST/StmtOpenMP.h:449:31: error: missing template arguments before '(' token
  449 |                 llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                               ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::ArrayRef<clang::OMPClause*> clang::OMPExecutableDirective::clauses() const':
/usr/include/clang/AST/StmtOpenMP.h:575:19: error: 'nullopt' is not a member of 'std'
  575 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/StmtOpenMP.h:575:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getCounters()':
/usr/include/clang/AST/StmtOpenMP.h:1070:33: error: missing template arguments before '(' token
 1070 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getPrivateCounters()':
/usr/include/clang/AST/StmtOpenMP.h:1078:33: error: missing template arguments before '(' token
 1078 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getInits()':
/usr/include/clang/AST/StmtOpenMP.h:1086:33: error: missing template arguments before '(' token
 1086 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getUpdates()':
/usr/include/clang/AST/StmtOpenMP.h:1094:33: error: missing template arguments before '(' token
 1094 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getFinals()':
/usr/include/clang/AST/StmtOpenMP.h:1102:33: error: missing template arguments before '(' token
 1102 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getDependentCounters()':
/usr/include/clang/AST/StmtOpenMP.h:1110:33: error: missing template arguments before '(' token
 1110 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getDependentInits()':
/usr/include/clang/AST/StmtOpenMP.h:1118:33: error: missing template arguments before '(' token
 1118 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getFinalsConditions()':
/usr/include/clang/AST/StmtOpenMP.h:1126:33: error: missing template arguments before '(' token
 1126 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
In file included from /usr/include/clang/Basic/FileEntry.h:17,
                 from /usr/include/clang/Basic/SourceManager.h:38,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/CallExprToValue.cpp:19:
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:35:34: error: invalid use of '::'
   35 |   constexpr CustomizableOptional(std::nullopt_t) {}
      |                                  ^~~
/usr/include/clang/Basic/CustomizableOptional.h:35:51: error: expected ';' at end of member declaration
   35 |   constexpr CustomizableOptional(std::nullopt_t) {}
      |                                                   ^
      |                                                    ;
/usr/include/clang/Basic/CustomizableOptional.h:45:49: error: expected ')' before ',' token
   45 |   constexpr CustomizableOptional(std::in_place_t, ArgTypes &&...Args)
      |                                 ~               ^
      |                                                 )
/usr/include/clang/Basic/CustomizableOptional.h:49:45: error: 'optional' in namespace 'std' does not name a template type
   49 |   constexpr CustomizableOptional(const std::optional<T> &y)
      |                                             ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:49:40: note: 'std::optional' is only available from C++17 onwards
   49 |   constexpr CustomizableOptional(const std::optional<T> &y)
      |                                        ^~~
/usr/include/clang/Basic/CustomizableOptional.h:49:53: error: expected ',' or '...' before '<' token
   49 |   constexpr CustomizableOptional(const std::optional<T> &y)
      |                                                     ^
/usr/include/clang/Basic/CustomizableOptional.h:51:47: error: expected ')' before '<' token
   51 |   constexpr CustomizableOptional(std::optional<T> &&y)
      |                                 ~             ^
      |                                               )
/usr/include/clang/Basic/CustomizableOptional.h:102:26: error: 'optional' in namespace 'std' does not name a template type
  102 |   explicit operator std::optional<T> &() const & {
      |                          ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:102:21: note: 'std::optional' is only available from C++17 onwards
  102 |   explicit operator std::optional<T> &() const & {
      |                     ^~~
/usr/include/clang/Basic/CustomizableOptional.h:105:26: error: 'optional' in namespace 'std' does not name a template type
  105 |   explicit operator std::optional<T> &&() const && {
      |                          ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:105:21: note: 'std::optional' is only available from C++17 onwards
  105 |   explicit operator std::optional<T> &&() const && {
      |                     ^~~
/usr/include/clang/Basic/CustomizableOptional.h: In constructor 'constexpr clang::CustomizableOptional<T>::CustomizableOptional(const T&)':
/usr/include/clang/Basic/CustomizableOptional.h:37:61: error: 'in_place' is not a member of 'std'
   37 |   constexpr CustomizableOptional(const T &y) : Storage(std::in_place, y) {}
      |                                                             ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:37:61: note: 'std::in_place' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: In constructor 'constexpr clang::CustomizableOptional<T>::CustomizableOptional(T&&)':
/usr/include/clang/Basic/CustomizableOptional.h:41:22: error: 'in_place' is not a member of 'std'
   41 |       : Storage(std::in_place, std::move(y)) {}
      |                      ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:41:22: note: 'std::in_place' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: In constructor 'constexpr clang::CustomizableOptional<T>::CustomizableOptional(int)':
/usr/include/clang/Basic/CustomizableOptional.h:50:30: error: 'y' was not declared in this scope
   50 |       : CustomizableOptional(y ? *y : CustomizableOptional()) {}
      |                              ^
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:111:59: error: expected constructor, destructor, or type conversion before ';' token
  111 | CustomizableOptional(const T &) -> CustomizableOptional<T>;
      |                                                           ^
/usr/include/clang/Basic/CustomizableOptional.h:159:66: error: 'std::nullopt_t' has not been declared
  159 | constexpr bool operator==(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:164:16: error: declaration of 'operator==' as non-function
  164 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:164:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  164 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:164:43: error: expected primary-expression before 'const'
  164 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:169:66: error: 'std::nullopt_t' has not been declared
  169 | constexpr bool operator!=(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator!=(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:170:22: error: 'nullopt' is not a member of 'std'
  170 |   return !(X == std::nullopt);
      |                      ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:170:22: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:174:16: error: declaration of 'operator!=' as non-function
  174 | constexpr bool operator!=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:174:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  174 | constexpr bool operator!=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:174:43: error: expected primary-expression before 'const'
  174 | constexpr bool operator!=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:179:64: error: 'std::nullopt_t' has not been declared
  179 | constexpr bool operator<(const CustomizableOptional<T> &, std::nullopt_t) {
      |                                                                ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:184:16: error: declaration of 'operator<' as non-function
  184 | constexpr bool operator<(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:184:31: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  184 | constexpr bool operator<(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                               ^~~~~~~~~
      |                               nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:184:42: error: expected primary-expression before 'const'
  184 | constexpr bool operator<(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                          ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:189:66: error: 'std::nullopt_t' has not been declared
  189 | constexpr bool operator<=(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator<=(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:190:17: error: 'nullopt' is not a member of 'std'
  190 |   return !(std::nullopt < X);
      |                 ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:190:17: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:194:16: error: declaration of 'operator<=' as non-function
  194 | constexpr bool operator<=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:194:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  194 | constexpr bool operator<=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:194:43: error: expected primary-expression before 'const'
  194 | constexpr bool operator<=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:199:65: error: 'std::nullopt_t' has not been declared
  199 | constexpr bool operator>(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                 ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator>(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:200:15: error: 'nullopt' is not a member of 'std'
  200 |   return std::nullopt < X;
      |               ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:200:15: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:204:16: error: declaration of 'operator>' as non-function
  204 | constexpr bool operator>(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:204:31: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  204 | constexpr bool operator>(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                               ^~~~~~~~~
      |                               nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:204:42: error: expected primary-expression before 'const'
  204 | constexpr bool operator>(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                          ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:209:66: error: 'std::nullopt_t' has not been declared
  209 | constexpr bool operator>=(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator>=(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:210:15: error: 'nullopt' is not a member of 'std'
  210 |   return std::nullopt <= X;
      |               ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:210:15: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:214:16: error: declaration of 'operator>=' as non-function
  214 | constexpr bool operator>=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:214:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  214 | constexpr bool operator>=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:214:43: error: expected primary-expression before 'const'
  214 | constexpr bool operator>=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
In file included from /usr/include/clang/Basic/FileEntry.h:18:
/usr/include/clang/Basic/DirectoryEntry.h:134:51: error: expected ')' before ',' token
  134 |   explicit MapEntryOptionalStorage(std::in_place_t, ArgTypes &&...Args)
      |                                   ~               ^
      |                                                   )
/usr/include/clang/Basic/DirectoryEntry.h:180:43: error: expected ')' before ',' token
  180 |   explicit OptionalStorage(std::in_place_t, ArgTypes &&...Args)
      |                           ~               ^
      |                                           )
/usr/include/clang/Basic/DirectoryEntry.h:181:38: error: expected unqualified-id before ',' token
  181 |       : StorageImpl(std::in_place_t{}, std::forward<ArgTypes>(Args)...) {}
      |                                      ^
/usr/include/clang/Basic/DirectoryEntry.h:269:56: error: invalid use of '::'
  269 |   OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr(std::nullopt_t) {}
      |                                                        ^~~
/usr/include/clang/Basic/DirectoryEntry.h:269:73: error: expected ';' at end of member declaration
  269 |   OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr(std::nullopt_t) {}
      |                                                                         ^
      |                                                                          ;
/usr/include/clang/Basic/DirectoryEntry.h:277:18: error: 'std::nullopt_t' has not been declared
  277 |   operator=(std::nullopt_t) {
      |                  ^~~~~~~~~
/usr/include/clang/Basic/DirectoryEntry.h: In member function 'clang::OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr& clang::OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr::operator=(int)':
/usr/include/clang/Basic/DirectoryEntry.h:278:47: error: 'nullopt' is not a member of 'std'
  278 |     OptionalDirectoryEntryRef::operator=(std::nullopt);
      |                                               ^~~~~~~
/usr/include/clang/Basic/DirectoryEntry.h:278:47: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::FileEntry*, const void*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::FileEntry*, const void*>'
/usr/include/clang/Basic/FileEntry.h:124:51:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::FileEntry*, const void*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::FileEntry*, const void*>':
/usr/include/clang/Basic/FileEntry.h:124:51:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::FileEntry*, const void*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/Basic/FileEntry.h: At global scope:
/usr/include/clang/Basic/FileEntry.h:221:43: error: expected ')' before ',' token
  221 |   explicit OptionalStorage(std::in_place_t, ArgTypes &&...Args)
      |                           ~               ^
      |                                           )
/usr/include/clang/Basic/FileEntry.h:222:38: error: expected unqualified-id before ',' token
  222 |       : StorageImpl(std::in_place_t{}, std::forward<ArgTypes>(Args)...) {}
      |                                      ^
/usr/include/clang/Basic/FileEntry.h:305:46: error: invalid use of '::'
  305 |   OptionalFileEntryRefDegradesToFileEntryPtr(std::nullopt_t) {}
      |                                              ^~~
/usr/include/clang/Basic/FileEntry.h:305:63: error: expected ';' at end of member declaration
  305 |   OptionalFileEntryRefDegradesToFileEntryPtr(std::nullopt_t) {}
      |                                                               ^
      |                                                                ;
/usr/include/clang/Basic/FileEntry.h:311:62: error: 'std::nullopt_t' has not been declared
  311 |   OptionalFileEntryRefDegradesToFileEntryPtr &operator=(std::nullopt_t) {
      |                                                              ^~~~~~~~~
/usr/include/clang/Basic/FileEntry.h: In member function 'clang::OptionalFileEntryRefDegradesToFileEntryPtr& clang::OptionalFileEntryRefDegradesToFileEntryPtr::operator=(int)':
/usr/include/clang/Basic/FileEntry.h:312:42: error: 'nullopt' is not a member of 'std'
  312 |     OptionalFileEntryRef::operator=(std::nullopt);
      |                                          ^~~~~~~
/usr/include/clang/Basic/FileEntry.h:312:42: note: 'std::nullopt' is only available from C++17 onwards
In file included from /usr/include/llvm/Support/FormatProviders.h:21,
                 from /usr/include/llvm/Support/Chrono.h:13,
                 from /usr/include/llvm/Support/FileSystem.h:33,
                 from /usr/include/clang/Basic/FileManager.h:29,
                 from /usr/include/clang/Basic/SourceManager.h:39:
/usr/include/llvm/Support/NativeFormatting.h: At global scope:
/usr/include/llvm/Support/NativeFormatting.h:41:21: error: 'std::optional' has not been declared
   41 |                std::optional<size_t> Width = std::nullopt);
      |                     ^~~~~~~~
/usr/include/llvm/Support/NativeFormatting.h:41:29: error: expected ',' or '...' before '<' token
   41 |                std::optional<size_t> Width = std::nullopt);
      |                             ^
/usr/include/llvm/Support/NativeFormatting.h:43:24: error: 'std::optional' has not been declared
   43 |                   std::optional<size_t> Precision = std::nullopt);
      |                        ^~~~~~~~
/usr/include/llvm/Support/NativeFormatting.h:43:32: error: expected ',' or '...' before '<' token
   43 |                   std::optional<size_t> Precision = std::nullopt);
      |                                ^
/usr/include/llvm/Support/FormatProviders.h:32:17: error: 'is_one_of' was not declared in this scope; did you mean 'none_of'?
   32 |           bool, is_one_of<T, uint8_t, int16_t, uint16_t, int32_t, uint32_t,
      |                 ^~~~~~~~~
      |                 none_of
/usr/include/llvm/Support/FormatProviders.h:34:56: error: wrong number of template arguments (15, should be 2)
   34 |                           long long, unsigned long long>::value> {};
      |                                                        ^
/usr/include/c++/13/type_traits:62:12: note: provided for 'template<class _Tp, _Tp __v> struct std::integral_constant'
   62 |     struct integral_constant
      |            ^~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:34:57: error: expected '{' before '::' token
   34 |                           long long, unsigned long long>::value> {};
      |                                                         ^~
/usr/include/llvm/Support/FormatProviders.h:43:37: error: 'is_one_of' was not declared in this scope; did you mean 'none_of'?
   43 |                                     is_one_of<T, char *, const char *>::value> {
      |                                     ^~~~~~~~~
      |                                     none_of
/usr/include/llvm/Support/FormatProviders.h:43:70: error: wrong number of template arguments (4, should be 2)
   43 |                                     is_one_of<T, char *, const char *>::value> {
      |                                                                      ^
/usr/include/c++/13/type_traits:62:12: note: provided for 'template<class _Tp, _Tp __v> struct std::integral_constant'
   62 |     struct integral_constant
      |            ^~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:43:71: error: expected '{' before '::' token
   43 |                                     is_one_of<T, char *, const char *>::value> {
      |                                                                       ^~
/usr/include/llvm/Support/FormatProviders.h:62:15: error: 'optional' in namespace 'std' does not name a template type
   62 |   static std::optional<size_t> parseNumericPrecision(StringRef Str) {
      |               ^~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:62:10: note: 'std::optional' is only available from C++17 onwards
   62 |   static std::optional<size_t> parseNumericPrecision(StringRef Str) {
      |          ^~~
/usr/include/llvm/Support/FormatProviders.h: In instantiation of 'struct llvm::detail::use_pointer_formatter<std::__cxx11::basic_string<char> >':
/usr/include/llvm/Support/FormatProviders.h:219:33:   recursively required by substitution of 'template<class T> struct llvm::format_provider<T, typename std::enable_if<llvm::detail::use_pointer_formatter<T>::value, void>::type> [with T = std::__cxx11::basic_string<char>]'
/usr/include/llvm/Support/FormatProviders.h:219:33:   required from here
/usr/include/llvm/Support/FormatProviders.h:54:63: error: incomplete type 'llvm::detail::is_cstring<std::__cxx11::basic_string<char> >' used in nested name specifier
   54 |                                               !is_cstring<T>::value> {};
      |                                                               ^~~~~
/usr/include/llvm/Support/FormatProviders.h: In instantiation of 'struct llvm::detail::use_pointer_formatter<int>':
/usr/include/llvm/Support/FormatProviders.h:241:27:   recursively required by substitution of 'template<class T> struct llvm::format_provider<T, typename std::enable_if<llvm::detail::use_pointer_formatter<T>::value, void>::type> [with T = int]'
/usr/include/llvm/Support/FormatProviders.h:241:27:   required from here
/usr/include/llvm/Support/FormatProviders.h:54:63: error: incomplete type 'llvm::detail::is_cstring<int>' used in nested name specifier
/usr/include/llvm/Support/FormatProviders.h: In static member function 'static void llvm::format_provider<T, typename std::enable_if<llvm::detail::use_char_formatter<T>::value, void>::type>::format(const char&, llvm::raw_ostream&, llvm::StringRef)':
/usr/include/llvm/Support/FormatProviders.h:241:29: error: 'format' is not a member of 'llvm::format_provider<int>'
  241 |       format_provider<int>::format(X, Stream, Style);
      |                             ^~~~~~
/usr/include/llvm/Support/FormatProviders.h: In static member function 'static void llvm::format_provider<T, typename std::enable_if<llvm::detail::use_double_formatter<T>::value, void>::type>::format(const T&, llvm::raw_ostream&, llvm::StringRef)':
/usr/include/llvm/Support/FormatProviders.h:315:10: error: 'optional' is not a member of 'std'
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |          ^~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:315:10: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/FormatProviders.h:315:25: error: expected primary-expression before '>' token
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |                         ^
/usr/include/llvm/Support/FormatProviders.h:315:27: error: 'Precision' was not declared in this scope
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |                           ^~~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:315:39: error: there are no arguments to 'parseNumericPrecision' that depend on a template parameter, so a declaration of 'parseNumericPrecision' must be available [-fpermissive]
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |                                       ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/Error.h:18,
                 from /usr/include/llvm/Support/FileSystem.h:34:
/usr/include/llvm/ADT/StringExtras.h: In function 'std::string llvm::toString(const APInt&, unsigned int, bool, bool)':
/usr/include/llvm/ADT/StringExtras.h:322:29: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef)'
  322 |   return std::string(S.str());
      |                             ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/ADT/StringExtras.h:322:29: note:   candidate expects 3 arguments, 1 provided
  322 |   return std::string(S.str());
      |                             ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/llvm/Support/Error.h:26:
/usr/include/llvm/Support/Format.h: At global scope:
/usr/include/llvm/Support/Format.h:83:22: error: 'is_scalar_v' is not a member of 'std'; did you mean 'is_scalar'?
   83 |   static_assert(std::is_scalar_v<Arg>,
      |                      ^~~~~~~~~~~
      |                      is_scalar
/usr/include/llvm/Support/Format.h:83:37: error: expected primary-expression before '>' token
   83 |   static_assert(std::is_scalar_v<Arg>,
      |                                     ^
/usr/include/llvm/Support/Format.h:83:38: error: expected primary-expression before ',' token
   83 |   static_assert(std::is_scalar_v<Arg>,
      |                                      ^
/usr/include/llvm/Support/Format.h:219:8: error: 'optional' in namespace 'std' does not name a template type
  219 |   std::optional<uint64_t> FirstByteOffset;
      |        ^~~~~~~~
/usr/include/llvm/Support/Format.h:219:3: note: 'std::optional' is only available from C++17 onwards
  219 |   std::optional<uint64_t> FirstByteOffset;
      |   ^~~
/usr/include/llvm/Support/Format.h:228:57: error: 'std::optional' has not been declared
  228 |   FormattedBytes(ArrayRef<uint8_t> B, uint32_t IL, std::optional<uint64_t> O,
      |                                                         ^~~~~~~~
/usr/include/llvm/Support/Format.h:228:65: error: expected ',' or '...' before '<' token
  228 |   FormattedBytes(ArrayRef<uint8_t> B, uint32_t IL, std::optional<uint64_t> O,
      |                                                                 ^
/usr/include/llvm/Support/Format.h: In constructor 'llvm::FormattedBytes::FormattedBytes(llvm::ArrayRef<unsigned char>, uint32_t, int)':
/usr/include/llvm/Support/Format.h:230:19: error: class 'llvm::FormattedBytes' does not have any field named 'FirstByteOffset'
  230 |       : Bytes(B), FirstByteOffset(O), IndentLevel(IL), NumPerLine(NPL),
      |                   ^~~~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:230:35: error: 'O' was not declared in this scope
  230 |       : Bytes(B), FirstByteOffset(O), IndentLevel(IL), NumPerLine(NPL),
      |                                   ^
/usr/include/llvm/Support/Format.h:230:67: error: 'NPL' was not declared in this scope
  230 |       : Bytes(B), FirstByteOffset(O), IndentLevel(IL), NumPerLine(NPL),
      |                                                                   ^~~
/usr/include/llvm/Support/Format.h:231:23: error: 'BGS' was not declared in this scope
  231 |         ByteGroupSize(BGS), Upper(U), ASCII(A) {
      |                       ^~~
/usr/include/llvm/Support/Format.h:231:35: error: 'U' was not declared in this scope
  231 |         ByteGroupSize(BGS), Upper(U), ASCII(A) {
      |                                   ^
/usr/include/llvm/Support/Format.h:231:45: error: 'A' was not declared in this scope
  231 |         ByteGroupSize(BGS), Upper(U), ASCII(A) {
      |                                             ^
/usr/include/llvm/Support/Format.h: At global scope:
/usr/include/llvm/Support/Format.h:240:19: error: 'std::optional' has not been declared
  240 |              std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                   ^~~~~~~~
/usr/include/llvm/Support/Format.h:240:27: error: expected ',' or '...' before '<' token
  240 |              std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                           ^
/usr/include/llvm/Support/Format.h: In function 'llvm::FormattedBytes llvm::format_bytes(ArrayRef<unsigned char>, int)':
/usr/include/llvm/Support/Format.h:243:32: error: 'IndentLevel' was not declared in this scope
  243 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                ^~~~~~~~~~~
/usr/include/llvm/Support/Format.h:243:45: error: 'FirstByteOffset' was not declared in this scope
  243 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                             ^~~~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:243:62: error: 'NumPerLine' was not declared in this scope
  243 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                                              ^~~~~~~~~~
/usr/include/llvm/Support/Format.h:244:25: error: 'ByteGroupSize' was not declared in this scope
  244 |                         ByteGroupSize, Upper, false);
      |                         ^~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:244:40: error: 'Upper' was not declared in this scope; did you mean 'llvm::HexPrintStyle::Upper'?
  244 |                         ByteGroupSize, Upper, false);
      |                                        ^~~~~
      |                                        llvm::HexPrintStyle::Upper
/usr/include/llvm/Support/NativeFormatting.h:22:28: note: 'llvm::HexPrintStyle::Upper' declared here
   22 | enum class HexPrintStyle { Upper, Lower, PrefixUpper, PrefixLower };
      |                            ^~~~~
/usr/include/llvm/Support/Format.h: At global scope:
/usr/include/llvm/Support/Format.h:249:30: error: 'std::optional' has not been declared
  249 |                         std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                              ^~~~~~~~
/usr/include/llvm/Support/Format.h:249:38: error: expected ',' or '...' before '<' token
  249 |                         std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                                      ^
/usr/include/llvm/Support/Format.h: In function 'llvm::FormattedBytes llvm::format_bytes_with_ascii(ArrayRef<unsigned char>, int)':
/usr/include/llvm/Support/Format.h:252:32: error: 'IndentLevel' was not declared in this scope
  252 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                ^~~~~~~~~~~
/usr/include/llvm/Support/Format.h:252:45: error: 'FirstByteOffset' was not declared in this scope
  252 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                             ^~~~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:252:62: error: 'NumPerLine' was not declared in this scope
  252 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                                              ^~~~~~~~~~
/usr/include/llvm/Support/Format.h:253:25: error: 'ByteGroupSize' was not declared in this scope
  253 |                         ByteGroupSize, Upper, true);
      |                         ^~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:253:40: error: 'Upper' was not declared in this scope; did you mean 'llvm::HexPrintStyle::Upper'?
  253 |                         ByteGroupSize, Upper, true);
      |                                        ^~~~~
      |                                        llvm::HexPrintStyle::Upper
/usr/include/llvm/Support/NativeFormatting.h:22:28: note: 'llvm::HexPrintStyle::Upper' declared here
   22 | enum class HexPrintStyle { Upper, Lower, PrefixUpper, PrefixLower };
      |                            ^~~~~
/usr/include/llvm/Support/Error.h: At global scope:
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:59: error: template argument 1 is invalid
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                                           ^
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:60: error: template argument 1 is invalid
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                                            ^~
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:60: error: template argument 1 is invalid
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                                            ^~
/usr/include/llvm/Support/Error.h:512:17: error: 'std::enable_if_t' is not a type
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                 ^~~~~~~~~~~
/usr/include/llvm/Support/Error.h:512:28: error: expected ',' or '...' before '<' token
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                            ^
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:59: error: template argument 1 is invalid
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                           ^
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:60: error: template argument 1 is invalid
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                            ^~
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:60: error: template argument 1 is invalid
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                            ^~
/usr/include/llvm/Support/Error.h:530:17: error: 'std::enable_if_t' is not a type
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                 ^~~~~~~~~~~
/usr/include/llvm/Support/Error.h:530:28: error: expected ',' or '...' before '<' token
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                            ^
/usr/include/llvm/Support/Error.h:539:30: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                              ^~~~~~~~~~~~~~~~
      |                              is_convertible
/usr/include/llvm/Support/Error.h:539:55: error: template argument 1 is invalid
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                       ^
/usr/include/llvm/Support/Error.h:539:30: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                              ^~~~~~~~~~~~~~~~
      |                              is_convertible
/usr/include/llvm/Support/Error.h:539:56: error: template argument 1 is invalid
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                        ^~
/usr/include/llvm/Support/Error.h:539:30: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                              ^~~~~~~~~~~~~~~~
      |                              is_convertible
/usr/include/llvm/Support/Error.h:539:56: error: template argument 1 is invalid
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                        ^~
/usr/include/llvm/Support/Error.h:539:12: error: 'std::enable_if_t' is not a type
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |            ^~~~~~~~~~~
/usr/include/llvm/Support/Error.h:539:23: error: expected ',' or '...' before '<' token
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                       ^
/usr/include/llvm/Support/Error.h:537:12: error: 'template<class T> template<class OtherT> llvm::Expected<T>::Expected(llvm::Expected<OtherT>&&, int)' cannot be overloaded with 'template<class T> template<class OtherT> llvm::Expected<T>::Expected(llvm::Expected<OtherT>&&, int)'
  537 |   explicit Expected(
      |            ^~~~~~~~
/usr/include/llvm/Support/Error.h:529:3: note: previous declaration 'template<class T> template<class OtherT> llvm::Expected<T>::Expected(llvm::Expected<OtherT>&&, int)'
  529 |   Expected(Expected<OtherT> &&Other,
      |   ^~~~~~~~
/usr/include/llvm/Support/Error.h:1054:28: error: 'optional' in namespace 'std' does not name a template type
 1054 | template <typename T> std::optional<T> expectedToOptional(Expected<T> &&E) {
      |                            ^~~~~~~~
/usr/include/llvm/Support/Error.h:1054:23: note: 'std::optional' is only available from C++17 onwards
 1054 | template <typename T> std::optional<T> expectedToOptional(Expected<T> &&E) {
      |                       ^~~
/usr/include/llvm/Support/Error.h:1061:28: error: 'optional' in namespace 'std' does not name a template type
 1061 | template <typename T> std::optional<T> expectedToStdOptional(Expected<T> &&E) {
      |                            ^~~~~~~~
/usr/include/llvm/Support/Error.h:1061:23: note: 'std::optional' is only available from C++17 onwards
 1061 | template <typename T> std::optional<T> expectedToStdOptional(Expected<T> &&E) {
      |                       ^~~
/usr/include/llvm/Support/Error.h:1301:34: error: 'std::optional' has not been declared
 1301 |   FileError(const Twine &F, std::optional<size_t> LineNum,
      |                                  ^~~~~~~~
/usr/include/llvm/Support/Error.h:1301:42: error: expected ',' or '...' before '<' token
 1301 |   FileError(const Twine &F, std::optional<size_t> LineNum,
      |                                          ^
/usr/include/llvm/Support/Error.h:1309:43: error: 'std::optional' has not been declared
 1309 |   static Error build(const Twine &F, std::optional<size_t> Line, Error E) {
      |                                           ^~~~~~~~
/usr/include/llvm/Support/Error.h:1309:51: error: expected ',' or '...' before '<' token
 1309 |   static Error build(const Twine &F, std::optional<size_t> Line, Error E) {
      |                                                   ^
/usr/include/llvm/Support/Error.h:1321:8: error: 'optional' in namespace 'std' does not name a template type
 1321 |   std::optional<size_t> Line;
      |        ^~~~~~~~
/usr/include/llvm/Support/Error.h:1321:3: note: 'std::optional' is only available from C++17 onwards
 1321 |   std::optional<size_t> Line;
      |   ^~~
/usr/include/llvm/Support/Error.h: In member function 'virtual void llvm::FileError::log(llvm::raw_ostream&) const':
/usr/include/llvm/Support/Error.h:1279:9: error: 'Line' was not declared in this scope
 1279 |     if (Line)
      |         ^~~~
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/llvm/Support/Error.h:28:
/usr/include/llvm/Support/Error.h: In constructor 'llvm::FileError::FileError(const llvm::Twine&, int)':
/usr/include/llvm/Support/Error.h:1303:5: error: 'E' was not declared in this scope
 1303 |     assert(E && "Cannot create FileError from Error success value.");
      |     ^~~~~~
/usr/include/llvm/Support/Error.h:1306:5: error: 'Line' was not declared in this scope
 1306 |     Line = std::move(LineNum);
      |     ^~~~
/usr/include/llvm/Support/Error.h:1306:22: error: 'LineNum' was not declared in this scope
 1306 |     Line = std::move(LineNum);
      |                      ^~~~~~~
/usr/include/llvm/Support/Error.h: In static member function 'static llvm::Error llvm::FileError::build(const llvm::Twine&, int)':
/usr/include/llvm/Support/Error.h:1311:31: error: 'E' was not declared in this scope
 1311 |     handleAllErrors(std::move(E),
      |                               ^
/usr/include/llvm/Support/Error.h:1317:53: error: 'Line' was not declared in this scope
 1317 |         std::unique_ptr<FileError>(new FileError(F, Line, std::move(Payload))));
      |                                                     ^~~~
/usr/include/llvm/Support/Error.h: In function 'llvm::Error llvm::createFileError(const Twine&, Error)':
/usr/include/llvm/Support/Error.h:1328:35: error: 'optional' is not a member of 'std'
 1328 |   return FileError::build(F, std::optional<size_t>(), std::move(E));
      |                                   ^~~~~~~~
/usr/include/llvm/Support/Error.h:1328:35: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Error.h:1328:50: error: expected primary-expression before '>' token
 1328 |   return FileError::build(F, std::optional<size_t>(), std::move(E));
      |                                                  ^
/usr/include/llvm/Support/Error.h:1328:52: error: expected primary-expression before ')' token
 1328 |   return FileError::build(F, std::optional<size_t>(), std::move(E));
      |                                                    ^
/usr/include/llvm/Support/Error.h: In function 'llvm::Error llvm::createFileError(const Twine&, size_t, Error)':
/usr/include/llvm/Support/Error.h:1334:35: error: 'optional' is not a member of 'std'
 1334 |   return FileError::build(F, std::optional<size_t>(Line), std::move(E));
      |                                   ^~~~~~~~
/usr/include/llvm/Support/Error.h:1334:35: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Error.h:1334:50: error: expected primary-expression before '>' token
 1334 |   return FileError::build(F, std::optional<size_t>(Line), std::move(E));
      |                                                  ^
In file included from /usr/include/llvm/Support/SourceMgr.h:19,
                 from /usr/include/llvm/Support/VirtualFileSystem.h:26,
                 from /usr/include/clang/Basic/FileManager.h:30:
/usr/include/llvm/Support/MemoryBuffer.h: At global scope:
/usr/include/llvm/Support/MemoryBuffer.h:100:16: error: 'std::optional' has not been declared
  100 |           std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:100:24: error: expected ',' or '...' before '<' token
  100 |           std::optional<Align> Alignment = std::nullopt);
      |                        ^
/usr/include/llvm/Support/MemoryBuffer.h:114:25: error: 'std::optional' has not been declared
  114 |                    std::optional<Align> Alignment = std::nullopt);
      |                         ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:114:33: error: expected ',' or '...' before '<' token
  114 |                    std::optional<Align> Alignment = std::nullopt);
      |                                 ^
/usr/include/llvm/Support/MemoryBuffer.h:128:20: error: 'std::optional' has not been declared
  128 |               std::optional<Align> Alignment = std::nullopt);
      |                    ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:128:28: error: expected ',' or '...' before '<' token
  128 |               std::optional<Align> Alignment = std::nullopt);
      |                            ^
/usr/include/llvm/Support/MemoryBuffer.h:152:23: error: 'std::optional' has not been declared
  152 |                  std::optional<Align> Alignment = std::nullopt);
      |                       ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:152:31: error: expected ',' or '...' before '<' token
  152 |                  std::optional<Align> Alignment = std::nullopt);
      |                               ^
/usr/include/llvm/Support/MemoryBuffer.h:158:21: error: 'std::optional' has not been declared
  158 |                std::optional<Align> Alignment = std::nullopt);
      |                     ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:158:29: error: expected ',' or '...' before '<' token
  158 |                std::optional<Align> Alignment = std::nullopt);
      |                             ^
/usr/include/llvm/Support/MemoryBuffer.h:100:11: error: default argument missing for parameter 5 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getFile(const llvm::Twine&, bool, bool, bool, int)'
  100 |           std::optional<Align> Alignment = std::nullopt);
      |           ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:98:39: note: ...following parameter 2 which has a default argument
   98 |   getFile(const Twine &Filename, bool IsText = false,
      |                                  ~~~~~^~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:114:20: error: default argument missing for parameter 6 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getOpenFileSlice(llvm::sys::fs::file_t, const llvm::Twine&, uint64_t, int64_t, bool, int)'
  114 |                    std::optional<Align> Alignment = std::nullopt);
      |                    ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:113:41: note: ...following parameter 5 which has a default argument
  113 |                    int64_t Offset, bool IsVolatile = false,
      |                                    ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:128:15: error: default argument missing for parameter 6 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getOpenFile(llvm::sys::fs::file_t, const llvm::Twine&, uint64_t, bool, bool, int)'
  128 |               std::optional<Align> Alignment = std::nullopt);
      |               ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:127:20: note: ...following parameter 4 which has a default argument
  127 |               bool RequiresNullTerminator = true, bool IsVolatile = false,
      |               ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:152:18: error: default argument missing for parameter 4 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getFileOrSTDIN(const llvm::Twine&, bool, bool, int)'
  152 |                  std::optional<Align> Alignment = std::nullopt);
      |                  ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:150:46: note: ...following parameter 2 which has a default argument
  150 |   getFileOrSTDIN(const Twine &Filename, bool IsText = false,
      |                                         ~~~~~^~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:158:16: error: default argument missing for parameter 5 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getFileSlice(const llvm::Twine&, uint64_t, uint64_t, bool, int)'
  158 |                std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:157:21: note: ...following parameter 4 which has a default argument
  157 |                bool IsVolatile = false,
      |                ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:204:16: error: 'std::optional' has not been declared
  204 |           std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:204:24: error: expected ',' or '...' before '<' token
  204 |           std::optional<Align> Alignment = std::nullopt);
      |                        ^
/usr/include/llvm/Support/MemoryBuffer.h:210:21: error: 'std::optional' has not been declared
  210 |                std::optional<Align> Alignment = std::nullopt);
      |                     ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:210:29: error: expected ',' or '...' before '<' token
  210 |                std::optional<Align> Alignment = std::nullopt);
      |                             ^
/usr/include/llvm/Support/MemoryBuffer.h:220:30: error: 'std::optional' has not been declared
  220 |                         std::optional<Align> Alignment = std::nullopt);
      |                              ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:220:38: error: expected ',' or '...' before '<' token
  220 |                         std::optional<Align> Alignment = std::nullopt);
      |                                      ^
/usr/include/llvm/Support/MemoryBuffer.h:204:11: error: default argument missing for parameter 3 of 'static llvm::ErrorOr<std::unique_ptr<llvm::WritableMemoryBuffer> > llvm::WritableMemoryBuffer::getFile(const llvm::Twine&, bool, int)'
  204 |           std::optional<Align> Alignment = std::nullopt);
      |           ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:203:39: note: ...following parameter 2 which has a default argument
  203 |   getFile(const Twine &Filename, bool IsVolatile = false,
      |                                  ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:210:16: error: default argument missing for parameter 5 of 'static llvm::ErrorOr<std::unique_ptr<llvm::WritableMemoryBuffer> > llvm::WritableMemoryBuffer::getFileSlice(const llvm::Twine&, uint64_t, uint64_t, bool, int)'
  210 |                std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:209:21: note: ...following parameter 4 which has a default argument
  209 |                bool IsVolatile = false,
      |                ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:220:25: error: default argument missing for parameter 3 of 'static std::unique_ptr<llvm::WritableMemoryBuffer> llvm::WritableMemoryBuffer::getNewUninitMemBuffer(size_t, const llvm::Twine&, int)'
  220 |                         std::optional<Align> Alignment = std::nullopt);
      |                         ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:219:51: note: ...following parameter 2 which has a default argument
  219 |   getNewUninitMemBuffer(size_t Size, const Twine &BufferName = "",
      |                                      ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/SourceMgr.h:20:
/usr/include/llvm/Support/SMLoc.h:53:11: error: invalid use of '::'
   53 |   SMRange(std::nullopt_t) {}
      |           ^~~
/usr/include/llvm/Support/SMLoc.h:53:28: error: expected ';' at end of member declaration
   53 |   SMRange(std::nullopt_t) {}
      |                            ^
      |                             ;
/usr/include/llvm/Support/SourceMgr.h: In constructor 'llvm::SMDiagnostic::SMDiagnostic(llvm::StringRef, llvm::SourceMgr::DiagKind, llvm::StringRef)':
/usr/include/llvm/Support/SourceMgr.h:297:9: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |         ^~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/SourceMgr.h:297:9: note:   candidate expects 3 arguments, 1 provided
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |         ^~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/SourceMgr.h:297:66: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |                                                                  ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/SourceMgr.h:297:66: note:   candidate expects 3 arguments, 1 provided
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |                                                                  ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/VirtualFileSystem.h: At global scope:
/usr/include/llvm/Support/VirtualFileSystem.h:512:21: error: 'std::optional' has not been declared
  512 |                std::optional<uint32_t> User, std::optional<uint32_t> Group,
      |                     ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:512:29: error: expected ',' or '...' before '<' token
  512 |                std::optional<uint32_t> User, std::optional<uint32_t> Group,
      |                             ^
/usr/include/llvm/Support/VirtualFileSystem.h:536:21: error: 'std::optional' has not been declared
  536 |                std::optional<uint32_t> User = std::nullopt,
      |                     ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:536:29: error: expected ',' or '...' before '<' token
  536 |                std::optional<uint32_t> User = std::nullopt,
      |                             ^
/usr/include/llvm/Support/VirtualFileSystem.h:534:8: error: 'bool llvm::vfs::InMemoryFileSystem::addFile(const llvm::Twine&, time_t, std::unique_ptr<llvm::MemoryBuffer>, int)' cannot be overloaded with 'bool llvm::vfs::InMemoryFileSystem::addFile(const llvm::Twine&, time_t, std::unique_ptr<llvm::MemoryBuffer>, int)'
  534 |   bool addFile(const Twine &Path, time_t ModificationTime,
      |        ^~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:510:8: note: previous declaration 'bool llvm::vfs::InMemoryFileSystem::addFile(const llvm::Twine&, time_t, std::unique_ptr<llvm::MemoryBuffer>, int)'
  510 |   bool addFile(const Twine &Path, time_t ModificationTime,
      |        ^~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:567:24: error: 'std::optional' has not been declared
  567 |                   std::optional<uint32_t> User = std::nullopt,
      |                        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:567:32: error: expected ',' or '...' before '<' token
  567 |                   std::optional<uint32_t> User = std::nullopt,
      |                                ^
/usr/include/llvm/Support/VirtualFileSystem.h:579:26: error: 'std::optional' has not been declared
  579 |                     std::optional<uint32_t> User = std::nullopt,
      |                          ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:579:34: error: expected ',' or '...' before '<' token
  579 |                     std::optional<uint32_t> User = std::nullopt,
      |                                  ^
/usr/include/llvm/Support/VirtualFileSystem.h:882:10: error: 'optional' in namespace 'std' does not name a template type
  882 |     std::optional<std::string> ExternalRedirect;
      |          ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:882:5: note: 'std::optional' is only available from C++17 onwards
  882 |     std::optional<std::string> ExternalRedirect;
      |     ^~~
/usr/include/llvm/Support/VirtualFileSystem.h:891:10: error: 'optional' in namespace 'std' does not name a template type
  891 |     std::optional<StringRef> getExternalRedirect() const {
      |          ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:891:5: note: 'std::optional' is only available from C++17 onwards
  891 |     std::optional<StringRef> getExternalRedirect() const {
      |     ^~~
/usr/include/llvm/Support/VirtualFileSystem.h: In constructor 'llvm::vfs::RedirectingFileSystem::Entry::Entry(llvm::vfs::RedirectingFileSystem::EntryKind, llvm::StringRef)':
/usr/include/llvm/Support/VirtualFileSystem.h:776:51: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  776 |     Entry(EntryKind K, StringRef Name) : Kind(K), Name(Name) {}
      |                                                   ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/VirtualFileSystem.h:776:51: note:   candidate expects 3 arguments, 1 provided
  776 |     Entry(EntryKind K, StringRef Name) : Kind(K), Name(Name) {}
      |                                                   ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/VirtualFileSystem.h: In constructor 'llvm::vfs::RedirectingFileSystem::RemapEntry::RemapEntry(llvm::vfs::RedirectingFileSystem::EntryKind, llvm::StringRef, llvm::StringRef, llvm::vfs::RedirectingFileSystem::NameKind)':
/usr/include/llvm/Support/VirtualFileSystem.h:824:27: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  824 |         : Entry(K, Name), ExternalContentsPath(ExternalContentsPath),
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/VirtualFileSystem.h:824:27: note:   candidate expects 3 arguments, 1 provided
  824 |         : Entry(K, Name), ExternalContentsPath(ExternalContentsPath),
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/VirtualFileSystem.h: At global scope:
/usr/include/llvm/Support/VirtualFileSystem.h:1060:8: error: 'optional' in namespace 'std' does not name a template type
 1060 |   std::optional<bool> IsCaseSensitive;
      |        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:1060:3: note: 'std::optional' is only available from C++17 onwards
 1060 |   std::optional<bool> IsCaseSensitive;
      |   ^~~
/usr/include/llvm/Support/VirtualFileSystem.h:1061:8: error: 'optional' in namespace 'std' does not name a template type
 1061 |   std::optional<bool> IsOverlayRelative;
      |        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:1061:3: note: 'std::optional' is only available from C++17 onwards
 1061 |   std::optional<bool> IsOverlayRelative;
      |   ^~~
/usr/include/llvm/Support/VirtualFileSystem.h:1062:8: error: 'optional' in namespace 'std' does not name a template type
 1062 |   std::optional<bool> UseExternalNames;
      |        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:1062:3: note: 'std::optional' is only available from C++17 onwards
 1062 |   std::optional<bool> UseExternalNames;
      |   ^~~
/usr/include/llvm/Support/VirtualFileSystem.h: In member function 'void llvm::vfs::YAMLVFSWriter::setCaseSensitivity(bool)':
/usr/include/llvm/Support/VirtualFileSystem.h:1074:5: error: 'IsCaseSensitive' was not declared in this scope; did you mean 'CaseSensitive'?
 1074 |     IsCaseSensitive = CaseSensitive;
      |     ^~~~~~~~~~~~~~~
      |     CaseSensitive
/usr/include/llvm/Support/VirtualFileSystem.h: In member function 'void llvm::vfs::YAMLVFSWriter::setUseExternalNames(bool)':
/usr/include/llvm/Support/VirtualFileSystem.h:1077:48: error: 'UseExternalNames' was not declared in this scope; did you mean 'setUseExternalNames'?
 1077 |   void setUseExternalNames(bool UseExtNames) { UseExternalNames = UseExtNames; }
      |                                                ^~~~~~~~~~~~~~~~
      |                                                setUseExternalNames
/usr/include/llvm/Support/VirtualFileSystem.h: In member function 'void llvm::vfs::YAMLVFSWriter::setOverlayDir(llvm::StringRef)':
/usr/include/llvm/Support/VirtualFileSystem.h:1080:5: error: 'IsOverlayRelative' was not declared in this scope
 1080 |     IsOverlayRelative = true;
      |     ^~~~~~~~~~~~~~~~~
/usr/include/clang/Basic/FileManager.h: In member function 'clang::OptionalDirectoryEntryRef clang::FileManager::getOptionalDirectoryRef(llvm::StringRef, bool)':
/usr/include/clang/Basic/FileManager.h:171:18: error: 'expectedToOptional' is not a member of 'llvm'
  171 |     return llvm::expectedToOptional(getDirectoryRef(DirName, CacheFailure));
      |                  ^~~~~~~~~~~~~~~~~~
/usr/include/clang/Basic/FileManager.h: In member function 'clang::OptionalFileEntryRef clang::FileManager::getOptionalFileRef(llvm::StringRef, bool, bool)':
/usr/include/clang/Basic/FileManager.h:237:18: error: 'expectedToOptional' is not a member of 'llvm'
  237 |     return llvm::expectedToOptional(
      |                  ^~~~~~~~~~~~~~~~~~
/usr/include/clang/Basic/SourceManager.h: At global scope:
/usr/include/clang/Basic/SourceManager.h:215:8: error: 'optional' in namespace 'std' does not name a template type
  215 |   std::optional<llvm::MemoryBufferRef>
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:215:3: note: 'std::optional' is only available from C++17 onwards
  215 |   std::optional<llvm::MemoryBufferRef>
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:238:8: error: 'optional' in namespace 'std' does not name a template type
  238 |   std::optional<llvm::MemoryBufferRef> getBufferIfLoaded() const {
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:238:3: note: 'std::optional' is only available from C++17 onwards
  238 |   std::optional<llvm::MemoryBufferRef> getBufferIfLoaded() const {
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:246:8: error: 'optional' in namespace 'std' does not name a template type
  246 |   std::optional<StringRef> getBufferDataIfLoaded() const {
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:246:3: note: 'std::optional' is only available from C++17 onwards
  246 |   std::optional<StringRef> getBufferDataIfLoaded() const {
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:261:30: error: 'std::optional' has not been declared
  261 |   void setUnownedBuffer(std::optional<llvm::MemoryBufferRef> B) {
      |                              ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:261:38: error: expected ',' or '...' before '<' token
  261 |   void setUnownedBuffer(std::optional<llvm::MemoryBufferRef> B) {
      |                                      ^
/usr/include/clang/Basic/SourceManager.h: In constructor 'clang::SrcMgr::ContentCache::ContentCache()':
/usr/include/clang/Basic/SourceManager.h:183:24: error: 'nullopt' is not a member of 'std'
  183 |       : OrigEntry(std::nullopt), ContentsEntry(nullptr),
      |                        ^~~~~~~
/usr/include/clang/Basic/SourceManager.h:183:24: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/SourceManager.h: In member function 'void clang::SrcMgr::ContentCache::setUnownedBuffer(int)':
/usr/include/clang/Basic/SourceManager.h:263:9: error: 'B' was not declared in this scope
  263 |     if (B)
      |         ^
/usr/include/clang/Basic/SourceManager.h: At global scope:
/usr/include/clang/Basic/SourceManager.h:944:8: error: 'optional' in namespace 'std' does not name a template type
  944 |   std::optional<llvm::MemoryBufferRef>
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:944:3: note: 'std::optional' is only available from C++17 onwards
  944 |   std::optional<llvm::MemoryBufferRef>
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1026:8: error: 'optional' in namespace 'std' does not name a template type
 1026 |   std::optional<llvm::MemoryBufferRef>
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1026:3: note: 'std::optional' is only available from C++17 onwards
 1026 |   std::optional<llvm::MemoryBufferRef>
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1063:8: error: 'optional' in namespace 'std' does not name a template type
 1063 |   std::optional<StringRef> getNonBuiltinFilenameForID(FileID FID) const;
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1063:3: note: 'std::optional' is only available from C++17 onwards
 1063 |   std::optional<StringRef> getNonBuiltinFilenameForID(FileID FID) const;
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1082:8: error: 'optional' in namespace 'std' does not name a template type
 1082 |   std::optional<StringRef> getBufferDataOrNone(FileID FID) const;
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1082:3: note: 'std::optional' is only available from C++17 onwards
 1082 |   std::optional<StringRef> getBufferDataOrNone(FileID FID) const;
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1088:8: error: 'optional' in namespace 'std' does not name a template type
 1088 |   std::optional<StringRef> getBufferDataIfLoaded(FileID FID) const;
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1088:3: note: 'std::optional' is only available from C++17 onwards
 1088 |   std::optional<StringRef> getBufferDataIfLoaded(FileID FID) const;
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1699:39: error: 'std::optional' has not been declared
 1699 |                                  std::optional<unsigned> MaxNotes = 32) const;
      |                                       ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1699:47: error: expected ',' or '...' before '<' token
 1699 |                                  std::optional<unsigned> MaxNotes = 32) const;
      |                                               ^
/usr/include/clang/Basic/SourceManager.h: In member function 'llvm::MemoryBufferRef clang::SourceManager::getMemoryBufferForFileOrFake(const clang::FileEntry*)':
/usr/include/clang/Basic/SourceManager.h:951:18: error: 'getMemoryBufferForFileOrNone' was not declared in this scope; did you mean 'getMemoryBufferForFileOrFake'?
  951 |     if (auto B = getMemoryBufferForFileOrNone(File))
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  getMemoryBufferForFileOrFake
/usr/include/clang/Basic/SourceManager.h: In member function 'llvm::MemoryBufferRef clang::SourceManager::getBufferOrFake(clang::FileID, clang::SourceLocation) const':
/usr/include/clang/Basic/SourceManager.h:1040:18: error: 'getBufferOrNone' was not declared in this scope; did you mean 'getBufferOrFake'?
 1040 |     if (auto B = getBufferOrNone(FID, Loc))
      |                  ^~~~~~~~~~~~~~~
      |                  getBufferOrFake
/usr/include/clang/Basic/SourceManager.h: In member function 'clang::OptionalFileEntryRef clang::SourceManager::getFileEntryRefForID(clang::FileID) const':
/usr/include/clang/Basic/SourceManager.h:1056:17: error: 'nullopt' is not a member of 'std'
 1056 |     return std::nullopt;
      |                 ^~~~~~~
/usr/include/clang/Basic/SourceManager.h:1056:17: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/Support/MathExtras.h: In instantiation of 'constexpr size_t llvm::CTLog2() [with long unsigned int kValue = 8; size_t = long unsigned int]':
/usr/include/llvm/Support/Alignment.h:97:56:   required from 'static constexpr llvm::Align llvm::Align::Constant() [with long unsigned int kValue = 8]'
/usr/include/llvm/Support/Alignment.h:103:49:   required from 'static constexpr llvm::Align llvm::Align::Of() [with T = const clang::Expr*]'
/usr/include/llvm/Support/TrailingObjects.h:168:73:   required from 'static NextTy* llvm::trailing_objects_internal::TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys ...>::getTrailingObjectsImpl(BaseTy*, llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken<NextTy>) [with int Align = 8; BaseTy = clang::ConstantArrayType; TopTrailingObj = llvm::TrailingObjects<clang::ConstantArrayType, const clang::Expr*>; PrevTy = clang::ConstantArrayType; NextTy = const clang::Expr*; MoreTys = {}]'
/usr/include/llvm/Support/TrailingObjects.h:301:40:   required from 'T* llvm::TrailingObjects<BaseTy, TrailingTys>::getTrailingObjects() [with T = const clang::Expr*; BaseTy = clang::ConstantArrayType; TrailingTys = {const clang::Expr*}]'
/usr/include/clang/AST/Type.h:3077:39:   required from here
/usr/include/llvm/Support/MathExtras.h:399:28: error: non-constant condition for static assertion
  399 |   static_assert(kValue > 0 && llvm::isPowerOf2_64(kValue),
      |                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MathExtras.h:399:50:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(8)'
/usr/include/llvm/Support/MathExtras.h:399:28: error: 'constexpr' call flows off the end of the function
/usr/include/llvm/Support/MathExtras.h: In instantiation of 'constexpr size_t llvm::CTLog2() [with long unsigned int kValue = 4; size_t = long unsigned int]':
/usr/include/llvm/Support/MathExtras.h:401:32:   required from 'static const NextTy* llvm::trailing_objects_internal::TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys ...>::getTrailingObjectsImpl(const BaseTy*, llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken<NextTy>) [with int Align = 8; BaseTy = clang::ConstantArrayType; TopTrailingObj = llvm::TrailingObjects<clang::ConstantArrayType, const clang::Expr*>; PrevTy = clang::ConstantArrayType; NextTy = const clang::Expr*; MoreTys = {}]'
/usr/include/llvm/Support/TrailingObjects.h:289:40:   required from 'const T* llvm::TrailingObjects<BaseTy, TrailingTys>::getTrailingObjects() const [with T = const clang::Expr*; BaseTy = clang::ConstantArrayType; TrailingTys = {const clang::Expr*}]'
/usr/include/clang/AST/Type.h:3089:51:   required from here
/usr/include/llvm/Support/TrailingObjects.h:154:43:   in 'constexpr' expansion of 'llvm::Align::Of<const clang::Expr*>()'
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:399:28: error: non-constant condition for static assertion
/usr/include/llvm/Support/TrailingObjects.h:154:43:   in 'constexpr' expansion of 'llvm::Align::Of<const clang::Expr*>()'
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:399:50:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(4)'
/usr/include/llvm/Support/MathExtras.h:399:28: error: 'constexpr' call flows off the end of the function
/usr/include/llvm/Support/MathExtras.h: In instantiation of 'constexpr size_t llvm::CTLog2() [with long unsigned int kValue = 2; size_t = long unsigned int]':
/usr/include/llvm/Support/MathExtras.h:401:32:   required from 'static constexpr llvm::Align llvm::Align::Of() [with T = clang::FunctionType::FunctionTypeExtraBitfields]'
/usr/include/llvm/Support/TrailingObjects.h:154:43:   required from 'static const NextTy* llvm::trailing_objects_internal::TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys ...>::getTrailingObjectsImpl(const BaseTy*, llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken<NextTy>) [with int Align = 8; BaseTy = clang::FunctionProtoType; TopTrailingObj = llvm::TrailingObjects<clang::FunctionProtoType, clang::QualType, clang::SourceLocation, clang::FunctionType::FunctionTypeExtraBitfields, clang::FunctionType::ExceptionType, clang::Expr*, clang::FunctionDecl*, clang::FunctionType::ExtParameterInfo, clang::Qualifiers>; PrevTy = clang::SourceLocation; NextTy = clang::FunctionType::FunctionTypeExtraBitfields; MoreTys = {clang::FunctionType::ExceptionType, clang::Expr*, clang::FunctionDecl*, clang::FunctionType::ExtParameterInfo, clang::Qualifiers}]'
/usr/include/llvm/Support/TrailingObjects.h:289:40:   required from 'const T* llvm::TrailingObjects<BaseTy, TrailingTys>::getTrailingObjects() const [with T = clang::FunctionType::FunctionTypeExtraBitfields; BaseTy = clang::FunctionProtoType; TrailingTys = {clang::QualType, clang::SourceLocation, clang::FunctionType::FunctionTypeExtraBitfields, clang::FunctionType::ExceptionType, clang::Expr*, clang::FunctionDecl*, clang::FunctionType::ExtParameterInfo, clang::Qualifiers}]'
/usr/include/clang/AST/Type.h:4302:64:   required from here
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:401:32:   in 'constexpr' expansion of 'llvm::CTLog2<4>()'
/usr/include/llvm/Support/MathExtras.h:399:28: error: non-constant condition for static assertion
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:401:32:   in 'constexpr' expansion of 'llvm::CTLog2<4>()'
/usr/include/llvm/Support/MathExtras.h:399:50:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(2)'
/usr/include/llvm/Support/MathExtras.h:399:28: error: 'constexpr' call flows off the end of the function
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'llvm::mapped_iterator<ItTy, FuncTy, ReferenceTy>::mapped_iterator(ItTy, FuncTy) [with ItTy = const clang::ParmVarDecl* const*; FuncTy = clang::ObjCMethodDecl::GetTypeFn; ReferenceTy = clang::QualType]':
/usr/include/llvm/ADT/STLExtras.h:430:10:   required from 'llvm::mapped_iterator<ItTy, FuncTy> llvm::map_iterator(ItTy, FuncTy) [with ItTy = const clang::ParmVarDecl* const*; FuncTy = clang::ObjCMethodDecl::GetTypeFn; decltype (declval<FuncTy>()((* declval<ItTy>()))) = clang::QualType]'
/usr/include/clang/AST/DeclObjC.h:402:30:   required from here
/usr/include/llvm/ADT/STLExtras.h:414:61: error: cannot convert 'std::remove_reference<clang::ObjCMethodDecl::GetTypeFn&>::type' {aka 'clang::ObjCMethodDecl::GetTypeFn'} to 'int' in initialization
  414 |     : mapped_iterator::iterator_adaptor_base(std::move(U)), F(std::move(F)) {}
      |                                                             ^~~~~~~~~~~~~~~
make[2]: *** [clang_delta/CMakeFiles/clang_delta.dir/build.make:107: clang_delta/CMakeFiles/clang_delta.dir/CallExprToValue.cpp.o] Error 1
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[  4%] Building CXX object clang_delta/CMakeFiles/clang_delta.dir/AggregateToScalar.cpp.o
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clang_delta && /usr/bin/g++ -DHAVE_CONFIG_H -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu -I/builddir/build/BUILD/cvise-2.4.0/clang_delta -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -std=c++14 -fno-rtti -fno-strict-aliasing -Wall -Wextra -Wno-unused-parameter -fvisibility-inlines-hidden   -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MT clang_delta/CMakeFiles/clang_delta.dir/AggregateToScalar.cpp.o -MF CMakeFiles/clang_delta.dir/AggregateToScalar.cpp.o.d -o CMakeFiles/clang_delta.dir/AggregateToScalar.cpp.o -c /builddir/build/BUILD/cvise-2.4.0/clang_delta/AggregateToScalar.cpp
In file included from /usr/include/llvm/ADT/DenseMap.h:17,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/AggregateToScalar.h:16,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/AggregateToScalar.cpp:15:
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: error: 'variant' is not a member of 'std'
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                    ^~~~~~~
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: note: 'std::variant' is only available from C++17 onwards
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: error: 'variant' is not a member of 'std'
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: note: 'std::variant' is only available from C++17 onwards
/usr/include/llvm/ADT/DenseMapInfo.h:294:62: error: expected parameter pack before '...'
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                              ^~~
/usr/include/llvm/ADT/DenseMapInfo.h:294:62: error: template argument 1 is invalid
/usr/include/llvm/ADT/DenseMapInfo.h:294:65: error: expected unqualified-id before '>' token
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                                 ^~
In file included from /usr/include/llvm/Support/MathExtras.h:16,
                 from /usr/include/llvm/ADT/DenseMap.h:21:
/usr/include/llvm/ADT/bit.h:64:56: error: 'is_integral_v' is not a member of 'std'; did you mean 'is_integral'?
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_integral
/usr/include/llvm/ADT/bit.h:64:56: error: 'is_integral_v' is not a member of 'std'; did you mean 'is_integral'?
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_integral
/usr/include/llvm/ADT/bit.h:64:70: error: template argument 1 is invalid
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                                      ^
/usr/include/llvm/ADT/bit.h:64:73: error: expected unqualified-id before '>' token
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                                         ^
/usr/include/llvm/ADT/bit.h:109:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:109:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:109:70: error: template argument 1 is invalid
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                      ^
/usr/include/llvm/ADT/bit.h:109:73: error: expected unqualified-id before '>' token
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                         ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countr_zero(T)':
/usr/include/llvm/ADT/bit.h:180:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  180 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:180:37: error: expected primary-expression before '>' token
  180 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:180:38: error: expected primary-expression before ',' token
  180 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countl_zero(T)':
/usr/include/llvm/ADT/bit.h:246:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  246 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:246:37: error: expected primary-expression before '>' token
  246 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:246:38: error: expected primary-expression before ',' token
  246 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countl_one(T)':
/usr/include/llvm/ADT/bit.h:259:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  259 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:259:37: error: expected primary-expression before '>' token
  259 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:259:38: error: expected primary-expression before ',' token
  259 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countr_one(T)':
/usr/include/llvm/ADT/bit.h:272:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  272 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:272:37: error: expected primary-expression before '>' token
  272 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:272:38: error: expected primary-expression before ',' token
  272 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::bit_width(T)':
/usr/include/llvm/ADT/bit.h:282:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  282 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:282:37: error: expected primary-expression before '>' token
  282 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:282:38: error: expected primary-expression before ',' token
  282 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'T llvm::bit_floor(T)':
/usr/include/llvm/ADT/bit.h:292:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  292 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:292:37: error: expected primary-expression before '>' token
  292 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:292:38: error: expected primary-expression before ',' token
  292 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'T llvm::bit_ceil(T)':
/usr/include/llvm/ADT/bit.h:307:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  307 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:307:37: error: expected primary-expression before '>' token
  307 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:307:38: error: expected primary-expression before ',' token
  307 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: At global scope:
/usr/include/llvm/ADT/bit.h:348:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:348:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:348:70: error: template argument 1 is invalid
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                      ^
/usr/include/llvm/ADT/bit.h:348:73: error: expected unqualified-id before '>' token
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                         ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countTrailingZeros(T)':
/usr/include/llvm/Support/MathExtras.h:78:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
   78 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:78:37: error: expected primary-expression before '>' token
   78 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:78:38: error: expected primary-expression before ',' token
   78 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countLeadingZeros(T)':
/usr/include/llvm/Support/MathExtras.h:90:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
   90 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:90:37: error: expected primary-expression before '>' token
   90 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:90:38: error: expected primary-expression before ',' token
   90 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'constexpr bool llvm::isPowerOf2_32(uint32_t)':
/usr/include/llvm/Support/MathExtras.h:325:16: error: 'has_single_bit' is not a member of 'llvm'
  325 |   return llvm::has_single_bit(Value);
      |                ^~~~~~~~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'constexpr bool llvm::isPowerOf2_64(uint64_t)':
/usr/include/llvm/Support/MathExtras.h:330:16: error: 'has_single_bit' is not a member of 'llvm'
  330 |   return llvm::has_single_bit(Value);
      |                ^~~~~~~~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countLeadingOnes(T)':
/usr/include/llvm/Support/MathExtras.h:341:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  341 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:341:37: error: expected primary-expression before '>' token
  341 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:341:38: error: expected primary-expression before ',' token
  341 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countTrailingOnes(T)':
/usr/include/llvm/Support/MathExtras.h:354:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  354 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:354:37: error: expected primary-expression before '>' token
  354 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:354:38: error: expected primary-expression before ',' token
  354 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countPopulation(T)':
/usr/include/llvm/Support/MathExtras.h:364:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  364 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:364:37: error: expected primary-expression before '>' token
  364 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:364:38: error: expected primary-expression before ',' token
  364 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h:366:26: error: 'popcount' is not a member of 'llvm'
  366 |   return (unsigned)llvm::popcount(Value);
      |                          ^~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'bool llvm::isShiftedMask_32(uint32_t, unsigned int&, unsigned int&)':
/usr/include/llvm/Support/MathExtras.h:379:19: error: 'popcount' is not a member of 'llvm'
  379 |   MaskLen = llvm::popcount(Value);
      |                   ^~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'bool llvm::isShiftedMask_64(uint64_t, unsigned int&, unsigned int&)':
/usr/include/llvm/Support/MathExtras.h:392:19: error: 'popcount' is not a member of 'llvm'
  392 |   MaskLen = llvm::popcount(Value);
      |                   ^~~~~~~~
/usr/include/llvm/Support/MathExtras.h: At global scope:
/usr/include/llvm/Support/MathExtras.h:620:23: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                       ^~~~~~~~~~~~~
      |                       is_unsigned
/usr/include/llvm/Support/MathExtras.h:620:23: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                       ^~~~~~~~~~~~~
      |                       is_unsigned
/usr/include/llvm/Support/MathExtras.h:620:38: error: template argument 1 is invalid
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h:620:39: error: expected unqualified-id before ',' token
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                                       ^
In file included from /usr/include/clang/Basic/LLVM.h:21,
                 from /usr/include/clang/Rewrite/Core/Rewriter.h:17,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/Transformation.h:19,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/AggregateToScalar.h:18:
/usr/include/llvm/Support/Casting.h:266:32: error: 'optional' is not a member of 'std'
  266 | struct CastIsPossible<To, std::optional<From>> {
      |                                ^~~~~~~~
/usr/include/llvm/Support/Casting.h:266:32: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:266:32: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:266:32: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:266:41: error: template argument 2 is invalid
  266 | struct CastIsPossible<To, std::optional<From>> {
      |                                         ^~~~
/usr/include/llvm/Support/Casting.h:266:45: error: expected unqualified-id before '>' token
  266 | struct CastIsPossible<To, std::optional<From>> {
      |                                             ^~
/usr/include/llvm/Support/Casting.h:369:16: error: 'optional' is not a member of 'std'
  369 |           std::optional<To>, From,
      |                ^~~~~~~~
/usr/include/llvm/Support/Casting.h:369:16: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:369:16: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:369:16: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:369:27: error: wrong number of template arguments (1, should be 3)
  369 |           std::optional<To>, From,
      |                           ^
/usr/include/llvm/Support/Casting.h:310:8: note: provided for 'template<class To, class From, class Derived> struct llvm::DefaultDoCastIfPossible'
  310 | struct DefaultDoCastIfPossible {
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/Casting.h:370:65: error: expected '{' before '>' token
  370 |           detail::SelfType<Derived, OptionalValueCast<To, From>>> {
      |                                                                 ^
/usr/include/llvm/Support/Casting.h:540:26: error: 'optional' is not a member of 'std'
  540 | struct CastInfo<To, std::optional<From>> : public OptionalValueCast<To, From> {
      |                          ^~~~~~~~
/usr/include/llvm/Support/Casting.h:540:26: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:540:26: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:540:26: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:540:35: error: template argument 2 is invalid
  540 | struct CastInfo<To, std::optional<From>> : public OptionalValueCast<To, From> {
      |                                   ^~~~
/usr/include/llvm/Support/Casting.h:540:39: error: expected unqualified-id before '>' token
  540 | struct CastInfo<To, std::optional<From>> : public OptionalValueCast<To, From> {
      |                                       ^~
/usr/include/llvm/Support/Casting.h:595:10: error: 'is_pointer_v' is not a member of 'std'; did you mean 'is_pointer'?
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |          ^~~~~~~~~~~~
      |          is_pointer
/usr/include/llvm/Support/Casting.h:595:24: error: expected primary-expression before '>' token
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                        ^
/usr/include/llvm/Support/Casting.h:595:26: error: expected primary-expression before '||' token
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                          ^~
/usr/include/llvm/Support/Casting.h:595:34: error: 'is_constructible_v' is not a member of 'std'; did you mean 'is_constructible'?
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                                  ^~~~~~~~~~~~~~~~~~
      |                                  is_constructible
/usr/include/llvm/Support/Casting.h:595:54: error: expected primary-expression before ',' token
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                                                      ^
/usr/include/llvm/Support/Casting.h:610:50: error: 'optional' is not a member of 'std'
  610 | template <typename T> struct ValueIsPresent<std::optional<T>> {
      |                                                  ^~~~~~~~
/usr/include/llvm/Support/Casting.h:610:50: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:610:50: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:610:50: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:610:59: error: template argument 1 is invalid
  610 | template <typename T> struct ValueIsPresent<std::optional<T>> {
      |                                                           ^
/usr/include/llvm/Support/Casting.h:610:60: error: expected unqualified-id before '>' token
  610 | template <typename T> struct ValueIsPresent<std::optional<T>> {
      |                                                            ^~
In file included from /usr/include/clang/Basic/LLVM.h:24:
/usr/include/llvm/ADT/None.h:26:14: error: 'nullopt_t' in namespace 'std' does not name a type; did you mean 'nullptr_t'?
   26 | typedef std::nullopt_t NoneType;
      |              ^~~~~~~~~
      |              nullptr_t
/usr/include/llvm/ADT/None.h:28:23: error: 'nullopt_t' in namespace 'std' does not name a type; did you mean 'nullptr_t'?
   28 | inline constexpr std::nullopt_t None = std::nullopt;
      |                       ^~~~~~~~~
      |                       nullptr_t
In file included from /usr/include/clang/Basic/LLVM.h:27:
/usr/include/llvm/ADT/SmallVector.h: In static member function 'static void llvm::SmallVectorTemplateBase<T, <anonymous> >::uninitialized_move(It1, It1, It2)':
/usr/include/llvm/ADT/SmallVector.h:352:10: error: 'uninitialized_move' is not a member of 'std'; did you mean 'uninitialized_copy'?
  352 |     std::uninitialized_move(I, E, Dest);
      |          ^~~~~~~~~~~~~~~~~~
      |          uninitialized_copy
/usr/include/clang/Basic/LLVM.h: At global scope:
/usr/include/clang/Basic/LLVM.h:40:47: error: 'optional' in namespace 'std' does not name a template type
   40 |   template <typename T> using Optional = std::optional<T>;
      |                                               ^~~~~~~~
/usr/include/clang/Basic/LLVM.h:40:42: note: 'std::optional' is only available from C++17 onwards
   40 |   template <typename T> using Optional = std::optional<T>;
      |                                          ^~~
/usr/include/clang/Basic/LLVM.h:72:15: error: 'Optional' has not been declared in 'llvm'
   72 |   using llvm::Optional;
      |               ^~~~~~~~
In file included from /usr/include/llvm/ADT/STLFunctionalExtras.h:18,
                 from /usr/include/llvm/ADT/StringRef.h:13,
                 from /usr/include/clang/Basic/SourceLocation.h:18,
                 from /usr/include/clang/Rewrite/Core/Rewriter.h:18:
/usr/include/llvm/ADT/STLForwardCompat.h:46:35: error: 'optional' in namespace 'std' does not name a template type
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                                   ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:46:30: note: 'std::optional' is only available from C++17 onwards
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                              ^~~
/usr/include/llvm/ADT/STLForwardCompat.h:46:43: error: expected ',' or '...' before '<' token
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                                           ^
/usr/include/llvm/ADT/STLForwardCompat.h:47:13: error: 'optional' in namespace 'std' does not name a template type
   47 |     -> std::optional<decltype(F(*O))> {
      |             ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:47:8: note: 'std::optional' is only available from C++17 onwards
   47 |     -> std::optional<decltype(F(*O))> {
      |        ^~~
/usr/include/llvm/ADT/STLForwardCompat.h:47:21: error: expected initializer before '<' token
   47 |     -> std::optional<decltype(F(*O))> {
      |                     ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:29: error: 'optional' is not a member of 'std'
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                             ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:56:29: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/ADT/STLForwardCompat.h:56:39: error: expected primary-expression before '>' token
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                       ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:43: error: label 'O' referenced outside of any function
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                           ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:46: error: expected primary-expression before 'const'
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                              ^~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:56:63: error: expression list treated as compound expression in initializer [-fpermissive]
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                                               ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:64: error: expected ';' before '->' token
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                                                ^
      |                                                                ;
   57 |     -> std::optional<decltype(F(*std::move(O)))> {
      |     ~~                                                          
/usr/include/llvm/ADT/StringRef.h:104:54: error: expected ')' before 'Str'
  104 |     /*implicit*/ constexpr StringRef(std::string_view Str)
      |                                     ~                ^~~~
      |                                                      )
/usr/include/llvm/ADT/StringRef.h:248:14: error: expected type-specifier
  248 |     operator std::string_view() const {
      |              ^~~
/usr/include/llvm/ADT/StringRef.h: In member function 'size_t llvm::StringRef::find(char, size_t) const':
/usr/include/llvm/ADT/StringRef.h:296:19: error: 'string_view' is not a member of 'std'
  296 |       return std::string_view(*this).find(C, From);
      |                   ^~~~~~~~~~~
/usr/include/llvm/ADT/StringRef.h:296:19: note: 'std::string_view' is only available from C++17 onwards
In file included from /usr/include/clang/Basic/Diagnostic.h:17,
                 from /usr/include/clang/AST/NestedNameSpecifier.h:18,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/RewriteUtils.h:16,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/Transformation.h:20:
/usr/include/clang/Basic/DiagnosticIDs.h: At global scope:
/usr/include/clang/Basic/DiagnosticIDs.h:241:15: error: 'optional' in namespace 'std' does not name a template type
  241 |   static std::optional<diag::Group> getGroupForWarningOption(StringRef);
      |               ^~~~~~~~
/usr/include/clang/Basic/DiagnosticIDs.h:241:10: note: 'std::optional' is only available from C++17 onwards
  241 |   static std::optional<diag::Group> getGroupForWarningOption(StringRef);
      |          ^~~
/usr/include/clang/Basic/DiagnosticIDs.h:244:15: error: 'optional' in namespace 'std' does not name a template type
  244 |   static std::optional<diag::Group> getGroupForDiag(unsigned DiagID);
      |               ^~~~~~~~
/usr/include/clang/Basic/DiagnosticIDs.h:244:10: note: 'std::optional' is only available from C++17 onwards
  244 |   static std::optional<diag::Group> getGroupForDiag(unsigned DiagID);
      |          ^~~
In file included from /usr/include/llvm/ADT/Hashing.h:49,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/clang/Basic/Diagnostic.h:21:
/usr/include/llvm/Support/SwapByteOrder.h: In function 'uint16_t llvm::ByteSwap_16(uint16_t)':
/usr/include/llvm/Support/SwapByteOrder.h:51:60: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_16'?
   51 | inline uint16_t ByteSwap_16(uint16_t value) { return llvm::byteswap(value); }
      |                                                            ^~~~~~~~
      |                                                            ByteSwap_16
/usr/include/llvm/Support/SwapByteOrder.h: In function 'uint32_t llvm::ByteSwap_32(uint32_t)':
/usr/include/llvm/Support/SwapByteOrder.h:54:60: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_32'?
   54 | inline uint32_t ByteSwap_32(uint32_t value) { return llvm::byteswap(value); }
      |                                                            ^~~~~~~~
      |                                                            ByteSwap_32
/usr/include/llvm/Support/SwapByteOrder.h: In function 'uint64_t llvm::ByteSwap_64(uint64_t)':
/usr/include/llvm/Support/SwapByteOrder.h:57:60: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   57 | inline uint64_t ByteSwap_64(uint64_t value) { return llvm::byteswap(value); }
      |                                                            ^~~~~~~~
      |                                                            ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'unsigned char llvm::sys::getSwappedBytes(unsigned char)':
/usr/include/llvm/Support/SwapByteOrder.h:69:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   69 | inline unsigned char      getSwappedBytes(unsigned char      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'signed char llvm::sys::getSwappedBytes(signed char)':
/usr/include/llvm/Support/SwapByteOrder.h:70:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   70 | inline   signed char      getSwappedBytes( signed  char      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'char llvm::sys::getSwappedBytes(char)':
/usr/include/llvm/Support/SwapByteOrder.h:71:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   71 | inline          char      getSwappedBytes(         char      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'short unsigned int llvm::sys::getSwappedBytes(short unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:73:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   73 | inline unsigned short     getSwappedBytes(unsigned short     C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'short int llvm::sys::getSwappedBytes(short int)':
/usr/include/llvm/Support/SwapByteOrder.h:74:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   74 | inline   signed short     getSwappedBytes(  signed short     C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'unsigned int llvm::sys::getSwappedBytes(unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:76:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   76 | inline unsigned int       getSwappedBytes(unsigned int       C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'int llvm::sys::getSwappedBytes(int)':
/usr/include/llvm/Support/SwapByteOrder.h:77:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   77 | inline   signed int       getSwappedBytes(  signed int       C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long unsigned int llvm::sys::getSwappedBytes(long unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:79:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   79 | inline unsigned long      getSwappedBytes(unsigned long      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long int llvm::sys::getSwappedBytes(long int)':
/usr/include/llvm/Support/SwapByteOrder.h:80:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   80 | inline   signed long      getSwappedBytes(  signed long      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long long unsigned int llvm::sys::getSwappedBytes(long long unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:82:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   82 | inline unsigned long long getSwappedBytes(unsigned long long C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long long int llvm::sys::getSwappedBytes(long long int)':
/usr/include/llvm/Support/SwapByteOrder.h:83:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   83 | inline   signed long long getSwappedBytes(  signed long long C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'float llvm::sys::getSwappedBytes(float)':
/usr/include/llvm/Support/SwapByteOrder.h:91:17: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   91 |   out.i = llvm::byteswap(in.i);
      |                 ^~~~~~~~
      |                 ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'double llvm::sys::getSwappedBytes(double)':
/usr/include/llvm/Support/SwapByteOrder.h:101:17: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
  101 |   out.i = llvm::byteswap(in.i);
      |                 ^~~~~~~~
      |                 ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'std::enable_if_t<std::is_enum<_Tp>::value, T> llvm::sys::getSwappedBytes(T)':
/usr/include/llvm/Support/SwapByteOrder.h:108:13: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
  108 |       llvm::byteswap(static_cast<std::underlying_type_t<T>>(C)));
      |             ^~~~~~~~
      |             ByteSwap_64
/usr/include/llvm/ADT/Hashing.h: At global scope:
/usr/include/llvm/ADT/Hashing.h:127:55: error: 'optional' in namespace 'std' does not name a template type
  127 | template <typename T> hash_code hash_value(const std::optional<T> &arg);
      |                                                       ^~~~~~~~
/usr/include/llvm/ADT/Hashing.h:127:50: note: 'std::optional' is only available from C++17 onwards
  127 | template <typename T> hash_code hash_value(const std::optional<T> &arg);
      |                                                  ^~~
/usr/include/llvm/ADT/Hashing.h:127:63: error: expected ',' or '...' before '<' token
  127 | template <typename T> hash_code hash_value(const std::optional<T> &arg);
      |                                                               ^
/usr/include/llvm/ADT/Hashing.h: In function 'llvm::hash_code llvm::hash_value(const std::tuple<_Args1 ...>&)':
/usr/include/llvm/ADT/Hashing.h:658:15: error: 'apply' is not a member of 'std'
  658 |   return std::apply([](const auto &...xs) { return hash_combine(xs...); }, arg);
      |               ^~~~~
/usr/include/llvm/ADT/Hashing.h:658:15: note: 'std::apply' is only available from C++17 onwards
/usr/include/llvm/ADT/Hashing.h: At global scope:
/usr/include/llvm/ADT/Hashing.h:668:55: error: 'optional' in namespace 'std' does not name a template type
  668 | template <typename T> hash_code hash_value(const std::optional<T> &arg) {
      |                                                       ^~~~~~~~
/usr/include/llvm/ADT/Hashing.h:668:50: note: 'std::optional' is only available from C++17 onwards
  668 | template <typename T> hash_code hash_value(const std::optional<T> &arg) {
      |                                                  ^~~
/usr/include/llvm/ADT/Hashing.h:668:63: error: expected ',' or '...' before '<' token
  668 | template <typename T> hash_code hash_value(const std::optional<T> &arg) {
      |                                                               ^
/usr/include/llvm/ADT/Hashing.h: In function 'llvm::hash_code llvm::hash_value(int)':
/usr/include/llvm/ADT/Hashing.h:669:10: error: 'arg' was not declared in this scope
  669 |   return arg ? hash_combine(true, *arg) : hash_value(false);
      |          ^~~
In file included from /usr/include/llvm/ADT/ArrayRef.h:14:
/usr/include/llvm/ADT/STLExtras.h: At global scope:
/usr/include/llvm/ADT/STLExtras.h:81:22: error: 'void_t' is not a member of 'std'
   81 | struct detector<std::void_t<Op<Args...>>, Op, Args...> {
      |                      ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:81:22: note: 'std::void_t' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h:81:22: error: 'void_t' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:81:22: note: 'std::void_t' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h:81:39: error: wrong number of template arguments (1, should be at least 2)
   81 | struct detector<std::void_t<Op<Args...>>, Op, Args...> {
      |                                       ^~
/usr/include/llvm/ADT/STLExtras.h:77:70: note: provided for 'template<class, template<class ...> class Op, class ... Args> struct llvm::detail::detector'
   77 | template <class, template <class...> class Op, class... Args> struct detector {
      |                                                                      ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:144:24: error: 'disjunction' in namespace 'std' does not name a template type
  144 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                        ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:144:19: note: 'std::disjunction' is only available from C++17 onwards
  144 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                   ^~~
/usr/include/llvm/ADT/STLExtras.h:149:26: error: 'conjunction' in namespace 'std' does not name a template type
  149 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                          ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:149:21: note: 'std::conjunction' is only available from C++17 onwards
  149 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                     ^~~
/usr/include/llvm/ADT/STLExtras.h:155:37: error: 'is_one_of' was not declared in this scope
  155 |     : std::integral_constant<bool, !is_one_of<T, Us...>::value &&
      |                                     ^~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:155:55: error: template argument 2 is invalid
  155 |     : std::integral_constant<bool, !is_one_of<T, Us...>::value &&
      |                                                       ^
/usr/include/llvm/ADT/STLExtras.h:155:56: error: expected '{' before '::' token
  155 |     : std::integral_constant<bool, !is_one_of<T, Us...>::value &&
      |                                                        ^~
/usr/include/llvm/ADT/STLExtras.h:224:23: error: 'is_function_v' is not a member of 'std'; did you mean 'is_function'?
  224 |           bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
      |                       ^~~~~~~~~~~~~
      |                       is_function
/usr/include/llvm/ADT/STLExtras.h:224:77: error: expected primary-expression before '>>' token
  224 |           bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
      |                                                                             ^~
/usr/include/llvm/ADT/STLExtras.h:224:77: error: expected '>' before '>>' token
/usr/include/llvm/ADT/STLExtras.h:230:8: error: 'optional' in namespace 'std' does not name a template type
  230 |   std::optional<value_type> Obj;
      |        ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:230:3: note: 'std::optional' is only available from C++17 onwards
  230 |   std::optional<value_type> Obj;
      |   ^~~
/usr/include/llvm/ADT/STLExtras.h:232:23: error: 'is_pointer_v' is not a member of 'std'; did you mean 'is_pointer'?
  232 |   static_assert(!std::is_pointer_v<value_type>,
      |                       ^~~~~~~~~~~~
      |                       is_pointer
/usr/include/llvm/ADT/STLExtras.h:232:46: error: expected primary-expression before '>' token
  232 |   static_assert(!std::is_pointer_v<value_type>,
      |                                              ^
/usr/include/llvm/ADT/STLExtras.h:232:47: error: expected primary-expression before ',' token
  232 |   static_assert(!std::is_pointer_v<value_type>,
      |                                               ^
/usr/include/llvm/ADT/STLExtras.h:257:35: error: 'is_invocable_v' is not a member of 'std'
  257 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                   ^~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:257:35: error: 'is_invocable_v' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:257:58: error: pack expansion argument for non-pack parameter '_Tp' of alias template 'template<bool _Cond, class _Tp> using std::enable_if_t = typename std::enable_if::type'
  257 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                          ^
In file included from /usr/include/c++/13/bits/char_traits.h:50,
                 from /usr/include/c++/13/string:42,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/AggregateToScalar.h:14:
/usr/include/c++/13/type_traits:2609:24: note: declared here
 2609 |   template<bool _Cond, typename _Tp = void>
      |                        ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:257:66: error: expected unqualified-id before '=' token
  257 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                                  ^
/usr/include/llvm/ADT/STLExtras.h:263:35: error: 'is_invocable_v' is not a member of 'std'
  263 |             std::enable_if_t<std::is_invocable_v<T const, Pn...>, int> = 0>
      |                                   ^~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:263:35: error: 'is_invocable_v' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:263:64: error: template argument 1 is invalid
  263 |             std::enable_if_t<std::is_invocable_v<T const, Pn...>, int> = 0>
      |                                                                ^
/usr/include/llvm/ADT/STLExtras.h:263:72: error: expected unqualified-id before '=' token
  263 |             std::enable_if_t<std::is_invocable_v<T const, Pn...>, int> = 0>
      |                                                                        ^
/usr/include/llvm/ADT/STLExtras.h: In constructor 'llvm::callable_detail::Callable<T, <anonymous> >::Callable(const T&)':
/usr/include/llvm/ADT/STLExtras.h:237:26: error: class 'llvm::callable_detail::Callable<T, <anonymous> >' does not have any field named 'Obj'
  237 |   Callable(T const &O) : Obj(std::in_place, O) {}
      |                          ^~~
/usr/include/llvm/ADT/STLExtras.h:237:35: error: 'in_place' is not a member of 'std'
  237 |   Callable(T const &O) : Obj(std::in_place, O) {}
      |                                   ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:237:35: note: 'std::in_place' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >& llvm::callable_detail::Callable<T, <anonymous> >::operator=(const llvm::callable_detail::Callable<T, <anonymous> >&)':
/usr/include/llvm/ADT/STLExtras.h:243:5: error: 'Obj' was not declared in this scope
  243 |     Obj = std::nullopt;
      |     ^~~
/usr/include/llvm/ADT/STLExtras.h:243:16: error: 'nullopt' is not a member of 'std'
  243 |     Obj = std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:243:16: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >& llvm::callable_detail::Callable<T, <anonymous> >::operator=(llvm::callable_detail::Callable<T, <anonymous> >&&)':
/usr/include/llvm/ADT/STLExtras.h:250:5: error: 'Obj' was not declared in this scope
  250 |     Obj = std::nullopt;
      |     ^~~
/usr/include/llvm/ADT/STLExtras.h:250:16: error: 'nullopt' is not a member of 'std'
  250 |     Obj = std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:250:16: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'bool llvm::callable_detail::Callable<T, <anonymous> >::valid() const':
/usr/include/llvm/ADT/STLExtras.h:268:31: error: 'Obj' was not declared in this scope
  268 |   bool valid() const { return Obj != std::nullopt; }
      |                               ^~~
/usr/include/llvm/ADT/STLExtras.h:268:43: error: 'nullopt' is not a member of 'std'
  268 |   bool valid() const { return Obj != std::nullopt; }
      |                                           ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:268:43: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'bool llvm::callable_detail::Callable<T, <anonymous> >::reset()':
/usr/include/llvm/ADT/STLExtras.h:269:25: error: 'Obj' was not declared in this scope
  269 |   bool reset() { return Obj = std::nullopt; }
      |                         ^~~
/usr/include/llvm/ADT/STLExtras.h:269:36: error: 'nullopt' is not a member of 'std'
  269 |   bool reset() { return Obj = std::nullopt; }
      |                                    ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:269:36: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >::operator reference()':
/usr/include/llvm/ADT/STLExtras.h:271:34: error: 'Obj' was not declared in this scope
  271 |   operator reference() { return *Obj; }
      |                                  ^~~
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >::operator const_reference() const':
/usr/include/llvm/ADT/STLExtras.h:272:46: error: 'Obj' was not declared in this scope
  272 |   operator const_reference() const { return *Obj; }
      |                                              ^~~
/usr/include/llvm/ADT/STLExtras.h: At global scope:
/usr/include/llvm/ADT/STLExtras.h:278:38: error: 'is_pointer_v' is not a member of 'std'; did you mean 'is_pointer'?
  278 |   static constexpr bool IsPtr = std::is_pointer_v<remove_cvref_t<T>>;
      |                                      ^~~~~~~~~~~~
      |                                      is_pointer
/usr/include/llvm/ADT/STLExtras.h:278:67: error: expected primary-expression before '>' token
  278 |   static constexpr bool IsPtr = std::is_pointer_v<remove_cvref_t<T>>;
      |                                                                   ^~
/usr/include/llvm/ADT/STLExtras.h:278:69: error: expected primary-expression before ';' token
  278 |   static constexpr bool IsPtr = std::is_pointer_v<remove_cvref_t<T>>;
      |                                                                     ^
/usr/include/llvm/ADT/STLExtras.h:284:3: error: 'StorageT' does not name a type
  284 |   StorageT Func = nullptr;
      |   ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:307:13: error: 'is_same_v' is not a member of 'std'; did you mean 'is_same'?
  307 |       !std::is_same_v<remove_cvref_t<FnPtrOrRef>, Callable>, int
      |             ^~~~~~~~~
      |             is_same
/usr/include/llvm/ADT/STLExtras.h:307:59: error: template argument 1 is invalid
  307 |       !std::is_same_v<remove_cvref_t<FnPtrOrRef>, Callable>, int
      |                                                           ^
/usr/include/llvm/ADT/STLExtras.h:308:7: error: expected unqualified-id before '=' token
  308 |     > = 0
      |       ^
/usr/include/llvm/ADT/STLExtras.h:313:35: error: 'is_invocable_v' is not a member of 'std'
  313 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                   ^~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:313:35: error: 'is_invocable_v' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:313:58: error: pack expansion argument for non-pack parameter '_Tp' of alias template 'template<bool _Cond, class _Tp> using std::enable_if_t = typename std::enable_if::type'
  313 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                          ^
/usr/include/c++/13/type_traits:2609:24: note: declared here
 2609 |   template<bool _Cond, typename _Tp = void>
      |                        ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:313:66: error: expected unqualified-id before '=' token
  313 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                                  ^
/usr/include/llvm/ADT/STLExtras.h: In member function 'bool llvm::callable_detail::Callable<T, true>::valid() const':
/usr/include/llvm/ADT/STLExtras.h:318:31: error: 'Func' was not declared in this scope
  318 |   bool valid() const { return Func != nullptr; }
      |                               ^~~~
/usr/include/llvm/ADT/STLExtras.h: In member function 'void llvm::callable_detail::Callable<T, true>::reset()':
/usr/include/llvm/ADT/STLExtras.h:319:18: error: 'Func' was not declared in this scope
  319 |   void reset() { Func = nullptr; }
      |                  ^~~~
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, true>::operator const T&() const':
/usr/include/llvm/ADT/STLExtras.h:324:14: error: 'Func' was not declared in this scope
  324 |       return Func;
      |              ^~~~
/usr/include/llvm/ADT/STLExtras.h:326:26: error: 'is_reference_v' is not a member of 'std'; did you mean 'is_reference'?
  326 |       static_assert(std::is_reference_v<T>,
      |                          ^~~~~~~~~~~~~~
      |                          is_reference
/usr/include/llvm/ADT/STLExtras.h:326:42: error: expected primary-expression before '>' token
  326 |       static_assert(std::is_reference_v<T>,
      |                                          ^
/usr/include/llvm/ADT/STLExtras.h:326:43: error: expected primary-expression before ',' token
  326 |       static_assert(std::is_reference_v<T>,
      |                                           ^
/usr/include/llvm/ADT/STLExtras.h:329:15: error: 'Func' was not declared in this scope
  329 |       return *Func;
      |               ^~~~
/usr/include/llvm/ADT/STLExtras.h: At global scope:
/usr/include/llvm/ADT/STLExtras.h:423:35: error: template argument 2 is invalid
  423 |   callable_detail::Callable<FuncTy> F{};
      |                                   ^
/usr/include/llvm/ADT/STLExtras.h:927:60: error: 'optional' in namespace 'std' does not name a template type
  927 | auto deref_or_none(const Iter &I, const Iter &End) -> std::optional<
      |                                                            ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:927:55: note: 'std::optional' is only available from C++17 onwards
  927 | auto deref_or_none(const Iter &I, const Iter &End) -> std::optional<
      |                                                       ^~~
/usr/include/llvm/ADT/STLExtras.h:927:68: error: expected initializer before '<' token
  927 | auto deref_or_none(const Iter &I, const Iter &End) -> std::optional<
      |                                                                    ^
/usr/include/llvm/ADT/STLExtras.h:935:21: error: 'optional' in namespace 'std' does not name a template type
  935 |   using type = std::optional<std::remove_const_t<
      |                     ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:935:16: note: 'std::optional' is only available from C++17 onwards
  935 |   using type = std::optional<std::remove_const_t<
      |                ^~~
/usr/include/llvm/ADT/STLExtras.h:1511:24: error: 'disjunction' in namespace 'std' does not name a template type
 1511 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                        ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1511:19: note: 'std::disjunction' is only available from C++17 onwards
 1511 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                   ^~~
/usr/include/llvm/ADT/STLExtras.h:1516:26: error: 'conjunction' in namespace 'std' does not name a template type
 1516 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                          ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1516:21: note: 'std::conjunction' is only available from C++17 onwards
 1516 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                     ^~~
/usr/include/llvm/ADT/STLExtras.h:1675:38: error: 'conjunction' in namespace 'std' does not name a template type
 1675 | using sort_trivially_copyable = std::conjunction<
      |                                      ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1675:33: note: 'std::conjunction' is only available from C++17 onwards
 1675 | using sort_trivially_copyable = std::conjunction<
      |                                 ^~~
/usr/include/llvm/ADT/STLExtras.h: In function 'void llvm::sort(IteratorTy, IteratorTy)':
/usr/include/llvm/ADT/STLExtras.h:1684:25: error: 'sort_trivially_copyable' is not a member of 'llvm::detail'
 1684 |   if constexpr (detail::sort_trivially_copyable<IteratorTy>::value) {
      |                         ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1684:59: error: expected primary-expression before '>' token
 1684 |   if constexpr (detail::sort_trivially_copyable<IteratorTy>::value) {
      |                                                           ^
/usr/include/llvm/ADT/STLExtras.h:1684:62: error: '::value' has not been declared
 1684 |   if constexpr (detail::sort_trivially_copyable<IteratorTy>::value) {
      |                                                              ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In function 'bool llvm::detail::all_of_zip_predicate_first(Predicate&&, Args&& ...)':
/usr/include/llvm/ADT/STLExtras.h:2276:15: error: 'apply' is not a member of 'std'
 2276 |     if (!std::apply([&](auto &&...args) { return P(args...); }, *it))
      |               ^~~~~
/usr/include/llvm/ADT/STLExtras.h:2276:15: note: 'std::apply' is only available from C++17 onwards
/usr/include/llvm/ADT/ArrayRef.h: At global scope:
/usr/include/llvm/ADT/ArrayRef.h:70:27: error: invalid use of '::'
   70 |     /*implicit*/ ArrayRef(std::nullopt_t) {}
      |                           ^~~
/usr/include/llvm/ADT/ArrayRef.h:70:44: error: expected ';' at end of member declaration
   70 |     /*implicit*/ ArrayRef(std::nullopt_t) {}
      |                                            ^
      |                                             ;
/usr/include/llvm/ADT/ArrayRef.h:323:34: error: invalid use of '::'
  323 |     /*implicit*/ MutableArrayRef(std::nullopt_t) : ArrayRef<T>() {}
      |                                  ^~~
/usr/include/llvm/ADT/ArrayRef.h:472:65: error: expected constructor, destructor, or type conversion before ';' token
  472 |   template <typename T> ArrayRef(const T &OneElt) -> ArrayRef<T>;
      |                                                                 ^
/usr/include/llvm/ADT/ArrayRef.h:475:78: error: expected constructor, destructor, or type conversion before ';' token
  475 |   template <typename T> ArrayRef(const T *data, size_t length) -> ArrayRef<T>;
      |                                                                              ^
/usr/include/llvm/ADT/ArrayRef.h:478:77: error: expected constructor, destructor, or type conversion before ';' token
  478 |   template <typename T> ArrayRef(const T *data, const T *end) -> ArrayRef<T>;
      |                                                                             ^
/usr/include/llvm/ADT/ArrayRef.h:481:79: error: expected constructor, destructor, or type conversion before ';' token
  481 |   template <typename T> ArrayRef(const SmallVectorImpl<T> &Vec) -> ArrayRef<T>;
      |                                                                               ^
/usr/include/llvm/ADT/ArrayRef.h:485:56: error: expected constructor, destructor, or type conversion before ';' token
  485 |   ArrayRef(const SmallVector<T, N> &Vec) -> ArrayRef<T>;
      |                                                        ^
/usr/include/llvm/ADT/ArrayRef.h:488:75: error: expected constructor, destructor, or type conversion before ';' token
  488 |   template <typename T> ArrayRef(const std::vector<T> &Vec) -> ArrayRef<T>;
      |                                                                           ^
/usr/include/llvm/ADT/ArrayRef.h:492:55: error: expected constructor, destructor, or type conversion before ';' token
  492 |   ArrayRef(const std::array<T, N> &Vec) -> ArrayRef<T>;
      |                                                       ^
/usr/include/llvm/ADT/ArrayRef.h:495:72: error: expected constructor, destructor, or type conversion before ';' token
  495 |   template <typename T> ArrayRef(const ArrayRef<T> &Vec) -> ArrayRef<T>;
      |                                                                        ^
/usr/include/llvm/ADT/ArrayRef.h:498:66: error: expected constructor, destructor, or type conversion before ';' token
  498 |   template <typename T> ArrayRef(ArrayRef<T> &Vec) -> ArrayRef<T>;
      |                                                                  ^
/usr/include/llvm/ADT/ArrayRef.h:501:77: error: expected constructor, destructor, or type conversion before ';' token
  501 |   template <typename T, size_t N> ArrayRef(const T (&Arr)[N]) -> ArrayRef<T>;
      |                                                                             ^
/usr/include/llvm/ADT/ArrayRef.h:580:70: error: expected constructor, destructor, or type conversion before ';' token
  580 |   template <class T> MutableArrayRef(T &OneElt) -> MutableArrayRef<T>;
      |                                                                      ^
/usr/include/llvm/ADT/ArrayRef.h:585:64: error: expected constructor, destructor, or type conversion before ';' token
  585 |   MutableArrayRef(T *data, size_t length) -> MutableArrayRef<T>;
      |                                                                ^
/usr/include/llvm/ADT/ArrayRef.h:589:65: error: expected constructor, destructor, or type conversion before ';' token
  589 |   MutableArrayRef(SmallVectorImpl<T> &Vec) -> MutableArrayRef<T>;
      |                                                                 ^
/usr/include/llvm/ADT/ArrayRef.h:592:64: error: expected constructor, destructor, or type conversion before ';' token
  592 |   MutableArrayRef(SmallVector<T, N> &Vec) -> MutableArrayRef<T>;
      |                                                                ^
/usr/include/llvm/ADT/ArrayRef.h:595:80: error: expected constructor, destructor, or type conversion before ';' token
  595 |   template <class T> MutableArrayRef(std::vector<T> &Vec) -> MutableArrayRef<T>;
      |                                                                                ^
/usr/include/llvm/ADT/ArrayRef.h:599:63: error: expected constructor, destructor, or type conversion before ';' token
  599 |   MutableArrayRef(std::array<T, N> &Vec) -> MutableArrayRef<T>;
      |                                                               ^
/usr/include/llvm/ADT/ArrayRef.h:603:53: error: expected constructor, destructor, or type conversion before ';' token
  603 |   MutableArrayRef(T (&Arr)[N]) -> MutableArrayRef<T>;
      |                                                     ^
/usr/include/clang/Basic/Diagnostic.h: In static member function 'static clang::FixItHint clang::FixItHint::CreateInsertion(clang::SourceLocation, llvm::StringRef, bool)':
/usr/include/clang/Basic/Diagnostic.h:103:41: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  103 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
In file included from /usr/include/c++/13/string:54:
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:103:41: note:   candidate expects 3 arguments, 1 provided
  103 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: In static member function 'static clang::FixItHint clang::FixItHint::CreateReplacement(clang::CharSourceRange, llvm::StringRef)':
/usr/include/clang/Basic/Diagnostic.h:138:41: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  138 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:138:41: note:   candidate expects 3 arguments, 1 provided
  138 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: In member function 'void clang::StreamingDiagnostic::AddString(llvm::StringRef) const':
/usr/include/clang/Basic/Diagnostic.h:1202:78: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
 1202 |     DiagStorage->DiagArgumentsStr[DiagStorage->NumDiagArgs++] = std::string(V);
      |                                                                              ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:1202:78: note:   candidate expects 3 arguments, 1 provided
 1202 |     DiagStorage->DiagArgumentsStr[DiagStorage->NumDiagArgs++] = std::string(V);
      |                                                                              ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: In member function 'void clang::DiagnosticBuilder::addFlagValue(llvm::StringRef) const':
/usr/include/clang/Basic/Diagnostic.h:1369:76: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
 1369 |   void addFlagValue(StringRef V) const { DiagObj->FlagValue = std::string(V); }
      |                                                                            ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:1369:76: note:   candidate expects 3 arguments, 1 provided
 1369 |   void addFlagValue(StringRef V) const { DiagObj->FlagValue = std::string(V); }
      |                                                                            ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: At global scope:
/usr/include/clang/Basic/Diagnostic.h:1514:23: error: 'optional' in namespace 'std' does not name a template type
 1514 |            const std::optional<SourceRange> &Opt) {
      |                       ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1514:18: note: 'std::optional' is only available from C++17 onwards
 1514 |            const std::optional<SourceRange> &Opt) {
      |                  ^~~
/usr/include/clang/Basic/Diagnostic.h:1514:31: error: expected ',' or '...' before '<' token
 1514 |            const std::optional<SourceRange> &Opt) {
      |                               ^
/usr/include/clang/Basic/Diagnostic.h:1513:1: error: redefinition of 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)'
 1513 | operator<<(const StreamingDiagnostic &DB,
      | ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1401:35: note: 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)' previously defined here
 1401 | inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
      |                                   ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h: In function 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)':
/usr/include/clang/Basic/Diagnostic.h:1515:7: error: 'Opt' was not declared in this scope
 1515 |   if (Opt)
      |       ^~~
/usr/include/clang/Basic/Diagnostic.h: At global scope:
/usr/include/clang/Basic/Diagnostic.h:1522:23: error: 'optional' in namespace 'std' does not name a template type
 1522 |            const std::optional<CharSourceRange> &Opt) {
      |                       ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1522:18: note: 'std::optional' is only available from C++17 onwards
 1522 |            const std::optional<CharSourceRange> &Opt) {
      |                  ^~~
/usr/include/clang/Basic/Diagnostic.h:1522:31: error: expected ',' or '...' before '<' token
 1522 |            const std::optional<CharSourceRange> &Opt) {
      |                               ^
/usr/include/clang/Basic/Diagnostic.h:1521:1: error: redefinition of 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)'
 1521 | operator<<(const StreamingDiagnostic &DB,
      | ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1401:35: note: 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)' previously defined here
 1401 | inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
      |                                   ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h: In function 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)':
/usr/include/clang/Basic/Diagnostic.h:1523:7: error: 'Opt' was not declared in this scope
 1523 |   if (Opt)
      |       ^~~
/usr/include/clang/Basic/Diagnostic.h: At global scope:
/usr/include/clang/Basic/Diagnostic.h:1529:54: error: 'optional' in namespace 'std' does not name a template type
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      |                                                      ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1529:49: note: 'std::optional' is only available from C++17 onwards
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      |                                                 ^~~
/usr/include/clang/Basic/Diagnostic.h:1529:62: error: expected ',' or '...' before '<' token
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      |                                                              ^
/usr/include/clang/Basic/Diagnostic.h:1529:1: error: redefinition of 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)'
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      | ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1401:35: note: 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)' previously defined here
 1401 | inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
      |                                   ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h: In function 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)':
/usr/include/clang/Basic/Diagnostic.h:1530:7: error: 'Opt' was not declared in this scope
 1530 |   if (Opt)
      |       ^~~
/usr/include/clang/Basic/Diagnostic.h: In member function 'llvm::ArrayRef<clang::CharSourceRange> clang::StoredDiagnostic::getRanges() const':
/usr/include/clang/Basic/Diagnostic.h:1724:70: error: missing template arguments before '(' token
 1724 |   ArrayRef<CharSourceRange> getRanges() const { return llvm::ArrayRef(Ranges); }
      |                                                                      ^
/usr/include/clang/Basic/Diagnostic.h: In member function 'llvm::ArrayRef<clang::FixItHint> clang::StoredDiagnostic::getFixIts() const':
/usr/include/clang/Basic/Diagnostic.h:1732:64: error: missing template arguments before '(' token
 1732 |   ArrayRef<FixItHint> getFixIts() const { return llvm::ArrayRef(FixIts); }
      |                                                                ^
In file included from /usr/include/llvm/Support/Allocator.h:21,
                 from /usr/include/llvm/ADT/FoldingSet.h:22,
                 from /usr/include/clang/AST/NestedNameSpecifier.h:21:
/usr/include/llvm/Support/Alignment.h: At global scope:
/usr/include/llvm/Support/Alignment.h:117:41: error: expected template-name before '<' token
  117 | struct MaybeAlign : public std::optional<Align> {
      |                                         ^
/usr/include/llvm/Support/Alignment.h:117:41: error: expected '{' before '<' token
/usr/include/llvm/Support/Alignment.h:117:41: error: expected unqualified-id before '<' token
/usr/include/llvm/Support/Alignment.h:217:35: error: 'A' has incomplete type
  217 | inline unsigned encode(MaybeAlign A) { return A ? A->ShiftValue + 1 : 0; }
      |                        ~~~~~~~~~~~^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:220:50: error: return type 'struct llvm::MaybeAlign' is incomplete
  220 | inline MaybeAlign decodeMaybeAlign(unsigned Value) {
      |                                                  ^
/usr/include/llvm/Support/Alignment.h:220:19: error: ambiguating new declaration of 'void llvm::decodeMaybeAlign(unsigned int)'
  220 | inline MaybeAlign decodeMaybeAlign(unsigned Value) {
      |                   ^~~~~~~~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:53:28: note: old declaration 'llvm::MaybeAlign llvm::decodeMaybeAlign(unsigned int)'
   53 |   friend struct MaybeAlign decodeMaybeAlign(unsigned Value);
      |                            ^~~~~~~~~~~~~~~~
/usr/include/llvm/Support/Alignment.h: In function 'void llvm::decodeMaybeAlign(unsigned int)':
/usr/include/llvm/Support/Alignment.h:222:23: error: invalid use of incomplete type 'struct llvm::MaybeAlign'
  222 |     return MaybeAlign();
      |                       ^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:224:7: error: 'uint8_t llvm::Align::ShiftValue' is private within this context
  224 |   Out.ShiftValue = Value - 1;
      |       ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:41:11: note: declared private here
   41 |   uint8_t ShiftValue = 0; /// The log2 of the required alignment.
      |           ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h: In function 'unsigned int llvm::encode(Align)':
/usr/include/llvm/Support/Alignment.h:230:61: error: invalid use of incomplete type 'struct llvm::MaybeAlign'
  230 | inline unsigned encode(Align A) { return encode(MaybeAlign(A)); }
      |                                                             ^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h: At global scope:
/usr/include/llvm/Support/Alignment.h:295:35: error: 'Lhs' has incomplete type
  295 | inline bool operator==(MaybeAlign Lhs, Align Rhs) { return Lhs && *Lhs == Rhs; }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:296:35: error: 'Lhs' has incomplete type
  296 | inline bool operator!=(MaybeAlign Lhs, Align Rhs) { return !(Lhs == Rhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:297:46: error: 'Rhs' has incomplete type
  297 | inline bool operator==(Align Lhs, MaybeAlign Rhs) { return Rhs == Lhs; }
      |                                   ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:298:46: error: 'Rhs' has incomplete type
  298 | inline bool operator!=(Align Lhs, MaybeAlign Rhs) { return !(Rhs == Lhs); }
      |                                   ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:300:35: error: 'Lhs' has incomplete type
  300 | inline bool operator==(MaybeAlign Lhs, MaybeAlign Rhs) {
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:300:51: error: 'Rhs' has incomplete type
  300 | inline bool operator==(MaybeAlign Lhs, MaybeAlign Rhs) {
      |                                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:303:35: error: 'Lhs' has incomplete type
  303 | inline bool operator!=(MaybeAlign Lhs, MaybeAlign Rhs) { return !(Lhs == Rhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:303:51: error: 'Rhs' has incomplete type
  303 | inline bool operator!=(MaybeAlign Lhs, MaybeAlign Rhs) { return !(Lhs == Rhs); }
      |                                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:305:45: error: 'std::nullopt_t' has not been declared
  305 | inline bool operator==(MaybeAlign Lhs, std::nullopt_t) { return !bool(Lhs); }
      |                                             ^~~~~~~~~
/usr/include/llvm/Support/Alignment.h:305:35: error: 'Lhs' has incomplete type
  305 | inline bool operator==(MaybeAlign Lhs, std::nullopt_t) { return !bool(Lhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:306:45: error: 'std::nullopt_t' has not been declared
  306 | inline bool operator!=(MaybeAlign Lhs, std::nullopt_t) { return bool(Lhs); }
      |                                             ^~~~~~~~~
/usr/include/llvm/Support/Alignment.h:306:35: error: 'Lhs' has incomplete type
  306 | inline bool operator!=(MaybeAlign Lhs, std::nullopt_t) { return bool(Lhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:307:13: error: declaration of 'operator==' as non-function
  307 | inline bool operator==(std::nullopt_t, MaybeAlign Rhs) { return !bool(Rhs); }
      |             ^~~~~~~~
/usr/include/llvm/Support/Alignment.h:307:29: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  307 | inline bool operator==(std::nullopt_t, MaybeAlign Rhs) { return !bool(Rhs); }
      |                             ^~~~~~~~~
      |                             nullptr_t
/usr/include/llvm/Support/Alignment.h:307:51: error: expected primary-expression before 'Rhs'
  307 | inline bool operator==(std::nullopt_t, MaybeAlign Rhs) { return !bool(Rhs); }
      |                                                   ^~~
/usr/include/llvm/Support/Alignment.h:308:13: error: declaration of 'operator!=' as non-function
  308 | inline bool operator!=(std::nullopt_t, MaybeAlign Rhs) { return bool(Rhs); }
      |             ^~~~~~~~
/usr/include/llvm/Support/Alignment.h:308:29: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  308 | inline bool operator!=(std::nullopt_t, MaybeAlign Rhs) { return bool(Rhs); }
      |                             ^~~~~~~~~
      |                             nullptr_t
/usr/include/llvm/Support/Alignment.h:308:51: error: expected primary-expression before 'Rhs'
  308 | inline bool operator!=(std::nullopt_t, MaybeAlign Rhs) { return bool(Rhs); }
      |                                                   ^~~
/usr/include/llvm/Support/Alignment.h: In function 'std::string llvm::DebugStr(const MaybeAlign&)':
/usr/include/llvm/Support/Alignment.h:317:7: error: could not convert 'MA' from 'const llvm::MaybeAlign' to 'bool'
  317 |   if (MA)
      |       ^~
      |       |
      |       const llvm::MaybeAlign
/usr/include/llvm/Support/Alignment.h:318:29: error: base operand of '->' has non-pointer type 'const llvm::MaybeAlign'
  318 |     return std::to_string(MA->value());
      |                             ^~
/usr/include/llvm/Support/Allocator.h: At global scope:
/usr/include/llvm/Support/Allocator.h:232:8: error: 'optional' in namespace 'std' does not name a template type
  232 |   std::optional<int64_t> identifyObject(const void *Ptr) {
      |        ^~~~~~~~
/usr/include/llvm/Support/Allocator.h:232:3: note: 'std::optional' is only available from C++17 onwards
  232 |   std::optional<int64_t> identifyObject(const void *Ptr) {
      |   ^~~
/usr/include/llvm/Support/Allocator.h: In member function 'int64_t llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold, GrowthDelay>::identifyKnownObject(const void*)':
/usr/include/llvm/Support/Allocator.h:259:10: error: 'optional' is not a member of 'std'
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |          ^~~~~~~~
/usr/include/llvm/Support/Allocator.h:259:10: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Allocator.h:259:26: error: expected primary-expression before '>' token
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |                          ^
/usr/include/llvm/Support/Allocator.h:259:28: error: 'Out' was not declared in this scope
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |                            ^~~
/usr/include/llvm/Support/Allocator.h:259:34: error: there are no arguments to 'identifyObject' that depend on a template parameter, so a declaration of 'identifyObject' must be available [-fpermissive]
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |                                  ^~~~~~~~~~~~~~
/usr/include/llvm/Support/Allocator.h:259:34: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from /usr/include/llvm/ADT/APSInt.h:18,
                 from /usr/include/llvm/ADT/APFixedPoint.h:19,
                 from /usr/include/clang/AST/APValue.h:17,
                 from /usr/include/clang/AST/Expr.h:16,
                 from /usr/include/clang/AST/ASTConcept.h:17,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:16,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/AggregateToScalar.cpp:19:
/usr/include/llvm/ADT/APInt.h: At global scope:
/usr/include/llvm/ADT/APInt.h:1506:8: error: 'optional' in namespace 'std' does not name a template type
 1506 |   std::optional<uint64_t> tryZExtValue() const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:1506:3: note: 'std::optional' is only available from C++17 onwards
 1506 |   std::optional<uint64_t> tryZExtValue() const {
      |   ^~~
/usr/include/llvm/ADT/APInt.h:1528:8: error: 'optional' in namespace 'std' does not name a template type
 1528 |   std::optional<int64_t> trySExtValue() const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:1528:3: note: 'std::optional' is only available from C++17 onwards
 1528 |   std::optional<int64_t> trySExtValue() const {
      |   ^~~
/usr/include/llvm/ADT/APInt.h: In member function 'unsigned int llvm::APInt::countPopulation() const':
/usr/include/llvm/ADT/APInt.h:1621:20: error: 'popcount' is not a member of 'llvm'; did you mean 'count'?
 1621 |       return llvm::popcount(U.VAL);
      |                    ^~~~~~~~
      |                    count
/usr/include/llvm/ADT/APInt.h: At global scope:
/usr/include/llvm/ADT/APInt.h:2279:6: error: 'optional' in namespace 'std' does not name a template type
 2279 | std::optional<APInt> SolveQuadraticEquationWrap(APInt A, APInt B, APInt C,
      |      ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:2279:1: note: 'std::optional' is only available from C++17 onwards
 2279 | std::optional<APInt> SolveQuadraticEquationWrap(APInt A, APInt B, APInt C,
      | ^~~
/usr/include/llvm/ADT/APInt.h:2284:6: error: 'optional' in namespace 'std' does not name a template type
 2284 | std::optional<unsigned> GetMostSignificantDifferentBit(const APInt &A,
      |      ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:2284:1: note: 'std::optional' is only available from C++17 onwards
 2284 | std::optional<unsigned> GetMostSignificantDifferentBit(const APInt &A,
      | ^~~
/usr/include/llvm/ADT/APSInt.h:103:8: error: 'optional' in namespace 'std' does not name a template type
  103 |   std::optional<int64_t> tryExtValue() const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APSInt.h:103:3: note: 'std::optional' is only available from C++17 onwards
  103 |   std::optional<int64_t> tryExtValue() const {
      |   ^~~
In file included from /usr/include/llvm/ADT/APFixedPoint.h:23:
/usr/include/llvm/Support/raw_ostream.h:252:38: error: 'string_view' in namespace 'std' does not name a type
  252 |   raw_ostream &operator<<(const std::string_view &Str) {
      |                                      ^~~~~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:252:33: note: 'std::string_view' is only available from C++17 onwards
  252 |   raw_ostream &operator<<(const std::string_view &Str) {
      |                                 ^~~
/usr/include/llvm/Support/raw_ostream.h: In member function 'llvm::raw_ostream& llvm::raw_ostream::operator<<(const int&)':
/usr/include/llvm/Support/raw_ostream.h:253:22: error: request for member 'data' in 'Str', which is of non-class type 'const int'
  253 |     return write(Str.data(), Str.length());
      |                      ^~~~
/usr/include/llvm/Support/raw_ostream.h:253:34: error: request for member 'length' in 'Str', which is of non-class type 'const int'
  253 |     return write(Str.data(), Str.length());
      |                                  ^~~~~~
/usr/include/llvm/Support/raw_ostream.h: At global scope:
/usr/include/llvm/Support/raw_ostream.h:459:16: error: 'optional' in namespace 'std' does not name a template type
  459 |   mutable std::optional<bool> HasColors;
      |                ^~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:459:11: note: 'std::optional' is only available from C++17 onwards
  459 |   mutable std::optional<bool> HasColors;
      |           ^~~
/usr/include/llvm/Support/raw_ostream.h:757:47: error: 'std::nullopt_t' has not been declared
  757 | raw_ostream &operator<<(raw_ostream &OS, std::nullopt_t);
      |                                               ^~~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:761:53: error: 'optional' in namespace 'std' does not name a template type
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                     ^~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:761:48: note: 'std::optional' is only available from C++17 onwards
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                ^~~
/usr/include/llvm/Support/raw_ostream.h:761:61: error: expected ',' or '...' before '<' token
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                             ^
/usr/include/llvm/Support/raw_ostream.h: In function 'llvm::raw_ostream& llvm::operator<<(raw_ostream&, int)':
/usr/include/llvm/Support/raw_ostream.h:762:7: error: 'O' was not declared in this scope; did you mean 'OS'?
  762 |   if (O)
      |       ^
      |       OS
/usr/include/llvm/Support/raw_ostream.h:765:16: error: 'nullopt' is not a member of 'std'
  765 |     OS << std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/Support/raw_ostream.h:765:16: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/APFixedPoint.h: In member function 'std::string llvm::APFixedPoint::toString() const':
/usr/include/llvm/ADT/APFixedPoint.h:238:31: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef)'
  238 |     return std::string(S.str());
      |                               ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/ADT/APFixedPoint.h:238:31: note:   candidate expects 3 arguments, 1 provided
  238 |     return std::string(S.str());
      |                               ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/llvm/ADT/FloatingPointMode.h:18,
                 from /usr/include/llvm/ADT/APFloat.h:20,
                 from /usr/include/clang/AST/APValue.h:18:
/usr/include/llvm/ADT/StringSwitch.h: At global scope:
/usr/include/llvm/ADT/StringSwitch.h:50:8: error: 'optional' in namespace 'std' does not name a template type
   50 |   std::optional<T> Result;
      |        ^~~~~~~~
/usr/include/llvm/ADT/StringSwitch.h:50:3: note: 'std::optional' is only available from C++17 onwards
   50 |   std::optional<T> Result;
      |   ^~~
/usr/include/llvm/ADT/StringSwitch.h: In constructor 'llvm::StringSwitch<T, R>::StringSwitch(llvm::StringRef)':
/usr/include/llvm/ADT/StringSwitch.h:54:13: error: class 'llvm::StringSwitch<T, R>' does not have any field named 'Result'
   54 |   : Str(S), Result() { }
      |             ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In constructor 'llvm::StringSwitch<T, R>::StringSwitch(llvm::StringSwitch<T, R>&&)':
/usr/include/llvm/ADT/StringSwitch.h:64:23: error: class 'llvm::StringSwitch<T, R>' does not have any field named 'Result'
   64 |     : Str(other.Str), Result(std::move(other.Result)) { }
      |                       ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Case(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:70:10: error: 'Result' was not declared in this scope
   70 |     if (!Result && Str == S) {
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::EndsWith(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:77:10: error: 'Result' was not declared in this scope
   77 |     if (!Result && Str.endswith(S)) {
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::StartsWith(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:84:10: error: 'Result' was not declared in this scope
   84 |     if (!Result && Str.startswith(S)) {
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::CaseLower(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:143:10: error: 'Result' was not declared in this scope
  143 |     if (!Result && Str.equals_insensitive(S))
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::EndsWithLower(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:150:10: error: 'Result' was not declared in this scope
  150 |     if (!Result && Str.endswith_insensitive(S))
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::StartsWithLower(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:157:10: error: 'Result' was not declared in this scope
  157 |     if (!Result && Str.startswith_insensitive(S))
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'R llvm::StringSwitch<T, R>::Default(T)':
/usr/include/llvm/ADT/StringSwitch.h:183:9: error: 'Result' was not declared in this scope
  183 |     if (Result)
      |         ^~~~~~
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/llvm/ADT/StringSwitch.h:18:
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>::operator R()':
/usr/include/llvm/ADT/StringSwitch.h:189:5: error: 'Result' was not declared in this scope
  189 |     assert(Result && "Fell off the end of a string-switch");
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>'
/usr/include/clang/AST/APValue.h:190:11:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
In file included from /usr/include/clang/AST/APValue.h:22:
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>':
/usr/include/clang/AST/APValue.h:190:11:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/Type.h:22,
                 from /usr/include/clang/AST/DeclarationName.h:16,
                 from /usr/include/clang/AST/DeclBase.h:18,
                 from /usr/include/clang/AST/Decl.h:19,
                 from /usr/include/clang/AST/Expr.h:19:
/usr/include/clang/AST/TemplateName.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::OverloadedTemplateStorage::decls() const':
/usr/include/clang/AST/TemplateName.h:130:26: error: missing template arguments before '(' token
  130 |     return llvm::ArrayRef(begin(), end());
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>'
/usr/include/clang/AST/TemplateName.h:211:15:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>':
/usr/include/clang/AST/TemplateName.h:211:15:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/TemplateName.h: At global scope:
/usr/include/clang/AST/TemplateName.h:383:41: error: 'std::optional' has not been declared
  383 |                                    std::optional<unsigned> PackIndex)
      |                                         ^~~~~~~~
/usr/include/clang/AST/TemplateName.h:383:49: error: expected ',' or '...' before '<' token
  383 |                                    std::optional<unsigned> PackIndex)
      |                                                 ^
/usr/include/clang/AST/TemplateName.h:399:8: error: 'optional' in namespace 'std' does not name a template type
  399 |   std::optional<unsigned> getPackIndex() const {
      |        ^~~~~~~~
/usr/include/clang/AST/TemplateName.h:399:3: note: 'std::optional' is only available from C++17 onwards
  399 |   std::optional<unsigned> getPackIndex() const {
      |   ^~~
/usr/include/clang/AST/TemplateName.h:412:28: error: 'std::optional' has not been declared
  412 |                       std::optional<unsigned> PackIndex);
      |                            ^~~~~~~~
/usr/include/clang/AST/TemplateName.h:412:36: error: expected ',' or '...' before '<' token
  412 |                       std::optional<unsigned> PackIndex);
      |                                    ^
/usr/include/clang/AST/TemplateName.h: In constructor 'clang::SubstTemplateTemplateParmStorage::SubstTemplateTemplateParmStorage(clang::TemplateName, clang::Decl*, unsigned int, int)':
/usr/include/clang/AST/TemplateName.h:385:37: error: 'PackIndex' was not declared in this scope
  385 |                                     PackIndex ? *PackIndex + 1 : 0),
      |                                     ^~~~~~~~~
In file included from /usr/include/clang/AST/Type.h:40:
/usr/include/llvm/ADT/Twine.h: At global scope:
/usr/include/llvm/ADT/Twine.h:292:35: error: 'string_view' in namespace 'std' does not name a type
  292 |     /*implicit*/ Twine(const std::string_view &Str)
      |                                   ^~~~~~~~~~~
/usr/include/llvm/ADT/Twine.h:292:30: note: 'std::string_view' is only available from C++17 onwards
  292 |     /*implicit*/ Twine(const std::string_view &Str)
      |                              ^~~
/usr/include/llvm/ADT/Twine.h: In constructor 'llvm::Twine::Twine(const int&)':
/usr/include/llvm/ADT/Twine.h:294:34: error: request for member 'data' in 'Str', which is of non-class type 'const int'
  294 |       LHS.ptrAndLength.ptr = Str.data();
      |                                  ^~~~
/usr/include/llvm/ADT/Twine.h:295:37: error: request for member 'length' in 'Str', which is of non-class type 'const int'
  295 |       LHS.ptrAndLength.length = Str.length();
      |                                     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::Type*, const clang::ExtQuals*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::Type*, const clang::ExtQuals*>'
/usr/include/clang/AST/Type.h:744:28:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::Type*, const clang::ExtQuals*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::Type*, const clang::ExtQuals*>':
/usr/include/clang/AST/Type.h:744:28:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::Type*, const clang::ExtQuals*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Type.h: At global scope:
/usr/include/clang/AST/Type.h:2555:8: error: 'optional' in namespace 'std' does not name a template type
 2555 |   std::optional<NullabilityKind> getNullability() const;
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:2555:3: note: 'std::optional' is only available from C++17 onwards
 2555 |   std::optional<NullabilityKind> getNullability() const;
      |   ^~~
/usr/include/clang/AST/Type.h:2579:8: error: 'optional' in namespace 'std' does not name a template type
 2579 |   std::optional<ArrayRef<QualType>>
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:2579:3: note: 'std::optional' is only available from C++17 onwards
 2579 |   std::optional<ArrayRef<QualType>>
      |   ^~~
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::FunctionProtoType::getParamTypes() const':
/usr/include/clang/AST/Type.h:4240:26: error: missing template arguments before '(' token
 4240 |     return llvm::ArrayRef(param_type_begin(), param_type_end());
      |                          ^
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::FunctionProtoType::param_types() const':
/usr/include/clang/AST/Type.h:4387:26: error: missing template arguments before '(' token
 4387 |     return llvm::ArrayRef(param_type_begin(), param_type_end());
      |                          ^
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::FunctionProtoType::exceptions() const':
/usr/include/clang/AST/Type.h:4401:26: error: missing template arguments before '(' token
 4401 |     return llvm::ArrayRef(exception_begin(), exception_end());
      |                          ^
/usr/include/clang/AST/Type.h: At global scope:
/usr/include/clang/AST/Type.h:4925:8: error: 'optional' in namespace 'std' does not name a template type
 4925 |   std::optional<NullabilityKind> getImmediateNullability() const;
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:4925:3: note: 'std::optional' is only available from C++17 onwards
 4925 |   std::optional<NullabilityKind> getImmediateNullability() const;
      |   ^~~
/usr/include/clang/AST/Type.h:4955:15: error: 'optional' in namespace 'std' does not name a template type
 4955 |   static std::optional<NullabilityKind> stripOuterNullability(QualType &T);
      |               ^~~~~~~~
/usr/include/clang/AST/Type.h:4955:10: note: 'std::optional' is only available from C++17 onwards
 4955 |   static std::optional<NullabilityKind> stripOuterNullability(QualType &T);
      |          ^~~
/usr/include/clang/AST/Type.h:5096:50: error: 'std::optional' has not been declared
 5096 |                             unsigned Index, std::optional<unsigned> PackIndex);
      |                                                  ^~~~~~~~
/usr/include/clang/AST/Type.h:5096:58: error: expected ',' or '...' before '<' token
 5096 |                             unsigned Index, std::optional<unsigned> PackIndex);
      |                                                          ^
/usr/include/clang/AST/Type.h:5119:8: error: 'optional' in namespace 'std' does not name a template type
 5119 |   std::optional<unsigned> getPackIndex() const {
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:5119:3: note: 'std::optional' is only available from C++17 onwards
 5119 |   std::optional<unsigned> getPackIndex() const {
      |   ^~~
/usr/include/clang/AST/Type.h:5135:28: error: 'std::optional' has not been declared
 5135 |                       std::optional<unsigned> PackIndex) {
      |                            ^~~~~~~~
/usr/include/clang/AST/Type.h:5135:36: error: expected ',' or '...' before '<' token
 5135 |                       std::optional<unsigned> PackIndex) {
      |                                    ^
/usr/include/clang/AST/Type.h: In member function 'void clang::SubstTemplateTypeParmType::Profile(llvm::FoldingSetNodeID&)':
/usr/include/clang/AST/Type.h:5130:13: error: 'getPackIndex' was not declared in this scope; did you mean 'getIndex'?
 5130 |             getPackIndex());
      |             ^~~~~~~~~~~~
      |             getIndex
/usr/include/clang/AST/Type.h: In static member function 'static void clang::SubstTemplateTypeParmType::Profile(llvm::FoldingSetNodeID&, clang::QualType, const clang::Decl*, unsigned int, int)':
/usr/include/clang/AST/Type.h:5139:19: error: 'PackIndex' was not declared in this scope
 5139 |     ID.AddInteger(PackIndex ? *PackIndex - 1 : 0);
      |                   ^~~~~~~~~
/usr/include/clang/AST/Type.h: At global scope:
/usr/include/clang/AST/Type.h:5849:26: error: 'std::optional' has not been declared
 5849 |                     std::optional<unsigned> NumExpansions)
      |                          ^~~~~~~~
/usr/include/clang/AST/Type.h:5849:34: error: expected ',' or '...' before '<' token
 5849 |                     std::optional<unsigned> NumExpansions)
      |                                  ^
/usr/include/clang/AST/Type.h:5867:8: error: 'optional' in namespace 'std' does not name a template type
 5867 |   std::optional<unsigned> getNumExpansions() const {
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:5867:3: note: 'std::optional' is only available from C++17 onwards
 5867 |   std::optional<unsigned> getNumExpansions() const {
      |   ^~~
/usr/include/clang/AST/Type.h:5881:28: error: 'std::optional' has not been declared
 5881 |                       std::optional<unsigned> NumExpansions) {
      |                            ^~~~~~~~
/usr/include/clang/AST/Type.h:5881:36: error: expected ',' or '...' before '<' token
 5881 |                       std::optional<unsigned> NumExpansions) {
      |                                    ^
/usr/include/clang/AST/Type.h: In constructor 'clang::PackExpansionType::PackExpansionType(clang::QualType, clang::QualType, int)':
/usr/include/clang/AST/Type.h:5856:9: error: 'NumExpansions' was not declared in this scope
 5856 |         NumExpansions ? *NumExpansions + 1 : 0;
      |         ^~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In member function 'void clang::PackExpansionType::Profile(llvm::FoldingSetNodeID&)':
/usr/include/clang/AST/Type.h:5877:31: error: 'getNumExpansions' was not declared in this scope
 5877 |     Profile(ID, getPattern(), getNumExpansions());
      |                               ^~~~~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In static member function 'static void clang::PackExpansionType::Profile(llvm::FoldingSetNodeID&, clang::QualType, int)':
/usr/include/clang/AST/Type.h:5883:19: error: 'NumExpansions' was not declared in this scope
 5883 |     ID.AddBoolean(NumExpansions.has_value());
      |                   ^~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::ObjCObjectType::getTypeArgsAsWritten() const':
/usr/include/clang/AST/Type.h:6138:26: error: missing template arguments before '(' token
 6138 |     return llvm::ArrayRef(getTypeArgStorage(), ObjCObjectTypeBits.NumTypeArgs);
      |                          ^
/usr/include/clang/AST/Type.h: In constructor 'clang::DecayedType::DecayedType(clang::QualType, clang::QualType, clang::QualType)':
/usr/include/clang/AST/Type.h:7484:25: error: 'stripOuterNullability' is not a member of 'clang::AttributedType'
 7484 |   (void)AttributedType::stripOuterNullability(Adjusted);
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In member function 'clang::QualType clang::DecayedType::getPointeeType() const':
/usr/include/clang/AST/Type.h:7491:25: error: 'stripOuterNullability' is not a member of 'clang::AttributedType'
 7491 |   (void)AttributedType::stripOuterNullability(Decayed);
      |                         ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/ADT/StringMap.h:17,
                 from /usr/include/clang/Basic/IdentifierTable.h:23,
                 from /usr/include/clang/AST/DeclarationName.h:18:
/usr/include/llvm/ADT/StringMapEntry.h: At global scope:
/usr/include/llvm/ADT/StringMapEntry.h:88:34: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
   88 | class StringMapEntryStorage<std::nullopt_t> : public StringMapEntryBase {
      |                                  ^~~~~~~~~
      |                                  nullptr_t
/usr/include/llvm/ADT/StringMapEntry.h:88:34: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
   88 | class StringMapEntryStorage<std::nullopt_t> : public StringMapEntryBase {
      |                                  ^~~~~~~~~
      |                                  nullptr_t
/usr/include/llvm/ADT/StringMapEntry.h:88:43: error: template argument 1 is invalid
   88 | class StringMapEntryStorage<std::nullopt_t> : public StringMapEntryBase {
      |                                           ^
In file included from /usr/include/clang/AST/DeclBase.h:31:
/usr/include/llvm/Support/VersionTuple.h:76:8: error: 'optional' in namespace 'std' does not name a template type
   76 |   std::optional<unsigned> getMinor() const {
      |        ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:76:3: note: 'std::optional' is only available from C++17 onwards
   76 |   std::optional<unsigned> getMinor() const {
      |   ^~~
/usr/include/llvm/Support/VersionTuple.h:83:8: error: 'optional' in namespace 'std' does not name a template type
   83 |   std::optional<unsigned> getSubminor() const {
      |        ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:83:3: note: 'std::optional' is only available from C++17 onwards
   83 |   std::optional<unsigned> getSubminor() const {
      |   ^~~
/usr/include/llvm/Support/VersionTuple.h:90:8: error: 'optional' in namespace 'std' does not name a template type
   90 |   std::optional<unsigned> getBuild() const {
      |        ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:90:3: note: 'std::optional' is only available from C++17 onwards
   90 |   std::optional<unsigned> getBuild() const {
      |   ^~~
/usr/include/llvm/Support/VersionTuple.h: In static member function 'static unsigned int llvm::DenseMapInfo<llvm::VersionTuple>::getHashValue(const llvm::VersionTuple&)':
/usr/include/llvm/Support/VersionTuple.h:203:28: error: 'const class llvm::VersionTuple' has no member named 'getMinor'; did you mean 'getMajor'?
  203 |     if (auto Minor = Value.getMinor())
      |                            ^~~~~~~~
      |                            getMajor
/usr/include/llvm/Support/VersionTuple.h:205:31: error: 'const class llvm::VersionTuple' has no member named 'getSubminor'; did you mean 'unsigned int:31 llvm::VersionTuple::Subminor'? (not accessible from this context)
  205 |     if (auto Subminor = Value.getSubminor())
      |                               ^~~~~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:37:12: note: declared private here
   37 |   unsigned Subminor : 31;
      |            ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:207:28: error: 'const class llvm::VersionTuple' has no member named 'getBuild'; did you mean 'unsigned int:31 llvm::VersionTuple::Build'? (not accessible from this context)
  207 |     if (auto Build = Value.getBuild())
      |                            ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:40:12: note: declared private here
   40 |   unsigned Build : 31;
      |            ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::DeclContext*, clang::Decl::MultipleDC*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::DeclContext*, clang::Decl::MultipleDC*>'
/usr/include/clang/AST/DeclBase.h:269:49:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::DeclContext*, clang::Decl::MultipleDC*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::DeclContext*, clang::Decl::MultipleDC*>':
/usr/include/clang/AST/DeclBase.h:269:49:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::DeclContext*, clang::Decl::MultipleDC*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::NamedDecl*, clang::DeclListNode*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::NamedDecl*, clang::DeclListNode*>'
/usr/include/clang/AST/DeclBase.h:1290:11:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::NamedDecl*, clang::DeclListNode*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::NamedDecl*, clang::DeclListNode*>':
/usr/include/clang/AST/DeclBase.h:1290:11:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::NamedDecl*, clang::DeclListNode*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/ExternalASTSource.h:17,
                 from /usr/include/clang/AST/Decl.h:21:
/usr/include/clang/AST/CharUnits.h: At global scope:
/usr/include/clang/AST/CharUnits.h:194:48: error: return type 'struct llvm::MaybeAlign' is incomplete
  194 |       llvm::MaybeAlign getAsMaybeAlign() const {
      |                                                ^
/usr/include/clang/AST/CharUnits.h: In member function 'void clang::CharUnits::getAsMaybeAlign() const':
/usr/include/clang/AST/CharUnits.h:195:41: error: invalid use of incomplete type 'struct llvm::MaybeAlign'
  195 |         return llvm::MaybeAlign(Quantity);
      |                                         ^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/clang/AST/ExternalASTSource.h: At global scope:
/usr/include/clang/AST/ExternalASTSource.h:163:16: error: 'optional' in namespace 'std' does not name a template type
  163 |   virtual std::optional<ASTSourceDescriptor> getSourceDescriptor(unsigned ID);
      |                ^~~~~~~~
/usr/include/clang/AST/ExternalASTSource.h:163:11: note: 'std::optional' is only available from C++17 onwards
  163 |   virtual std::optional<ASTSourceDescriptor> getSourceDescriptor(unsigned ID);
      |           ^~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >'
/usr/include/clang/AST/Redeclarable.h:105:61:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >':
/usr/include/clang/AST/Redeclarable.h:105:61:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Decl*, const void*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Decl*, const void*>'
/usr/include/clang/AST/Redeclarable.h:119:40:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Decl*, const void*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Decl*, const void*>':
/usr/include/clang/AST/Redeclarable.h:119:40:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Decl*, const void*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>'
/usr/include/clang/AST/ExternalASTSource.h:402:13:   required from 'struct clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>'
/usr/include/clang/AST/Redeclarable.h:134:61:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>':
/usr/include/clang/AST/ExternalASTSource.h:402:13:   required from 'struct clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>'
/usr/include/clang/AST/Redeclarable.h:134:61:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Decl.h:440:8: error: 'optional' in namespace 'std' does not name a template type
  440 |   std::optional<Visibility>
      |        ^~~~~~~~
/usr/include/clang/AST/Decl.h:440:3: note: 'std::optional' is only available from C++17 onwards
  440 |   std::optional<Visibility>
      |   ^~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>'
/usr/include/clang/AST/Decl.h:776:51:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>':
/usr/include/clang/AST/Decl.h:776:51:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, clang::EvaluatedStmt*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, clang::EvaluatedStmt*>'
/usr/include/clang/AST/Decl.h:961:20:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, clang::EvaluatedStmt*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, clang::EvaluatedStmt*>':
/usr/include/clang/AST/Decl.h:961:20:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, clang::EvaluatedStmt*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>'
/usr/include/clang/AST/Decl.h:2006:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>':
/usr/include/clang/AST/Decl.h:2006:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Decl.h:2477:12: error: 'std::optional' has not been declared
 2477 |       std::optional<unsigned> *AlignmentParam = nullptr,
      |            ^~~~~~~~
/usr/include/clang/AST/Decl.h:2477:20: error: expected ',' or '...' before '<' token
 2477 |       std::optional<unsigned> *AlignmentParam = nullptr,
      |                    ^
/usr/include/clang/AST/Decl.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::IndirectFieldDecl::chain() const':
/usr/include/clang/AST/Decl.h:3220:26: error: missing template arguments before '(' token
 3220 |     return llvm::ArrayRef(Chaining, ChainingSize);
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>'
/usr/include/clang/AST/Decl.h:3307:9:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>':
/usr/include/clang/AST/Decl.h:3307:9:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypedefNameDecl*, clang::QualifierInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypedefNameDecl*, clang::QualifierInfo*>'
/usr/include/clang/AST/Decl.h:3460:52:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypedefNameDecl*, clang::QualifierInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypedefNameDecl*, clang::QualifierInfo*>':
/usr/include/clang/AST/Decl.h:3460:52:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypedefNameDecl*, clang::QualifierInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::Type*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::Type*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/Decl.h:3736:54:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::Type*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::Type*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/Decl.h:3736:54:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::Type*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/Basic/ObjCRuntime.h:21,
                 from /usr/include/clang/Basic/LangOptions.h:20,
                 from /usr/include/clang/AST/Stmt.h:22,
                 from /usr/include/clang/AST/Expr.h:23:
/usr/include/llvm/Support/HashBuilder.h: At global scope:
/usr/include/llvm/Support/HashBuilder.h:84:8: error: 'optional' in namespace 'std' does not name a template type
   84 |   std::optional<HasherT> OptionalHasher;
      |        ^~~~~~~~
/usr/include/llvm/Support/HashBuilder.h:84:3: note: 'std::optional' is only available from C++17 onwards
   84 |   std::optional<HasherT> OptionalHasher;
      |   ^~~
/usr/include/llvm/Support/HashBuilder.h: In member function 'void llvm::HashBuilderBase<HasherT>::update(llvm::StringRef)':
/usr/include/llvm/Support/HashBuilder.h:62:17: error: missing template arguments before '(' token
   62 |         ArrayRef(reinterpret_cast<const uint8_t *>(Data.data()), Data.size()));
      |                 ^
/usr/include/llvm/Support/HashBuilder.h: In constructor 'llvm::HashBuilderBase<HasherT>::HashBuilderBase(ArgTypes&& ...)':
/usr/include/llvm/Support/HashBuilder.h:80:9: error: class 'llvm::HashBuilderBase<HasherT>' does not have any field named 'OptionalHasher'
   80 |       : OptionalHasher(std::in_place, std::forward<ArgTypes>(Args)...),
      |         ^~~~~~~~~~~~~~
/usr/include/llvm/Support/HashBuilder.h:80:29: error: 'in_place' is not a member of 'std'
   80 |       : OptionalHasher(std::in_place, std::forward<ArgTypes>(Args)...),
      |                             ^~~~~~~~
/usr/include/llvm/Support/HashBuilder.h:80:29: note: 'std::in_place' is only available from C++17 onwards
/usr/include/llvm/Support/HashBuilder.h:81:17: error: 'OptionalHasher' was not declared in this scope
   81 |         Hasher(*OptionalHasher) {}
      |                 ^~~~~~~~~~~~~~
/usr/include/llvm/Support/HashBuilder.h: In member function 'llvm::HashBuilderImpl<HasherT, Endianness>& llvm::HashBuilderImpl<HasherT, Endianness>::add(llvm::ArrayRef<U>)':
/usr/include/llvm/Support/HashBuilder.h:134:28: error: missing template arguments before '(' token
  134 |       this->update(ArrayRef(reinterpret_cast<const uint8_t *>(Value.begin()),
      |                            ^
/usr/include/llvm/Support/HashBuilder.h: In member function 'llvm::HashBuilderImpl<HasherT, Endianness>& llvm::HashBuilderImpl<HasherT, Endianness>::add(llvm::StringRef)':
/usr/include/llvm/Support/HashBuilder.h:162:26: error: missing template arguments before '(' token
  162 |     this->update(ArrayRef(reinterpret_cast<const uint8_t *>(Value.begin()),
      |                          ^
/usr/include/llvm/Support/HashBuilder.h: In member function 'llvm::HashBuilderImpl<HasherT, Endianness>& llvm::HashBuilderImpl<HasherT, Endianness>::add(const std::tuple<_Args1 ...>&)':
/usr/include/llvm/Support/HashBuilder.h:268:10: error: 'apply' is not a member of 'std'
  268 |     std::apply([this](const auto &...Args) { this->add(Args...); }, Arg);
      |          ^~~~~
/usr/include/llvm/Support/HashBuilder.h:268:10: note: 'std::apply' is only available from C++17 onwards
/usr/include/llvm/Support/HashBuilder.h: In member function 'std::enable_if_t<typename llvm::detail::detector<void, llvm::HashBuilderImpl<HasherT, Endianness>::HasByteSwapT, T>::value_t::value, llvm::HashBuilderImpl<HasherT, Endianness>&> llvm::HashBuilderImpl<HasherT, Endianness>::adjustForEndiannessAndAdd(const T&)':
/usr/include/llvm/Support/HashBuilder.h:319:26: error: missing template arguments before '(' token
  319 |     this->update(ArrayRef(reinterpret_cast<const uint8_t *>(&SwappedValue),
      |                          ^
/usr/include/llvm/Support/HashBuilder.h: In member function 'std::enable_if_t<(llvm::hashbuilder_detail::IsHashableData<T>::value && (Endianness == llvm::support::endian::system_endianness())), llvm::HashBuilderImpl<HasherT, Endianness>&> llvm::HashBuilderImpl<HasherT, Endianness>::addRangeElementsImpl(T*, T*, std::forward_iterator_tag)':
/usr/include/llvm/Support/HashBuilder.h:341:26: error: missing template arguments before '(' token
  341 |     this->update(ArrayRef(reinterpret_cast<const uint8_t *>(First),
      |                          ^
/usr/include/clang/Basic/LangOptions.h: At global scope:
/usr/include/clang/Basic/LangOptions.h:470:8: error: 'optional' in namespace 'std' does not name a template type
  470 |   std::optional<TargetCXXABI::Kind> CXXABI;
      |        ^~~~~~~~
/usr/include/clang/Basic/LangOptions.h:470:3: note: 'std::optional' is only available from C++17 onwards
  470 |   std::optional<TargetCXXABI::Kind> CXXABI;
      |   ^~~
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<const clang::Attr*> clang::AttributedStmt::getAttrs() const':
/usr/include/clang/AST/Stmt.h:1927:26: error: missing template arguments before '(' token
 1927 |     return llvm::ArrayRef(getAttrArrayPtr(), AttributedStmtBits.NumAttrs);
      |                          ^
/usr/include/clang/AST/Stmt.h: At global scope:
/usr/include/clang/AST/Stmt.h:2152:8: error: 'optional' in namespace 'std' does not name a template type
 2152 |   std::optional<const Stmt *> getNondiscardedCase(const ASTContext &Ctx) const;
      |        ^~~~~~~~
/usr/include/clang/AST/Stmt.h:2152:3: note: 'std::optional' is only available from C++17 onwards
 2152 |   std::optional<const Stmt *> getNondiscardedCase(const ASTContext &Ctx) const;
      |   ^~~
/usr/include/clang/AST/Stmt.h:2153:8: error: 'optional' in namespace 'std' does not name a template type
 2153 |   std::optional<Stmt *> getNondiscardedCase(const ASTContext &Ctx);
      |        ^~~~~~~~
/usr/include/clang/AST/Stmt.h:2153:3: note: 'std::optional' is only available from C++17 onwards
 2153 |   std::optional<Stmt *> getNondiscardedCase(const ASTContext &Ctx);
      |   ^~~
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<llvm::StringRef> clang::MSAsmStmt::getAllConstraints() const':
/usr/include/clang/AST/Stmt.h:3338:26: error: missing template arguments before '(' token
 3338 |     return llvm::ArrayRef(Constraints, NumInputs + NumOutputs);
      |                          ^
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<llvm::StringRef> clang::MSAsmStmt::getClobbers() const':
/usr/include/clang/AST/Stmt.h:3342:26: error: missing template arguments before '(' token
 3342 |     return llvm::ArrayRef(Clobbers, NumClobbers);
      |                          ^
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::MSAsmStmt::getAllExprs() const':
/usr/include/clang/AST/Stmt.h:3346:26: error: missing template arguments before '(' token
 3346 |     return llvm::ArrayRef(reinterpret_cast<Expr **>(Exprs),
      |                          ^
In file included from /usr/include/clang/AST/Expr.h:24:
/usr/include/clang/AST/TemplateBase.h: At global scope:
/usr/include/clang/AST/TemplateBase.h:204:44: error: 'std::optional' has not been declared
  204 |   TemplateArgument(TemplateName Name, std::optional<unsigned> NumExpansions) {
      |                                            ^~~~~~~~
/usr/include/clang/AST/TemplateBase.h:204:52: error: expected ',' or '...' before '<' token
  204 |   TemplateArgument(TemplateName Name, std::optional<unsigned> NumExpansions) {
      |                                                    ^
/usr/include/clang/AST/TemplateBase.h:309:8: error: 'optional' in namespace 'std' does not name a template type
  309 |   std::optional<unsigned> getNumTemplateExpansions() const;
      |        ^~~~~~~~
/usr/include/clang/AST/TemplateBase.h:309:3: note: 'std::optional' is only available from C++17 onwards
  309 |   std::optional<unsigned> getNumTemplateExpansions() const;
      |   ^~~
/usr/include/clang/AST/TemplateBase.h: In constructor 'clang::TemplateArgument::TemplateArgument(clang::TemplateName, int)':
/usr/include/clang/AST/TemplateBase.h:207:9: error: 'NumExpansions' was not declared in this scope
  207 |     if (NumExpansions)
      |         ^~~~~~~~~~~~~
/usr/include/clang/AST/TemplateBase.h: In static member function 'static clang::TemplateArgument clang::TemplateArgument::getEmptyPack()':
/usr/include/clang/AST/TemplateBase.h:236:34: error: 'nullopt' is not a member of 'std'
  236 |     return TemplateArgument(std::nullopt);
      |                                  ^~~~~~~
/usr/include/clang/AST/TemplateBase.h:236:34: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::APSInt clang::TemplateArgument::getAsIntegral() const':
/usr/include/clang/AST/TemplateBase.h:322:18: error: expected primary-expression before '(' token
  322 |     return APSInt(APInt(Integer.BitWidth, ArrayRef(Integer.pVal, NumWords)),
      |                  ^
/usr/include/clang/AST/TemplateBase.h:322:24: error: expected primary-expression before '(' token
  322 |     return APSInt(APInt(Integer.BitWidth, ArrayRef(Integer.pVal, NumWords)),
      |                        ^
/usr/include/clang/AST/TemplateBase.h:322:51: error: missing template arguments before '(' token
  322 |     return APSInt(APInt(Integer.BitWidth, ArrayRef(Integer.pVal, NumWords)),
      |                                                   ^
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::TemplateArgument::pack_elements() const':
/usr/include/clang/AST/TemplateBase.h:367:26: error: missing template arguments before '(' token
  367 |     return llvm::ArrayRef(pack_begin(), pack_end());
      |                          ^
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::TemplateArgument::getPackAsArray() const':
/usr/include/clang/AST/TemplateBase.h:380:26: error: missing template arguments before '(' token
  380 |     return llvm::ArrayRef(Args.Args, Args.NumArgs);
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/TemplateBase.h:418:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/TemplateBase.h:418:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::ArrayRef<clang::TemplateArgumentLoc> clang::ASTTemplateArgumentListInfo::arguments() const':
/usr/include/clang/AST/TemplateBase.h:645:26: error: missing template arguments before '(' token
  645 |     return llvm::ArrayRef(getTemplateArgs(), getNumTemplateArgs());
      |                          ^
In file included from /usr/include/clang/AST/Expr.h:28:
/usr/include/clang/Basic/SyncScope.h: In member function 'virtual llvm::ArrayRef<unsigned int> clang::AtomicScopeOpenCLModel::getRuntimeValues() const':
/usr/include/clang/Basic/SyncScope.h:148:26: error: missing template arguments before '(' token
  148 |     return llvm::ArrayRef(Scopes);
      |                          ^
/usr/include/clang/Basic/SyncScope.h: In member function 'virtual llvm::ArrayRef<unsigned int> clang::AtomicScopeHIPModel::getRuntimeValues() const':
/usr/include/clang/Basic/SyncScope.h:200:26: error: missing template arguments before '(' token
  200 |     return llvm::ArrayRef(Scopes);
      |                          ^
/usr/include/clang/AST/Expr.h: At global scope:
/usr/include/clang/AST/Expr.h:543:8: error: 'optional' in namespace 'std' does not name a template type
  543 |   std::optional<llvm::APSInt>
      |        ^~~~~~~~
/usr/include/clang/AST/Expr.h:543:3: note: 'std::optional' is only available from C++17 onwards
  543 |   std::optional<llvm::APSInt>
      |   ^~~
/usr/include/clang/AST/Expr.h: In member function 'void clang::CallExpr::computeDependence()':
/usr/include/clang/AST/Expr.h:3024:29: error: missing template arguments before '(' token
 3024 |         this, llvm::ArrayRef(
      |                             ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Stmt*> clang::CallExpr::getRawSubExprs()':
/usr/include/clang/AST/Expr.h:3071:26: error: missing template arguments before '(' token
 3071 |     return llvm::ArrayRef(getTrailingStmts(),
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, clang::FieldDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, clang::FieldDecl*>'
/usr/include/clang/AST/Expr.h:4818:43:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, clang::FieldDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, clang::FieldDecl*>':
/usr/include/clang/AST/Expr.h:4818:43:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, clang::FieldDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::InitListExpr::inits()':
/usr/include/clang/AST/Expr.h:4838:51: error: missing template arguments before '(' token
 4838 |   ArrayRef<Expr *> inits() { return llvm::ArrayRef(getInits(), getNumInits()); }
      |                                                   ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::InitListExpr::inits() const':
/usr/include/clang/AST/Expr.h:4841:26: error: missing template arguments before '(' token
 4841 |     return llvm::ArrayRef(getInits(), getNumInits());
      |                          ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::ParenListExpr::exprs()':
/usr/include/clang/AST/Expr.h:5583:51: error: missing template arguments before '(' token
 5583 |   ArrayRef<Expr *> exprs() { return llvm::ArrayRef(getExprs(), getNumExprs()); }
      |                                                   ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::RecoveryExpr::subExpressions()':
/usr/include/clang/AST/Expr.h:6434:26: error: missing template arguments before '(' token
 6434 |     return llvm::ArrayRef(B, B + NumExprs);
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>'
/usr/include/c++/13/bits/stl_pair.h:194:11:   required from 'struct std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >'
/usr/include/llvm/Support/type_traits.h:75:7:   required from 'union llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/c++/13/type_traits:1040:25:   required by substitution of 'template<class _Tp, class ... _Args> using std::__is_constructible_impl = std::__bool_constant<__is_constructible(_Tp, _Args ...)> [with _Tp = llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >; _Args = {const llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >&}]'
/usr/include/c++/13/type_traits:1076:12:   required from 'struct std::is_copy_constructible<llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > > >'
/usr/include/llvm/Support/type_traits.h:98:8:   required from 'struct llvm::is_trivially_copy_constructible<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:329:74:   required from 'class llvm::SmallVectorImpl<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:1199:22:   required from 'class llvm::SmallVector<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >, 4>'
/usr/include/clang/AST/ASTConcept.h:53:57:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>':
/usr/include/c++/13/bits/stl_pair.h:194:11:   required from 'struct std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >'
/usr/include/llvm/Support/type_traits.h:75:7:   required from 'union llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/c++/13/type_traits:1040:25:   required by substitution of 'template<class _Tp, class ... _Args> using std::__is_constructible_impl = std::__bool_constant<__is_constructible(_Tp, _Args ...)> [with _Tp = llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >; _Args = {const llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >&}]'
/usr/include/c++/13/type_traits:1076:12:   required from 'struct std::is_copy_constructible<llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > > >'
/usr/include/llvm/Support/type_traits.h:98:8:   required from 'struct llvm::is_trivially_copy_constructible<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:329:74:   required from 'class llvm::SmallVectorImpl<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:1199:22:   required from 'class llvm::SmallVector<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >, 4>'
/usr/include/clang/AST/ASTConcept.h:53:57:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/Attr.h:365,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:17:
/usr/include/clang/AST/Attrs.inc: At global scope:
/usr/include/clang/AST/Attrs.inc:7459:17: error: 'optional' in namespace 'std' does not name a template type
 7459 |     static std::optional<MapTypeTy>
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7459:12: note: 'std::optional' is only available from C++17 onwards
 7459 |     static std::optional<MapTypeTy>
      |            ^~~
/usr/include/clang/AST/Attrs.inc:7461:17: error: 'optional' in namespace 'std' does not name a template type
 7461 |     static std::optional<OMPDeclareTargetDeclAttr*> getActiveAttr(const ValueDecl *VD);
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7461:12: note: 'std::optional' is only available from C++17 onwards
 7461 |     static std::optional<OMPDeclareTargetDeclAttr*> getActiveAttr(const ValueDecl *VD);
      |            ^~~
/usr/include/clang/AST/Attrs.inc:7462:17: error: 'optional' in namespace 'std' does not name a template type
 7462 |     static std::optional<DevTypeTy> getDeviceType(const ValueDecl *VD);
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7462:12: note: 'std::optional' is only available from C++17 onwards
 7462 |     static std::optional<DevTypeTy> getDeviceType(const ValueDecl *VD);
      |            ^~~
/usr/include/clang/AST/Attrs.inc:7463:17: error: 'optional' in namespace 'std' does not name a template type
 7463 |     static std::optional<SourceLocation> getLocation(const ValueDecl *VD);
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7463:12: note: 'std::optional' is only available from C++17 onwards
 7463 |     static std::optional<SourceLocation> getLocation(const ValueDecl *VD);
      |            ^~~
In file included from /usr/include/clang/AST/DeclCXX.h:29,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:20:
/usr/include/clang/AST/TypeLoc.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::ObjCTypeParamTypeLoc::getProtocolLocs() const':
/usr/include/clang/AST/TypeLoc.h:817:26: error: missing template arguments before '(' token
  817 |     return llvm::ArrayRef(getProtocolLocArray(), getNumProtocols());
      |                          ^
/usr/include/clang/AST/TypeLoc.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::ObjCObjectTypeLoc::getProtocolLocs() const':
/usr/include/clang/AST/TypeLoc.h:1023:26: error: missing template arguments before '(' token
 1023 |     return llvm::ArrayRef(getProtocolLocArray(), getNumProtocols());
      |                          ^
/usr/include/clang/AST/TypeLoc.h: In member function 'llvm::ArrayRef<clang::ParmVarDecl*> clang::FunctionTypeLoc::getParams() const':
/usr/include/clang/AST/TypeLoc.h:1450:26: error: missing template arguments before '(' token
 1450 |     return llvm::ArrayRef(getParmArray(), getNumParams());
      |                          ^
In file included from /usr/include/clang/AST/DeclCXX.h:42:
/usr/include/llvm/ADT/TinyPtrVector.h: In member function 'llvm::TinyPtrVector<EltTy>::operator llvm::ArrayRef<T>() const':
/usr/include/llvm/ADT/TinyPtrVector.h:138:19: error: 'nullopt' is not a member of 'std'
  138 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/llvm/ADT/TinyPtrVector.h:138:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/TinyPtrVector.h: In member function 'llvm::TinyPtrVector<EltTy>::operator llvm::MutableArrayRef<T>()':
/usr/include/llvm/ADT/TinyPtrVector.h:147:19: error: 'nullopt' is not a member of 'std'
  147 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/llvm/ADT/TinyPtrVector.h:147:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>'
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<clang::LambdaCapture*>'
/usr/include/clang/AST/DeclCXX.h:417:35:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>':
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<clang::LambdaCapture*>'
/usr/include/clang/AST/DeclCXX.h:417:35:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>'
/usr/include/clang/AST/DeclCXX.h:470:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>':
/usr/include/clang/AST/DeclCXX.h:470:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::CXXBaseSpecifier> clang::CXXRecordDecl::DefinitionData::bases() const':
/usr/include/clang/AST/DeclCXX.h:360:28: error: missing template arguments before '(' token
  360 |       return llvm::ArrayRef(getBases(), NumBases);
      |                            ^
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::CXXBaseSpecifier> clang::CXXRecordDecl::DefinitionData::vbases() const':
/usr/include/clang/AST/DeclCXX.h:364:28: error: missing template arguments before '(' token
  364 |       return llvm::ArrayRef(getVBases(), NumVBases);
      |                            ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>'
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<const clang::CXXMethodDecl*>'
/usr/include/clang/AST/DeclCXX.h:2104:49:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>':
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<const clang::CXXMethodDecl*>'
/usr/include/clang/AST/DeclCXX.h:2104:49:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>'
/usr/include/clang/AST/DeclCXX.h:2224:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>':
/usr/include/clang/AST/DeclCXX.h:2224:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::UsingPackDecl::expansions() const':
/usr/include/clang/AST/DeclCXX.h:3742:26: error: missing template arguments before '(' token
 3742 |     return llvm::ArrayRef(getTrailingObjects<NamedDecl *>(), NumExpansions);
      |                          ^
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::BindingDecl*> clang::DecompositionDecl::bindings() const':
/usr/include/clang/AST/DeclCXX.h:4112:26: error: missing template arguments before '(' token
 4112 |     return llvm::ArrayRef(getTrailingObjects<BindingDecl *>(), NumBindings);
      |                          ^
In file included from /usr/include/clang/AST/ASTContext.h:20,
                 from /usr/include/clang/AST/DeclTemplate.h:18,
                 from /usr/include/clang/AST/DeclFriend.h:20,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:21:
/usr/include/clang/AST/ComparisonCategories.h: At global scope:
/usr/include/clang/AST/ComparisonCategories.h:62:6: error: 'optional' in namespace 'std' does not name a template type
   62 | std::optional<ComparisonCategoryType>
      |      ^~~~~~~~
/usr/include/clang/AST/ComparisonCategories.h:62:1: note: 'std::optional' is only available from C++17 onwards
   62 | std::optional<ComparisonCategoryType>
      | ^~~
In file included from /usr/include/clang/AST/ASTContext.h:25:
/usr/include/clang/AST/PrettyPrinter.h: In member function 'virtual std::string clang::PrintingCallbacks::remapPath(llvm::StringRef) const':
/usr/include/clang/AST/PrettyPrinter.h:39:28: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
   39 |     return std::string(Path);
      |                            ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/AST/PrettyPrinter.h:39:28: note:   candidate expects 3 arguments, 1 provided
   39 |     return std::string(Path);
      |                            ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/clang/AST/ASTContext.h:26:
/usr/include/clang/AST/RawCommentList.h: In constructor 'clang::RawComment::CommentLine::CommentLine(llvm::StringRef, clang::PresumedLoc, clang::PresumedLoc)':
/usr/include/clang/AST/RawCommentList.h:148:11: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  148 |         : Text(Text), Begin(Begin), End(End) {}
      |           ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/AST/RawCommentList.h:148:11: note:   candidate expects 3 arguments, 1 provided
  148 |         : Text(Text), Begin(Begin), End(End) {}
      |           ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/clang/Basic/CodeGenOptions.h:20,
                 from /usr/include/clang/Basic/ProfileList.h:16,
                 from /usr/include/clang/AST/ASTContext.h:33:
/usr/include/llvm/Support/CodeGen.h: At global scope:
/usr/include/llvm/Support/CodeGen.h:66:15: error: 'optional' in namespace 'std' does not name a template type
   66 |   inline std::optional<Level> getLevel(IDType ID) {
      |               ^~~~~~~~
/usr/include/llvm/Support/CodeGen.h:66:10: note: 'std::optional' is only available from C++17 onwards
   66 |   inline std::optional<Level> getLevel(IDType ID) {
      |          ^~~
/usr/include/llvm/Support/CodeGen.h:74:15: error: 'optional' in namespace 'std' does not name a template type
   74 |   inline std::optional<Level> parseLevel(char C) {
      |               ^~~~~~~~
/usr/include/llvm/Support/CodeGen.h:74:10: note: 'std::optional' is only available from C++17 onwards
   74 |   inline std::optional<Level> parseLevel(char C) {
      |          ^~~
/usr/include/clang/Basic/CodeGenOptions.h:443:8: error: 'optional' in namespace 'std' does not name a template type
  443 |   std::optional<uint64_t> DiagnosticsHotnessThreshold = 0;
      |        ^~~~~~~~
/usr/include/clang/Basic/CodeGenOptions.h:443:3: note: 'std::optional' is only available from C++17 onwards
  443 |   std::optional<uint64_t> DiagnosticsHotnessThreshold = 0;
      |   ^~~
/usr/include/clang/Basic/CodeGenOptions.h:447:8: error: 'optional' in namespace 'std' does not name a template type
  447 |   std::optional<uint32_t> DiagnosticsMisExpectTolerance = 0;
      |        ^~~~~~~~
/usr/include/clang/Basic/CodeGenOptions.h:447:3: note: 'std::optional' is only available from C++17 onwards
  447 |   std::optional<uint32_t> DiagnosticsMisExpectTolerance = 0;
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:44:8: error: 'optional' in namespace 'std' does not name a template type
   44 |   std::optional<ExclusionType> inSection(StringRef Section, StringRef Prefix,
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:44:3: note: 'std::optional' is only available from C++17 onwards
   44 |   std::optional<ExclusionType> inSection(StringRef Section, StringRef Prefix,
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:54:8: error: 'optional' in namespace 'std' does not name a template type
   54 |   std::optional<ExclusionType>
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:54:3: note: 'std::optional' is only available from C++17 onwards
   54 |   std::optional<ExclusionType>
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:57:8: error: 'optional' in namespace 'std' does not name a template type
   57 |   std::optional<ExclusionType>
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:57:3: note: 'std::optional' is only available from C++17 onwards
   57 |   std::optional<ExclusionType>
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:60:8: error: 'optional' in namespace 'std' does not name a template type
   60 |   std::optional<ExclusionType>
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:60:3: note: 'std::optional' is only available from C++17 onwards
   60 |   std::optional<ExclusionType>
      |   ^~~
In file included from /usr/include/clang/AST/ASTContext.h:40:
/usr/include/llvm/ADT/MapVector.h:42:12: error: 'is_integral_v' is not a member of 'std'; did you mean 'is_integral'?
   42 |       std::is_integral_v<typename MapType::mapped_type>,
      |            ^~~~~~~~~~~~~
      |            is_integral
/usr/include/llvm/ADT/MapVector.h:42:55: error: expected '(' before '>' token
   42 |       std::is_integral_v<typename MapType::mapped_type>,
      |                                                       ^
      |                                                       (
/usr/include/llvm/ADT/MapVector.h:42:56: error: expected primary-expression before ',' token
   42 |       std::is_integral_v<typename MapType::mapped_type>,
      |                                                        ^
/usr/include/llvm/ADT/MapVector.h: In member function 'ValueT llvm::MapVector<KeyT, ValueT, MapType, VectorType>::lookup(const KeyT&) const':
/usr/include/llvm/ADT/MapVector.h:112:24: error: 'is_copy_constructible_v' is not a member of 'std'; did you mean 'is_copy_constructible'?
  112 |     static_assert(std::is_copy_constructible_v<ValueT>,
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
      |                        is_copy_constructible
/usr/include/llvm/ADT/MapVector.h:112:54: error: expected primary-expression before '>' token
  112 |     static_assert(std::is_copy_constructible_v<ValueT>,
      |                                                      ^
/usr/include/llvm/ADT/MapVector.h:112:55: error: expected primary-expression before ',' token
  112 |     static_assert(std::is_copy_constructible_v<ValueT>,
      |                                                       ^
/usr/include/clang/AST/ASTContext.h: At global scope:
/usr/include/clang/AST/ASTContext.h:1593:37: error: 'std::optional' has not been declared
 1593 |                                std::optional<unsigned> PackIndex) const;
      |                                     ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:1593:45: error: expected ',' or '...' before '<' token
 1593 |                                std::optional<unsigned> PackIndex) const;
      |                                             ^
/usr/include/clang/AST/ASTContext.h:1656:38: error: 'std::optional' has not been declared
 1656 |                                 std::optional<unsigned> NumExpansions,
      |                                      ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:1656:46: error: expected ',' or '...' before '<' token
 1656 |                                 std::optional<unsigned> NumExpansions,
      |                                              ^
/usr/include/clang/AST/ASTContext.h:2178:37: error: 'std::optional' has not been declared
 2178 |                                std::optional<unsigned> PackIndex) const;
      |                                     ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:2178:45: error: expected ',' or '...' before '<' token
 2178 |                                std::optional<unsigned> PackIndex) const;
      |                                             ^
/usr/include/clang/AST/ASTContext.h:2292:8: error: 'optional' in namespace 'std' does not name a template type
 2292 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(QualType Ty) const {
      |        ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:2292:3: note: 'std::optional' is only available from C++17 onwards
 2292 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(QualType Ty) const {
      |   ^~~
/usr/include/clang/AST/ASTContext.h:2298:8: error: 'optional' in namespace 'std' does not name a template type
 2298 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(const Type *Ty) const {
      |        ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:2298:3: note: 'std::optional' is only available from C++17 onwards
 2298 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(const Type *Ty) const {
      |   ^~~
/usr/include/clang/AST/ASTContext.h: In member function 'bool clang::ASTContext::hasSameNullabilityTypeQualifier(clang::QualType, clang::QualType, bool) const':
/usr/include/clang/AST/ASTContext.h:2549:34: error: 'const class clang::Type' has no member named 'getNullability'
 2549 |     auto SubTnullability = SubT->getNullability();
      |                                  ^~~~~~~~~~~~~~
/usr/include/clang/AST/ASTContext.h:2550:38: error: 'const class clang::Type' has no member named 'getNullability'
 2550 |     auto SuperTnullability = SuperT->getNullability();
      |                                      ^~~~~~~~~~~~~~
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::TemplateParameterList::asArray()':
/usr/include/clang/AST/DeclTemplate.h:133:58: error: missing template arguments before '(' token
  133 |   ArrayRef<NamedDecl *> asArray() { return llvm::ArrayRef(begin(), end()); }
      |                                                          ^
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<const clang::NamedDecl*> clang::TemplateParameterList::asArray() const':
/usr/include/clang/AST/DeclTemplate.h:135:26: error: missing template arguments before '(' token
  135 |     return llvm::ArrayRef(begin(), size());
      |                          ^
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::TemplateArgumentList::asArray() const':
/usr/include/clang/AST/DeclTemplate.h:291:26: error: missing template arguments before '(' token
  291 |     return llvm::ArrayRef(data(), size());
      |                          ^
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<clang::TemplateArgumentLoc> clang::DependentFunctionTemplateSpecializationInfo::arguments() const':
/usr/include/clang/AST/DeclTemplate.h:743:26: error: missing template arguments before '(' token
  743 |     return llvm::ArrayRef(getTemplateArgs(), getNumTemplateArgs());
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>'
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>'
/usr/include/clang/AST/DeclTemplate.h:1236:17:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>':
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>'
/usr/include/clang/AST/DeclTemplate.h:1236:17:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclTemplate.h: At global scope:
/usr/include/clang/AST/DeclTemplate.h:1241:29: error: 'std::optional' has not been declared
 1241 |                        std::optional<unsigned> NumExpanded)
      |                             ^~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:1241:37: error: expected ',' or '...' before '<' token
 1241 |                        std::optional<unsigned> NumExpanded)
      |                                     ^
/usr/include/clang/AST/DeclTemplate.h:1252:15: error: 'std::optional' has not been declared
 1252 |          std::optional<unsigned> NumExpanded = std::nullopt);
      |               ^~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:1252:23: error: expected ',' or '...' before '<' token
 1252 |          std::optional<unsigned> NumExpanded = std::nullopt);
      |                       ^
/usr/include/clang/AST/DeclTemplate.h:1252:10: error: default argument missing for parameter 11 of 'static clang::TemplateTypeParmDecl* clang::TemplateTypeParmDecl::Create(const clang::ASTContext&, clang::DeclContext*, clang::SourceLocation, clang::SourceLocation, unsigned int, unsigned int, clang::IdentifierInfo*, bool, bool, bool, int)'
 1252 |          std::optional<unsigned> NumExpanded = std::nullopt);
      |          ^~~~~~~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:1251:50: note: ...following parameter 10 which has a default argument
 1251 |          bool Typename, bool ParameterPack, bool HasTypeConstraint = false,
      |                                             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/clang/AST/DeclTemplate.h: In constructor 'clang::TemplateTypeParmDecl::TemplateTypeParmDecl(clang::DeclContext*, clang::SourceLocation, clang::SourceLocation, clang::IdentifierInfo*, bool, bool, int)':
/usr/include/clang/AST/DeclTemplate.h:1245:33: error: request for member 'value_or' in '((clang::TemplateTypeParmDecl*)this)->clang::TemplateTypeParmDecl::NumExpanded', which is of non-class type 'unsigned int'
 1245 |         NumExpanded(NumExpanded.value_or(0)) {}
      |                                 ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>'
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>'
/usr/include/clang/AST/DeclTemplate.h:1419:17:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>':
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>'
/usr/include/clang/AST/DeclTemplate.h:1419:17:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>'
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>'
/usr/include/clang/AST/DeclTemplate.h:1632:17:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>':
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>'
/usr/include/clang/AST/DeclTemplate.h:1632:17:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
/usr/include/clang/AST/DeclTemplate.h:1843:5:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/clang/AST/DeclTemplate.h:1843:5:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>'
/usr/include/clang/AST/DeclTemplate.h:1978:31:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>':
/usr/include/clang/AST/DeclTemplate.h:1978:31:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::NamedDecl*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::NamedDecl*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/DeclTemplate.h:2481:15:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::NamedDecl*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::NamedDecl*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/DeclTemplate.h:2481:15:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::NamedDecl*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
/usr/include/clang/AST/DeclTemplate.h:2705:3:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/clang/AST/DeclTemplate.h:2705:3:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>'
/usr/include/clang/AST/DeclTemplate.h:2832:31:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>':
/usr/include/clang/AST/DeclTemplate.h:2832:31:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>'
/usr/include/clang/AST/DeclTemplate.h:3424:53:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>':
/usr/include/clang/AST/DeclTemplate.h:3424:53:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclTemplate.h: At global scope:
/usr/include/clang/AST/DeclTemplate.h:3453:13: error: 'optional' in namespace 'std' does not name a template type
 3453 | inline std::optional<unsigned> getExpandedPackSize(const NamedDecl *Param) {
      |             ^~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:3453:8: note: 'std::optional' is only available from C++17 onwards
 3453 | inline std::optional<unsigned> getExpandedPackSize(const NamedDecl *Param) {
      |        ^~~
/usr/include/clang/AST/DeclFriend.h:113:69: error: 'nullopt' is not a member of 'std'
  113 |          ArrayRef<TemplateParameterList *> FriendTypeTPLists = std::nullopt);
      |                                                                     ^~~~~~~
/usr/include/clang/AST/DeclFriend.h:113:69: note: 'std::nullopt' is only available from C++17 onwards
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:22:
/usr/include/clang/AST/DeclObjC.h:391:64: error: 'nullopt' is not a member of 'std'
  391 |                        ArrayRef<SourceLocation> SelLocs = std::nullopt);
      |                                                                ^~~~~~~
/usr/include/clang/AST/DeclObjC.h:391:64: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/DeclObjC.h: In member function 'llvm::ArrayRef<clang::ParmVarDecl*> clang::ObjCMethodDecl::parameters() const':
/usr/include/clang/AST/DeclObjC.h:376:26: error: missing template arguments before '(' token
  376 |     return llvm::ArrayRef(const_cast<ParmVarDecl **>(getParams()), NumParams);
      |                          ^
/usr/include/clang/AST/DeclObjC.h: In member function 'std::string clang::ObjCImplementationDecl::getNameAsString() const':
/usr/include/clang/AST/DeclObjC.h:2713:69: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef)'
 2713 |   std::string getNameAsString() const { return std::string(getName()); }
      |                                                                     ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/AST/DeclObjC.h:2713:69: note:   candidate expects 3 arguments, 1 provided
 2713 |   std::string getNameAsString() const { return std::string(getName()); }
      |                                                                     ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/llvm/Frontend/OpenMP/OMPContext.h:19,
                 from /usr/include/clang/AST/OpenMPClause.h:37,
                 from /usr/include/clang/AST/DeclOpenMP.h:21,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:23:
/usr/include/llvm/ADT/BitVector.h: In member function 'llvm::BitVector::size_type llvm::BitVector::count() const':
/usr/include/llvm/ADT/BitVector.h:158:24: error: 'popcount' is not a member of 'llvm'; did you mean 'count'?
  158 |       NumBits += llvm::popcount(Bit);
      |                        ^~~~~~~~
      |                        count
/usr/include/llvm/ADT/DenseMap.h: In instantiation of 'class llvm::SmallDenseMap<llvm::omp::TraitProperty, llvm::APInt>':
/usr/include/llvm/Frontend/OpenMP/OMPContext.h:151:39:   required from here
/usr/include/llvm/ADT/DenseMap.h:890:30: error: non-constant condition for static assertion
  890 |   static_assert(isPowerOf2_64(InlineBuckets),
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/usr/include/llvm/ADT/DenseMap.h:890:30:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(4)'
/usr/include/llvm/ADT/DenseMap.h:890:30: error: 'constexpr' call flows off the end of the function
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPVarListClause<T>::getVarRefs() const':
/usr/include/clang/AST/OpenMPClause.h:339:26: error: missing template arguments before '(' token
  339 |     return llvm::ArrayRef(
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPPrivateClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:2560:26: error: missing template arguments before '(' token
 2560 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPFirstprivateClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:2669:26: error: missing template arguments before '(' token
 2669 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPFirstprivateClause::getInits() const':
/usr/include/clang/AST/OpenMPClause.h:2683:26: error: missing template arguments before '(' token
 2683 |     return llvm::ArrayRef(getPrivateCopies().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:2831:26: error: missing template arguments before '(' token
 2831 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getSourceExprs() const':
/usr/include/clang/AST/OpenMPClause.h:2845:26: error: missing template arguments before '(' token
 2845 |     return llvm::ArrayRef(getPrivateCopies().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getDestinationExprs() const':
/usr/include/clang/AST/OpenMPClause.h:2859:26: error: missing template arguments before '(' token
 2859 |     return llvm::ArrayRef(getSourceExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getAssignmentOps() const':
/usr/include/clang/AST/OpenMPClause.h:2872:26: error: missing template arguments before '(' token
 2872 |     return llvm::ArrayRef(getDestinationExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3160:26: error: missing template arguments before '(' token
 3160 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getLHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3173:26: error: missing template arguments before '(' token
 3173 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getRHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3188:26: error: missing template arguments before '(' token
 3188 |     return llvm::ArrayRef(getLHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getReductionOps() const':
/usr/include/clang/AST/OpenMPClause.h:3202:26: error: missing template arguments before '(' token
 3202 |     return llvm::ArrayRef(getRHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getInscanCopyOps() const':
/usr/include/clang/AST/OpenMPClause.h:3214:26: error: missing template arguments before '(' token
 3214 |     return llvm::ArrayRef(getReductionOps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getInscanCopyArrayTemps() const':
/usr/include/clang/AST/OpenMPClause.h:3225:26: error: missing template arguments before '(' token
 3225 |     return llvm::ArrayRef(getInscanCopyOps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getInscanCopyArrayElems() const':
/usr/include/clang/AST/OpenMPClause.h:3237:26: error: missing template arguments before '(' token
 3237 |     return llvm::ArrayRef(getInscanCopyArrayTemps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3479:26: error: missing template arguments before '(' token
 3479 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getLHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3492:26: error: missing template arguments before '(' token
 3492 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getRHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3506:26: error: missing template arguments before '(' token
 3506 |     return llvm::ArrayRef(getLHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getReductionOps() const':
/usr/include/clang/AST/OpenMPClause.h:3520:26: error: missing template arguments before '(' token
 3520 |     return llvm::ArrayRef(getRHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3710:26: error: missing template arguments before '(' token
 3710 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getLHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3723:26: error: missing template arguments before '(' token
 3723 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getRHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3737:26: error: missing template arguments before '(' token
 3737 |     return llvm::ArrayRef(getLHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getReductionOps() const':
/usr/include/clang/AST/OpenMPClause.h:3751:26: error: missing template arguments before '(' token
 3751 |     return llvm::ArrayRef(getRHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getTaskgroupDescriptors() const':
/usr/include/clang/AST/OpenMPClause.h:3762:26: error: missing template arguments before '(' token
 3762 |     return llvm::ArrayRef(getReductionOps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3968:26: error: missing template arguments before '(' token
 3968 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getInits() const':
/usr/include/clang/AST/OpenMPClause.h:3975:26: error: missing template arguments before '(' token
 3975 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getUpdates() const':
/usr/include/clang/AST/OpenMPClause.h:3983:26: error: missing template arguments before '(' token
 3983 |     return llvm::ArrayRef(getInits().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getFinals() const':
/usr/include/clang/AST/OpenMPClause.h:3991:26: error: missing template arguments before '(' token
 3991 |     return llvm::ArrayRef(getUpdates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getUsedExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3999:26: error: missing template arguments before '(' token
 3999 |     return llvm::ArrayRef(getFinals().end() + 2, varlist_size() + 1);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyinClause::getSourceExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4328:26: error: missing template arguments before '(' token
 4328 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyinClause::getDestinationExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4341:26: error: missing template arguments before '(' token
 4341 |     return llvm::ArrayRef(getSourceExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyinClause::getAssignmentOps() const':
/usr/include/clang/AST/OpenMPClause.h:4355:26: error: missing template arguments before '(' token
 4355 |     return llvm::ArrayRef(getDestinationExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyprivateClause::getSourceExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4493:26: error: missing template arguments before '(' token
 4493 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyprivateClause::getDestinationExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4506:26: error: missing template arguments before '(' token
 4506 |     return llvm::ArrayRef(getSourceExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyprivateClause::getAssignmentOps() const':
/usr/include/clang/AST/OpenMPClause.h:4520:26: error: missing template arguments before '(' token
 4520 |     return llvm::ArrayRef(getDestinationExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'clang::OMPMappableExprListClause<T>::const_component_lists_iterator clang::OMPMappableExprListClause<T>::component_lists_begin() const':
/usr/include/clang/AST/OpenMPClause.h:5638:51: error: 'nullopt' is not a member of 'std'
 5638 |         SupportsMapper ? getUDMapperRefs() : std::nullopt);
      |                                                   ^~~~~~~
/usr/include/clang/AST/OpenMPClause.h:5638:51: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/OpenMPClause.h: In member function 'clang::OMPMappableExprListClause<T>::const_component_lists_iterator clang::OMPMappableExprListClause<T>::component_lists_end() const':
/usr/include/clang/AST/OpenMPClause.h:5645:30: error: 'nullopt' is not a member of 'std'
 5645 |         SupportsMapper, std::nullopt);
      |                              ^~~~~~~
/usr/include/clang/AST/OpenMPClause.h:5645:30: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/OpenMPClause.h: In member function 'clang::OMPMappableExprListClause<T>::const_component_lists_iterator clang::OMPMappableExprListClause<T>::decl_component_lists_begin(const clang::ValueDecl*) const':
/usr/include/clang/AST/OpenMPClause.h:5658:51: error: 'nullopt' is not a member of 'std'
 5658 |         SupportsMapper ? getUDMapperRefs() : std::nullopt);
      |                                                   ^~~~~~~
/usr/include/clang/AST/OpenMPClause.h:5658:51: note: 'std::nullopt' is only available from C++17 onwards
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/clang/AST/OpenMPClause.h:41:
/usr/include/clang/AST/OpenMPClause.h: In constructor 'clang::OMPMapClause::OMPMapClause(llvm::ArrayRef<clang::OpenMPMapModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, clang::OpenMPMapClauseKind, bool, clang::SourceLocation, const clang::OMPVarListLocTy&, const clang::OMPMappableExprListSizeTy&)':
/usr/include/clang/AST/OpenMPClause.h:5810:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 5810 |     assert(std::size(MapTypeModifiers) == MapModifiers.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h:5814:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 5814 |     assert(std::size(MapTypeModifiersLoc) == MapModifiersLoc.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::OpenMPMapModifierKind> clang::OMPMapClause::getMapTypeModifiers() const':
/usr/include/clang/AST/OpenMPClause.h:5948:26: error: missing template arguments before '(' token
 5948 |     return llvm::ArrayRef(MapTypeModifiers);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::OMPMapClause::getMapTypeModifiersLoc() const':
/usr/include/clang/AST/OpenMPClause.h:5953:26: error: missing template arguments before '(' token
 5953 |     return llvm::ArrayRef(MapTypeModifiersLoc);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In constructor 'clang::OMPToClause::OMPToClause(llvm::ArrayRef<clang::OpenMPMotionModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, const clang::OMPVarListLocTy&, const clang::OMPMappableExprListSizeTy&)':
/usr/include/clang/AST/OpenMPClause.h:6788:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6788 |     assert(std::size(MotionModifiers) == TheMotionModifiers.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h:6792:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6792 |     assert(std::size(MotionModifiersLoc) == TheMotionModifiersLoc.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::OpenMPMotionModifierKind> clang::OMPToClause::getMotionModifiers() const':
/usr/include/clang/AST/OpenMPClause.h:6904:26: error: missing template arguments before '(' token
 6904 |     return llvm::ArrayRef(MotionModifiers);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::OMPToClause::getMotionModifiersLoc() const':
/usr/include/clang/AST/OpenMPClause.h:6909:26: error: missing template arguments before '(' token
 6909 |     return llvm::ArrayRef(MotionModifiersLoc);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In constructor 'clang::OMPFromClause::OMPFromClause(llvm::ArrayRef<clang::OpenMPMotionModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, const clang::OMPVarListLocTy&, const clang::OMPMappableExprListSizeTy&)':
/usr/include/clang/AST/OpenMPClause.h:6989:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6989 |     assert(std::size(MotionModifiers) == TheMotionModifiers.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h:6993:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6993 |     assert(std::size(MotionModifiersLoc) == TheMotionModifiersLoc.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::OpenMPMotionModifierKind> clang::OMPFromClause::getMotionModifiers() const':
/usr/include/clang/AST/OpenMPClause.h:7104:26: error: missing template arguments before '(' token
 7104 |     return llvm::ArrayRef(MotionModifiers);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::OMPFromClause::getMotionModifiersLoc() const':
/usr/include/clang/AST/OpenMPClause.h:7109:26: error: missing template arguments before '(' token
 7109 |     return llvm::ArrayRef(MotionModifiersLoc);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPUseDevicePtrClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:7204:26: error: missing template arguments before '(' token
 7204 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPUseDevicePtrClause::getInits() const':
/usr/include/clang/AST/OpenMPClause.h:7218:26: error: missing template arguments before '(' token
 7218 |     return llvm::ArrayRef(getPrivateCopies().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPNontemporalClause::getPrivateRefs() const':
/usr/include/clang/AST/OpenMPClause.h:7652:26: error: missing template arguments before '(' token
 7652 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::MutableArrayRef<clang::OMPClause*> clang::OMPChildren::getClauses()':
/usr/include/clang/AST/OpenMPClause.h:8934:33: error: missing template arguments before '(' token
 8934 |     return llvm::MutableArrayRef(getTrailingObjects<OMPClause *>(),
      |                                 ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::MutableArrayRef<clang::OMPClause*> clang::OMPDeclarativeDirective<T>::getClauses()':
/usr/include/clang/AST/DeclOpenMP.h:37:19: error: 'nullopt' is not a member of 'std'
   37 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/DeclOpenMP.h:37:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::ArrayRef<clang::OMPClause*> clang::OMPDeclarativeDirective<T>::clauses() const':
/usr/include/clang/AST/DeclOpenMP.h:93:19: error: 'nullopt' is not a member of 'std'
   93 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/DeclOpenMP.h:93:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPThreadPrivateDecl::getVars() const':
/usr/include/clang/AST/DeclOpenMP.h:121:26: error: missing template arguments before '(' token
  121 |     return llvm::ArrayRef(Storage, Data->getNumChildren());
      |                          ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPThreadPrivateDecl::getVars()':
/usr/include/clang/AST/DeclOpenMP.h:126:33: error: missing template arguments before '(' token
  126 |     return llvm::MutableArrayRef(Storage, Data->getNumChildren());
      |                                 ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPAllocateDecl::getVars() const':
/usr/include/clang/AST/DeclOpenMP.h:484:26: error: missing template arguments before '(' token
  484 |     return llvm::ArrayRef(Storage, Data->getNumChildren());
      |                          ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPAllocateDecl::getVars()':
/usr/include/clang/AST/DeclOpenMP.h:489:33: error: missing template arguments before '(' token
  489 |     return llvm::MutableArrayRef(Storage, Data->getNumChildren());
      |                                 ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/ExprCXX.h:849:48:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/ExprCXX.h:849:48:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:27:
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:2265:45: error: 'std::optional' has not been declared
 2265 |              SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                             ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2265:53: error: expected ',' or '...' before '<' token
 2265 |              SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                                     ^
/usr/include/clang/AST/ExprCXX.h:2280:41: error: 'std::optional' has not been declared
 2280 |          SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                         ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2280:49: error: expected ',' or '...' before '<' token
 2280 |          SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                                 ^
/usr/include/clang/AST/ExprCXX.h:2325:8: error: 'optional' in namespace 'std' does not name a template type
 2325 |   std::optional<Expr *> getArraySize() {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2325:3: note: 'std::optional' is only available from C++17 onwards
 2325 |   std::optional<Expr *> getArraySize() {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h:2339:8: error: 'optional' in namespace 'std' does not name a template type
 2339 |   std::optional<const Expr *> getArraySize() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2339:3: note: 'std::optional' is only available from C++17 onwards
 2339 |   std::optional<const Expr *> getArraySize() const {
      |   ^~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::IdentifierInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::IdentifierInfo*>'
/usr/include/clang/AST/ExprCXX.h:2544:58:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::IdentifierInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::IdentifierInfo*>':
/usr/include/clang/AST/ExprCXX.h:2544:58:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::IdentifierInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::TypeSourceInfo*> clang::TypeTraitExpr::getArgs() const':
/usr/include/clang/AST/ExprCXX.h:2799:26: error: missing template arguments before '(' token
 2799 |     return llvm::ArrayRef(getTrailingObjects<TypeSourceInfo *>(), getNumArgs());
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::BlockDecl*, clang::CompoundLiteralExpr*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*>'
/usr/include/llvm/Support/TrailingObjects.h:77:22:   required from 'class llvm::trailing_objects_internal::AlignmentCalcHelper<llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/llvm/Support/TrailingObjects.h:212:7:   required from 'class llvm::TrailingObjects<clang::ExprWithCleanups, llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/clang/AST/ExprCXX.h:3418:21:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::BlockDecl*, clang::CompoundLiteralExpr*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*>':
/usr/include/llvm/Support/TrailingObjects.h:77:22:   required from 'class llvm::trailing_objects_internal::AlignmentCalcHelper<llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/llvm/Support/TrailingObjects.h:212:7:   required from 'class llvm::TrailingObjects<clang::ExprWithCleanups, llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/clang/AST/ExprCXX.h:3418:21:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::BlockDecl*, clang::CompoundLiteralExpr*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> > clang::ExprWithCleanups::getObjects() const':
/usr/include/clang/AST/ExprCXX.h:3445:26: error: missing template arguments before '(' token
 3445 |     return llvm::ArrayRef(getTrailingObjects<CleanupObject>(), getNumObjects());
      |                          ^
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4141:26: error: 'std::optional' has not been declared
 4141 |                     std::optional<unsigned> NumExpansions)
      |                          ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4141:34: error: expected ',' or '...' before '<' token
 4141 |                     std::optional<unsigned> NumExpansions)
      |                                  ^
/usr/include/clang/AST/ExprCXX.h:4164:8: error: 'optional' in namespace 'std' does not name a template type
 4164 |   std::optional<unsigned> getNumExpansions() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4164:3: note: 'std::optional' is only available from C++17 onwards
 4164 |   std::optional<unsigned> getNumExpansions() const {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::PackExpansionExpr::PackExpansionExpr(clang::QualType, clang::Expr*, clang::SourceLocation, int)':
/usr/include/clang/AST/ExprCXX.h:4145:39: error: invalid type argument of unary '*' (have 'unsigned int')
 4145 |         NumExpansions(NumExpansions ? *NumExpansions + 1 : 0),
      |                                       ^~~~~~~~~~~~~~
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4235:23: error: 'std::optional' has not been declared
 4235 |                  std::optional<unsigned> Length,
      |                       ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4235:31: error: expected ',' or '...' before '<' token
 4235 |                  std::optional<unsigned> Length,
      |                               ^
/usr/include/clang/AST/ExprCXX.h:4256:15: error: 'std::optional' has not been declared
 4256 |          std::optional<unsigned> Length = std::nullopt,
      |               ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4256:23: error: expected ',' or '...' before '<' token
 4256 |          std::optional<unsigned> Length = std::nullopt,
      |                       ^
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::SizeOfPackExpr::SizeOfPackExpr(clang::QualType, clang::SourceLocation, clang::NamedDecl*, clang::SourceLocation, clang::SourceLocation, int)':
/usr/include/clang/AST/ExprCXX.h:4239:25: error: invalid type argument of unary '*' (have 'unsigned int')
 4239 |         Length(Length ? *Length : PartialArgs.size()), Pack(Pack) {
      |                         ^~~~~~~
/usr/include/clang/AST/ExprCXX.h:4239:35: error: 'PartialArgs' was not declared in this scope
 4239 |         Length(Length ? *Length : PartialArgs.size()), Pack(Pack) {
      |                                   ^~~~~~~~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::SizeOfPackExpr::getPartialArguments() const':
/usr/include/clang/AST/ExprCXX.h:4296:26: error: missing template arguments before '(' token
 4296 |     return llvm::ArrayRef(Args, Args + Length);
      |                          ^
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4340:37: error: 'std::optional' has not been declared
 4340 |                                std::optional<unsigned> PackIndex, bool RefParam)
      |                                     ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4340:45: error: expected ',' or '...' before '<' token
 4340 |                                std::optional<unsigned> PackIndex, bool RefParam)
      |                                             ^
/usr/include/clang/AST/ExprCXX.h:4366:8: error: 'optional' in namespace 'std' does not name a template type
 4366 |   std::optional<unsigned> getPackIndex() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4366:3: note: 'std::optional' is only available from C++17 onwards
 4366 |   std::optional<unsigned> getPackIndex() const {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::SubstNonTypeTemplateParmExpr::SubstNonTypeTemplateParmExpr(clang::QualType, clang::ExprValueKind, clang::SourceLocation, clang::Expr*, clang::Decl*, unsigned int, int)':
/usr/include/clang/AST/ExprCXX.h:4343:46: error: 'RefParam' was not declared in this scope
 4343 |         AssociatedDeclAndRef(AssociatedDecl, RefParam), Index(Index),
      |                                              ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4344:31: error: invalid type argument of unary '*' (have 'unsigned int')
 4344 |         PackIndex(PackIndex ? *PackIndex + 1 : 0) {
      |                               ^~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>'
/usr/include/clang/AST/ExprCXX.h:4567:63:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>':
/usr/include/clang/AST/ExprCXX.h:4567:63:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4693:20: error: 'std::optional' has not been declared
 4693 |               std::optional<unsigned> NumExpansions)
      |                    ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4693:28: error: expected ',' or '...' before '<' token
 4693 |               std::optional<unsigned> NumExpansions)
      |                            ^
/usr/include/clang/AST/ExprCXX.h:4730:8: error: 'optional' in namespace 'std' does not name a template type
 4730 |   std::optional<unsigned> getNumExpansions() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4730:3: note: 'std::optional' is only available from C++17 onwards
 4730 |   std::optional<unsigned> getNumExpansions() const {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::CXXFoldExpr::CXXFoldExpr(clang::QualType, clang::UnresolvedLookupExpr*, clang::SourceLocation, clang::Expr*, clang::BinaryOperatorKind, clang::SourceLocation, clang::Expr*, clang::SourceLocation, int)':
/usr/include/clang/AST/ExprCXX.h:4696:39: error: invalid type argument of unary '*' (have 'unsigned int')
 4696 |         NumExpansions(NumExpansions ? *NumExpansions + 1 : 0), Opcode(Opcode) {
      |                                       ^~~~~~~~~~~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getInitExprs()':
/usr/include/clang/AST/ExprCXX.h:4837:20: error: missing template arguments before '(' token
 4837 |     return ArrayRef(getTrailingObjects<Expr *>(), NumExprs);
      |                    ^
/usr/include/clang/AST/ExprCXX.h: In member function 'const llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getInitExprs() const':
/usr/include/clang/AST/ExprCXX.h:4841:20: error: missing template arguments before '(' token
 4841 |     return ArrayRef(getTrailingObjects<Expr *>(), NumExprs);
      |                    ^
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getUserSpecifiedInitExprs()':
/usr/include/clang/AST/ExprCXX.h:4845:20: error: missing template arguments before '(' token
 4845 |     return ArrayRef(getTrailingObjects<Expr *>(), NumUserSpecifiedExprs);
      |                    ^
/usr/include/clang/AST/ExprCXX.h: In member function 'const llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getUserSpecifiedInitExprs() const':
/usr/include/clang/AST/ExprCXX.h:4849:20: error: missing template arguments before '(' token
 4849 |     return ArrayRef(getTrailingObjects<Expr *>(), NumUserSpecifiedExprs);
      |                    ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/ExprConcepts.h:216:66:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/ExprConcepts.h:216:66:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
/usr/include/clang/AST/ExprConcepts.h:336:56:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/clang/AST/ExprConcepts.h:336:56:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
/usr/include/clang/AST/ExprConcepts.h:283:33:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/clang/AST/ExprConcepts.h:283:33:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:29:
/usr/include/clang/AST/ExprObjC.h: At global scope:
/usr/include/clang/AST/ExprObjC.h:274:8: error: 'optional' in namespace 'std' does not name a template type
  274 |   std::optional<unsigned> NumExpansions;
      |        ^~~~~~~~
/usr/include/clang/AST/ExprObjC.h:274:3: note: 'std::optional' is only available from C++17 onwards
  274 |   std::optional<unsigned> NumExpansions;
      |   ^~~
/usr/include/clang/AST/ExprObjC.h: In member function 'clang::ObjCDictionaryElement clang::ObjCDictionaryLiteral::getKeyValueElement(unsigned int) const':
/usr/include/clang/AST/ExprObjC.h:365:42: error: 'nullopt' is not a member of 'std'
  365 |                                     std::nullopt};
      |                                          ^~~~~~~
/usr/include/clang/AST/ExprObjC.h:365:42: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/ExprObjC.h:365:49: error: too many initializers for 'clang::ObjCDictionaryElement'
  365 |                                     std::nullopt};
      |                                                 ^
/usr/include/clang/AST/ExprObjC.h:371:16: error: 'struct clang::ObjCDictionaryElement' has no member named 'NumExpansions'
  371 |         Result.NumExpansions = Expansion.NumExpansionsPlusOne - 1;
      |                ^~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>'
/usr/include/clang/AST/ExprObjC.h:645:65:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>':
/usr/include/clang/AST/ExprObjC.h:645:65:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprObjC.h: In member function 'clang::SourceLocation clang::ObjCMessageExpr::getSelectorLoc(unsigned int) const':
/usr/include/clang/AST/ExprObjC.h:1420:25: error: missing template arguments before '(' token
 1420 |           llvm::ArrayRef(const_cast<Expr **>(getArgs()), getNumArgs()),
      |                         ^
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:30:
/usr/include/clang/AST/ExprOpenMP.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::OMPArrayShapingExpr::getDimensions() const':
/usr/include/clang/AST/ExprOpenMP.h:205:26: error: missing template arguments before '(' token
  205 |     return llvm::ArrayRef(getTrailingObjects<Expr *>(), NumDims);
      |                          ^
/usr/include/clang/AST/ExprOpenMP.h: In member function 'llvm::ArrayRef<clang::SourceRange> clang::OMPArrayShapingExpr::getBracketsRanges() const':
/usr/include/clang/AST/ExprOpenMP.h:210:26: error: missing template arguments before '(' token
  210 |     return llvm::ArrayRef(getTrailingObjects<SourceRange>(), NumDims);
      |                          ^
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:37:
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::OMPClause*> clang::OMPExecutableDirective::getClauses()':
/usr/include/clang/AST/StmtOpenMP.h:280:19: error: 'nullopt' is not a member of 'std'
  280 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/StmtOpenMP.h:280:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/StmtOpenMP.h: In static member function 'static llvm::iterator_range<clang::OMPExecutableDirective::used_clauses_child_iterator> clang::OMPExecutableDirective::used_clauses_children(llvm::ArrayRef<clang::OMPClause*>)':
/usr/include/clang/AST/StmtOpenMP.h:404:36: error: expected primary-expression before '(' token
  404 |         used_clauses_child_iterator(llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                                    ^
/usr/include/clang/AST/StmtOpenMP.h:404:51: error: missing template arguments before '(' token
  404 |         used_clauses_child_iterator(llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                                                   ^
/usr/include/clang/AST/StmtOpenMP.h:404:78: error: could not convert '{clang::OMPExecutableDirective::used_clauses_child_iterator(Clauses), <expression error>}' from '<brace-enclosed initializer list>' to 'llvm::iterator_range<clang::OMPExecutableDirective::used_clauses_child_iterator>'
  404 |         used_clauses_child_iterator(llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                                                                              ^
      |                                                                              |
      |                                                                              <brace-enclosed initializer list>
/usr/include/clang/AST/StmtOpenMP.h: In static member function 'static llvm::iterator_range<clang::OMPExecutableDirective::specific_clause_iterator<SpecificClause> > clang::OMPExecutableDirective::getClausesOfKind(llvm::ArrayRef<clang::OMPClause*>)':
/usr/include/clang/AST/StmtOpenMP.h:448:53: error: expected primary-expression before '(' token
  448 |             specific_clause_iterator<SpecificClause>(
      |                                                     ^
/usr/include/clang/AST/StmtOpenMP.h:449:31: error: missing template arguments before '(' token
  449 |                 llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                               ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::ArrayRef<clang::OMPClause*> clang::OMPExecutableDirective::clauses() const':
/usr/include/clang/AST/StmtOpenMP.h:575:19: error: 'nullopt' is not a member of 'std'
  575 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/StmtOpenMP.h:575:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getCounters()':
/usr/include/clang/AST/StmtOpenMP.h:1070:33: error: missing template arguments before '(' token
 1070 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getPrivateCounters()':
/usr/include/clang/AST/StmtOpenMP.h:1078:33: error: missing template arguments before '(' token
 1078 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getInits()':
/usr/include/clang/AST/StmtOpenMP.h:1086:33: error: missing template arguments before '(' token
 1086 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getUpdates()':
/usr/include/clang/AST/StmtOpenMP.h:1094:33: error: missing template arguments before '(' token
 1094 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getFinals()':
/usr/include/clang/AST/StmtOpenMP.h:1102:33: error: missing template arguments before '(' token
 1102 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getDependentCounters()':
/usr/include/clang/AST/StmtOpenMP.h:1110:33: error: missing template arguments before '(' token
 1110 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getDependentInits()':
/usr/include/clang/AST/StmtOpenMP.h:1118:33: error: missing template arguments before '(' token
 1118 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getFinalsConditions()':
/usr/include/clang/AST/StmtOpenMP.h:1126:33: error: missing template arguments before '(' token
 1126 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
In file included from /usr/include/clang/Basic/FileEntry.h:17,
                 from /usr/include/clang/Basic/SourceManager.h:38,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/AggregateToScalar.cpp:21:
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:35:34: error: invalid use of '::'
   35 |   constexpr CustomizableOptional(std::nullopt_t) {}
      |                                  ^~~
/usr/include/clang/Basic/CustomizableOptional.h:35:51: error: expected ';' at end of member declaration
   35 |   constexpr CustomizableOptional(std::nullopt_t) {}
      |                                                   ^
      |                                                    ;
/usr/include/clang/Basic/CustomizableOptional.h:45:49: error: expected ')' before ',' token
   45 |   constexpr CustomizableOptional(std::in_place_t, ArgTypes &&...Args)
      |                                 ~               ^
      |                                                 )
/usr/include/clang/Basic/CustomizableOptional.h:49:45: error: 'optional' in namespace 'std' does not name a template type
   49 |   constexpr CustomizableOptional(const std::optional<T> &y)
      |                                             ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:49:40: note: 'std::optional' is only available from C++17 onwards
   49 |   constexpr CustomizableOptional(const std::optional<T> &y)
      |                                        ^~~
/usr/include/clang/Basic/CustomizableOptional.h:49:53: error: expected ',' or '...' before '<' token
   49 |   constexpr CustomizableOptional(const std::optional<T> &y)
      |                                                     ^
/usr/include/clang/Basic/CustomizableOptional.h:51:47: error: expected ')' before '<' token
   51 |   constexpr CustomizableOptional(std::optional<T> &&y)
      |                                 ~             ^
      |                                               )
/usr/include/clang/Basic/CustomizableOptional.h:102:26: error: 'optional' in namespace 'std' does not name a template type
  102 |   explicit operator std::optional<T> &() const & {
      |                          ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:102:21: note: 'std::optional' is only available from C++17 onwards
  102 |   explicit operator std::optional<T> &() const & {
      |                     ^~~
/usr/include/clang/Basic/CustomizableOptional.h:105:26: error: 'optional' in namespace 'std' does not name a template type
  105 |   explicit operator std::optional<T> &&() const && {
      |                          ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:105:21: note: 'std::optional' is only available from C++17 onwards
  105 |   explicit operator std::optional<T> &&() const && {
      |                     ^~~
/usr/include/clang/Basic/CustomizableOptional.h: In constructor 'constexpr clang::CustomizableOptional<T>::CustomizableOptional(const T&)':
/usr/include/clang/Basic/CustomizableOptional.h:37:61: error: 'in_place' is not a member of 'std'
   37 |   constexpr CustomizableOptional(const T &y) : Storage(std::in_place, y) {}
      |                                                             ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:37:61: note: 'std::in_place' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: In constructor 'constexpr clang::CustomizableOptional<T>::CustomizableOptional(T&&)':
/usr/include/clang/Basic/CustomizableOptional.h:41:22: error: 'in_place' is not a member of 'std'
   41 |       : Storage(std::in_place, std::move(y)) {}
      |                      ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:41:22: note: 'std::in_place' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: In constructor 'constexpr clang::CustomizableOptional<T>::CustomizableOptional(int)':
/usr/include/clang/Basic/CustomizableOptional.h:50:30: error: 'y' was not declared in this scope
   50 |       : CustomizableOptional(y ? *y : CustomizableOptional()) {}
      |                              ^
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:111:59: error: expected constructor, destructor, or type conversion before ';' token
  111 | CustomizableOptional(const T &) -> CustomizableOptional<T>;
      |                                                           ^
/usr/include/clang/Basic/CustomizableOptional.h:159:66: error: 'std::nullopt_t' has not been declared
  159 | constexpr bool operator==(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:164:16: error: declaration of 'operator==' as non-function
  164 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:164:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  164 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:164:43: error: expected primary-expression before 'const'
  164 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:169:66: error: 'std::nullopt_t' has not been declared
  169 | constexpr bool operator!=(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator!=(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:170:22: error: 'nullopt' is not a member of 'std'
  170 |   return !(X == std::nullopt);
      |                      ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:170:22: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:174:16: error: declaration of 'operator!=' as non-function
  174 | constexpr bool operator!=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:174:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  174 | constexpr bool operator!=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:174:43: error: expected primary-expression before 'const'
  174 | constexpr bool operator!=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:179:64: error: 'std::nullopt_t' has not been declared
  179 | constexpr bool operator<(const CustomizableOptional<T> &, std::nullopt_t) {
      |                                                                ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:184:16: error: declaration of 'operator<' as non-function
  184 | constexpr bool operator<(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:184:31: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  184 | constexpr bool operator<(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                               ^~~~~~~~~
      |                               nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:184:42: error: expected primary-expression before 'const'
  184 | constexpr bool operator<(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                          ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:189:66: error: 'std::nullopt_t' has not been declared
  189 | constexpr bool operator<=(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator<=(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:190:17: error: 'nullopt' is not a member of 'std'
  190 |   return !(std::nullopt < X);
      |                 ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:190:17: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:194:16: error: declaration of 'operator<=' as non-function
  194 | constexpr bool operator<=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:194:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  194 | constexpr bool operator<=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:194:43: error: expected primary-expression before 'const'
  194 | constexpr bool operator<=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:199:65: error: 'std::nullopt_t' has not been declared
  199 | constexpr bool operator>(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                 ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator>(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:200:15: error: 'nullopt' is not a member of 'std'
  200 |   return std::nullopt < X;
      |               ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:200:15: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:204:16: error: declaration of 'operator>' as non-function
  204 | constexpr bool operator>(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:204:31: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  204 | constexpr bool operator>(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                               ^~~~~~~~~
      |                               nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:204:42: error: expected primary-expression before 'const'
  204 | constexpr bool operator>(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                          ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:209:66: error: 'std::nullopt_t' has not been declared
  209 | constexpr bool operator>=(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator>=(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:210:15: error: 'nullopt' is not a member of 'std'
  210 |   return std::nullopt <= X;
      |               ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:210:15: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:214:16: error: declaration of 'operator>=' as non-function
  214 | constexpr bool operator>=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:214:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  214 | constexpr bool operator>=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:214:43: error: expected primary-expression before 'const'
  214 | constexpr bool operator>=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
In file included from /usr/include/clang/Basic/FileEntry.h:18:
/usr/include/clang/Basic/DirectoryEntry.h:134:51: error: expected ')' before ',' token
  134 |   explicit MapEntryOptionalStorage(std::in_place_t, ArgTypes &&...Args)
      |                                   ~               ^
      |                                                   )
/usr/include/clang/Basic/DirectoryEntry.h:180:43: error: expected ')' before ',' token
  180 |   explicit OptionalStorage(std::in_place_t, ArgTypes &&...Args)
      |                           ~               ^
      |                                           )
/usr/include/clang/Basic/DirectoryEntry.h:181:38: error: expected unqualified-id before ',' token
  181 |       : StorageImpl(std::in_place_t{}, std::forward<ArgTypes>(Args)...) {}
      |                                      ^
/usr/include/clang/Basic/DirectoryEntry.h:269:56: error: invalid use of '::'
  269 |   OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr(std::nullopt_t) {}
      |                                                        ^~~
/usr/include/clang/Basic/DirectoryEntry.h:269:73: error: expected ';' at end of member declaration
  269 |   OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr(std::nullopt_t) {}
      |                                                                         ^
      |                                                                          ;
/usr/include/clang/Basic/DirectoryEntry.h:277:18: error: 'std::nullopt_t' has not been declared
  277 |   operator=(std::nullopt_t) {
      |                  ^~~~~~~~~
/usr/include/clang/Basic/DirectoryEntry.h: In member function 'clang::OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr& clang::OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr::operator=(int)':
/usr/include/clang/Basic/DirectoryEntry.h:278:47: error: 'nullopt' is not a member of 'std'
  278 |     OptionalDirectoryEntryRef::operator=(std::nullopt);
      |                                               ^~~~~~~
/usr/include/clang/Basic/DirectoryEntry.h:278:47: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::FileEntry*, const void*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::FileEntry*, const void*>'
/usr/include/clang/Basic/FileEntry.h:124:51:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::FileEntry*, const void*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::FileEntry*, const void*>':
/usr/include/clang/Basic/FileEntry.h:124:51:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::FileEntry*, const void*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/Basic/FileEntry.h: At global scope:
/usr/include/clang/Basic/FileEntry.h:221:43: error: expected ')' before ',' token
  221 |   explicit OptionalStorage(std::in_place_t, ArgTypes &&...Args)
      |                           ~               ^
      |                                           )
/usr/include/clang/Basic/FileEntry.h:222:38: error: expected unqualified-id before ',' token
  222 |       : StorageImpl(std::in_place_t{}, std::forward<ArgTypes>(Args)...) {}
      |                                      ^
/usr/include/clang/Basic/FileEntry.h:305:46: error: invalid use of '::'
  305 |   OptionalFileEntryRefDegradesToFileEntryPtr(std::nullopt_t) {}
      |                                              ^~~
/usr/include/clang/Basic/FileEntry.h:305:63: error: expected ';' at end of member declaration
  305 |   OptionalFileEntryRefDegradesToFileEntryPtr(std::nullopt_t) {}
      |                                                               ^
      |                                                                ;
/usr/include/clang/Basic/FileEntry.h:311:62: error: 'std::nullopt_t' has not been declared
  311 |   OptionalFileEntryRefDegradesToFileEntryPtr &operator=(std::nullopt_t) {
      |                                                              ^~~~~~~~~
/usr/include/clang/Basic/FileEntry.h: In member function 'clang::OptionalFileEntryRefDegradesToFileEntryPtr& clang::OptionalFileEntryRefDegradesToFileEntryPtr::operator=(int)':
/usr/include/clang/Basic/FileEntry.h:312:42: error: 'nullopt' is not a member of 'std'
  312 |     OptionalFileEntryRef::operator=(std::nullopt);
      |                                          ^~~~~~~
/usr/include/clang/Basic/FileEntry.h:312:42: note: 'std::nullopt' is only available from C++17 onwards
In file included from /usr/include/llvm/Support/FormatProviders.h:21,
                 from /usr/include/llvm/Support/Chrono.h:13,
                 from /usr/include/llvm/Support/FileSystem.h:33,
                 from /usr/include/clang/Basic/FileManager.h:29,
                 from /usr/include/clang/Basic/SourceManager.h:39:
/usr/include/llvm/Support/NativeFormatting.h: At global scope:
/usr/include/llvm/Support/NativeFormatting.h:41:21: error: 'std::optional' has not been declared
   41 |                std::optional<size_t> Width = std::nullopt);
      |                     ^~~~~~~~
/usr/include/llvm/Support/NativeFormatting.h:41:29: error: expected ',' or '...' before '<' token
   41 |                std::optional<size_t> Width = std::nullopt);
      |                             ^
/usr/include/llvm/Support/NativeFormatting.h:43:24: error: 'std::optional' has not been declared
   43 |                   std::optional<size_t> Precision = std::nullopt);
      |                        ^~~~~~~~
/usr/include/llvm/Support/NativeFormatting.h:43:32: error: expected ',' or '...' before '<' token
   43 |                   std::optional<size_t> Precision = std::nullopt);
      |                                ^
/usr/include/llvm/Support/FormatProviders.h:32:17: error: 'is_one_of' was not declared in this scope; did you mean 'none_of'?
   32 |           bool, is_one_of<T, uint8_t, int16_t, uint16_t, int32_t, uint32_t,
      |                 ^~~~~~~~~
      |                 none_of
/usr/include/llvm/Support/FormatProviders.h:34:56: error: wrong number of template arguments (15, should be 2)
   34 |                           long long, unsigned long long>::value> {};
      |                                                        ^
/usr/include/c++/13/type_traits:62:12: note: provided for 'template<class _Tp, _Tp __v> struct std::integral_constant'
   62 |     struct integral_constant
      |            ^~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:34:57: error: expected '{' before '::' token
   34 |                           long long, unsigned long long>::value> {};
      |                                                         ^~
/usr/include/llvm/Support/FormatProviders.h:43:37: error: 'is_one_of' was not declared in this scope; did you mean 'none_of'?
   43 |                                     is_one_of<T, char *, const char *>::value> {
      |                                     ^~~~~~~~~
      |                                     none_of
/usr/include/llvm/Support/FormatProviders.h:43:70: error: wrong number of template arguments (4, should be 2)
   43 |                                     is_one_of<T, char *, const char *>::value> {
      |                                                                      ^
/usr/include/c++/13/type_traits:62:12: note: provided for 'template<class _Tp, _Tp __v> struct std::integral_constant'
   62 |     struct integral_constant
      |            ^~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:43:71: error: expected '{' before '::' token
   43 |                                     is_one_of<T, char *, const char *>::value> {
      |                                                                       ^~
/usr/include/llvm/Support/FormatProviders.h:62:15: error: 'optional' in namespace 'std' does not name a template type
   62 |   static std::optional<size_t> parseNumericPrecision(StringRef Str) {
      |               ^~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:62:10: note: 'std::optional' is only available from C++17 onwards
   62 |   static std::optional<size_t> parseNumericPrecision(StringRef Str) {
      |          ^~~
/usr/include/llvm/Support/FormatProviders.h: In instantiation of 'struct llvm::detail::use_pointer_formatter<std::__cxx11::basic_string<char> >':
/usr/include/llvm/Support/FormatProviders.h:219:33:   recursively required by substitution of 'template<class T> struct llvm::format_provider<T, typename std::enable_if<llvm::detail::use_pointer_formatter<T>::value, void>::type> [with T = std::__cxx11::basic_string<char>]'
/usr/include/llvm/Support/FormatProviders.h:219:33:   required from here
/usr/include/llvm/Support/FormatProviders.h:54:63: error: incomplete type 'llvm::detail::is_cstring<std::__cxx11::basic_string<char> >' used in nested name specifier
   54 |                                               !is_cstring<T>::value> {};
      |                                                               ^~~~~
/usr/include/llvm/Support/FormatProviders.h: In instantiation of 'struct llvm::detail::use_pointer_formatter<int>':
/usr/include/llvm/Support/FormatProviders.h:241:27:   recursively required by substitution of 'template<class T> struct llvm::format_provider<T, typename std::enable_if<llvm::detail::use_pointer_formatter<T>::value, void>::type> [with T = int]'
/usr/include/llvm/Support/FormatProviders.h:241:27:   required from here
/usr/include/llvm/Support/FormatProviders.h:54:63: error: incomplete type 'llvm::detail::is_cstring<int>' used in nested name specifier
/usr/include/llvm/Support/FormatProviders.h: In static member function 'static void llvm::format_provider<T, typename std::enable_if<llvm::detail::use_char_formatter<T>::value, void>::type>::format(const char&, llvm::raw_ostream&, llvm::StringRef)':
/usr/include/llvm/Support/FormatProviders.h:241:29: error: 'format' is not a member of 'llvm::format_provider<int>'
  241 |       format_provider<int>::format(X, Stream, Style);
      |                             ^~~~~~
/usr/include/llvm/Support/FormatProviders.h: In static member function 'static void llvm::format_provider<T, typename std::enable_if<llvm::detail::use_double_formatter<T>::value, void>::type>::format(const T&, llvm::raw_ostream&, llvm::StringRef)':
/usr/include/llvm/Support/FormatProviders.h:315:10: error: 'optional' is not a member of 'std'
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |          ^~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:315:10: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/FormatProviders.h:315:25: error: expected primary-expression before '>' token
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |                         ^
/usr/include/llvm/Support/FormatProviders.h:315:27: error: 'Precision' was not declared in this scope
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |                           ^~~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:315:39: error: there are no arguments to 'parseNumericPrecision' that depend on a template parameter, so a declaration of 'parseNumericPrecision' must be available [-fpermissive]
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |                                       ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/Error.h:18,
                 from /usr/include/llvm/Support/FileSystem.h:34:
/usr/include/llvm/ADT/StringExtras.h: In function 'std::string llvm::toString(const APInt&, unsigned int, bool, bool)':
/usr/include/llvm/ADT/StringExtras.h:322:29: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef)'
  322 |   return std::string(S.str());
      |                             ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/ADT/StringExtras.h:322:29: note:   candidate expects 3 arguments, 1 provided
  322 |   return std::string(S.str());
      |                             ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/llvm/Support/Error.h:26:
/usr/include/llvm/Support/Format.h: At global scope:
/usr/include/llvm/Support/Format.h:83:22: error: 'is_scalar_v' is not a member of 'std'; did you mean 'is_scalar'?
   83 |   static_assert(std::is_scalar_v<Arg>,
      |                      ^~~~~~~~~~~
      |                      is_scalar
/usr/include/llvm/Support/Format.h:83:37: error: expected primary-expression before '>' token
   83 |   static_assert(std::is_scalar_v<Arg>,
      |                                     ^
/usr/include/llvm/Support/Format.h:83:38: error: expected primary-expression before ',' token
   83 |   static_assert(std::is_scalar_v<Arg>,
      |                                      ^
/usr/include/llvm/Support/Format.h:219:8: error: 'optional' in namespace 'std' does not name a template type
  219 |   std::optional<uint64_t> FirstByteOffset;
      |        ^~~~~~~~
/usr/include/llvm/Support/Format.h:219:3: note: 'std::optional' is only available from C++17 onwards
  219 |   std::optional<uint64_t> FirstByteOffset;
      |   ^~~
/usr/include/llvm/Support/Format.h:228:57: error: 'std::optional' has not been declared
  228 |   FormattedBytes(ArrayRef<uint8_t> B, uint32_t IL, std::optional<uint64_t> O,
      |                                                         ^~~~~~~~
/usr/include/llvm/Support/Format.h:228:65: error: expected ',' or '...' before '<' token
  228 |   FormattedBytes(ArrayRef<uint8_t> B, uint32_t IL, std::optional<uint64_t> O,
      |                                                                 ^
/usr/include/llvm/Support/Format.h: In constructor 'llvm::FormattedBytes::FormattedBytes(llvm::ArrayRef<unsigned char>, uint32_t, int)':
/usr/include/llvm/Support/Format.h:230:19: error: class 'llvm::FormattedBytes' does not have any field named 'FirstByteOffset'
  230 |       : Bytes(B), FirstByteOffset(O), IndentLevel(IL), NumPerLine(NPL),
      |                   ^~~~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:230:35: error: 'O' was not declared in this scope
  230 |       : Bytes(B), FirstByteOffset(O), IndentLevel(IL), NumPerLine(NPL),
      |                                   ^
/usr/include/llvm/Support/Format.h:230:67: error: 'NPL' was not declared in this scope
  230 |       : Bytes(B), FirstByteOffset(O), IndentLevel(IL), NumPerLine(NPL),
      |                                                                   ^~~
/usr/include/llvm/Support/Format.h:231:23: error: 'BGS' was not declared in this scope
  231 |         ByteGroupSize(BGS), Upper(U), ASCII(A) {
      |                       ^~~
/usr/include/llvm/Support/Format.h:231:35: error: 'U' was not declared in this scope
  231 |         ByteGroupSize(BGS), Upper(U), ASCII(A) {
      |                                   ^
/usr/include/llvm/Support/Format.h:231:45: error: 'A' was not declared in this scope
  231 |         ByteGroupSize(BGS), Upper(U), ASCII(A) {
      |                                             ^
/usr/include/llvm/Support/Format.h: At global scope:
/usr/include/llvm/Support/Format.h:240:19: error: 'std::optional' has not been declared
  240 |              std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                   ^~~~~~~~
/usr/include/llvm/Support/Format.h:240:27: error: expected ',' or '...' before '<' token
  240 |              std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                           ^
/usr/include/llvm/Support/Format.h: In function 'llvm::FormattedBytes llvm::format_bytes(ArrayRef<unsigned char>, int)':
/usr/include/llvm/Support/Format.h:243:32: error: 'IndentLevel' was not declared in this scope
  243 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                ^~~~~~~~~~~
/usr/include/llvm/Support/Format.h:243:45: error: 'FirstByteOffset' was not declared in this scope
  243 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                             ^~~~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:243:62: error: 'NumPerLine' was not declared in this scope
  243 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                                              ^~~~~~~~~~
/usr/include/llvm/Support/Format.h:244:25: error: 'ByteGroupSize' was not declared in this scope
  244 |                         ByteGroupSize, Upper, false);
      |                         ^~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:244:40: error: 'Upper' was not declared in this scope; did you mean 'llvm::HexPrintStyle::Upper'?
  244 |                         ByteGroupSize, Upper, false);
      |                                        ^~~~~
      |                                        llvm::HexPrintStyle::Upper
/usr/include/llvm/Support/NativeFormatting.h:22:28: note: 'llvm::HexPrintStyle::Upper' declared here
   22 | enum class HexPrintStyle { Upper, Lower, PrefixUpper, PrefixLower };
      |                            ^~~~~
/usr/include/llvm/Support/Format.h: At global scope:
/usr/include/llvm/Support/Format.h:249:30: error: 'std::optional' has not been declared
  249 |                         std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                              ^~~~~~~~
/usr/include/llvm/Support/Format.h:249:38: error: expected ',' or '...' before '<' token
  249 |                         std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                                      ^
/usr/include/llvm/Support/Format.h: In function 'llvm::FormattedBytes llvm::format_bytes_with_ascii(ArrayRef<unsigned char>, int)':
/usr/include/llvm/Support/Format.h:252:32: error: 'IndentLevel' was not declared in this scope
  252 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                ^~~~~~~~~~~
/usr/include/llvm/Support/Format.h:252:45: error: 'FirstByteOffset' was not declared in this scope
  252 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                             ^~~~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:252:62: error: 'NumPerLine' was not declared in this scope
  252 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                                              ^~~~~~~~~~
/usr/include/llvm/Support/Format.h:253:25: error: 'ByteGroupSize' was not declared in this scope
  253 |                         ByteGroupSize, Upper, true);
      |                         ^~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:253:40: error: 'Upper' was not declared in this scope; did you mean 'llvm::HexPrintStyle::Upper'?
  253 |                         ByteGroupSize, Upper, true);
      |                                        ^~~~~
      |                                        llvm::HexPrintStyle::Upper
/usr/include/llvm/Support/NativeFormatting.h:22:28: note: 'llvm::HexPrintStyle::Upper' declared here
   22 | enum class HexPrintStyle { Upper, Lower, PrefixUpper, PrefixLower };
      |                            ^~~~~
/usr/include/llvm/Support/Error.h: At global scope:
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:59: error: template argument 1 is invalid
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                                           ^
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:60: error: template argument 1 is invalid
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                                            ^~
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:60: error: template argument 1 is invalid
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                                            ^~
/usr/include/llvm/Support/Error.h:512:17: error: 'std::enable_if_t' is not a type
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                 ^~~~~~~~~~~
/usr/include/llvm/Support/Error.h:512:28: error: expected ',' or '...' before '<' token
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                            ^
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:59: error: template argument 1 is invalid
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                           ^
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:60: error: template argument 1 is invalid
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                            ^~
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:60: error: template argument 1 is invalid
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                            ^~
/usr/include/llvm/Support/Error.h:530:17: error: 'std::enable_if_t' is not a type
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                 ^~~~~~~~~~~
/usr/include/llvm/Support/Error.h:530:28: error: expected ',' or '...' before '<' token
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                            ^
/usr/include/llvm/Support/Error.h:539:30: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                              ^~~~~~~~~~~~~~~~
      |                              is_convertible
/usr/include/llvm/Support/Error.h:539:55: error: template argument 1 is invalid
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                       ^
/usr/include/llvm/Support/Error.h:539:30: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                              ^~~~~~~~~~~~~~~~
      |                              is_convertible
/usr/include/llvm/Support/Error.h:539:56: error: template argument 1 is invalid
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                        ^~
/usr/include/llvm/Support/Error.h:539:30: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                              ^~~~~~~~~~~~~~~~
      |                              is_convertible
/usr/include/llvm/Support/Error.h:539:56: error: template argument 1 is invalid
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                        ^~
/usr/include/llvm/Support/Error.h:539:12: error: 'std::enable_if_t' is not a type
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |            ^~~~~~~~~~~
/usr/include/llvm/Support/Error.h:539:23: error: expected ',' or '...' before '<' token
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                       ^
/usr/include/llvm/Support/Error.h:537:12: error: 'template<class T> template<class OtherT> llvm::Expected<T>::Expected(llvm::Expected<OtherT>&&, int)' cannot be overloaded with 'template<class T> template<class OtherT> llvm::Expected<T>::Expected(llvm::Expected<OtherT>&&, int)'
  537 |   explicit Expected(
      |            ^~~~~~~~
/usr/include/llvm/Support/Error.h:529:3: note: previous declaration 'template<class T> template<class OtherT> llvm::Expected<T>::Expected(llvm::Expected<OtherT>&&, int)'
  529 |   Expected(Expected<OtherT> &&Other,
      |   ^~~~~~~~
/usr/include/llvm/Support/Error.h:1054:28: error: 'optional' in namespace 'std' does not name a template type
 1054 | template <typename T> std::optional<T> expectedToOptional(Expected<T> &&E) {
      |                            ^~~~~~~~
/usr/include/llvm/Support/Error.h:1054:23: note: 'std::optional' is only available from C++17 onwards
 1054 | template <typename T> std::optional<T> expectedToOptional(Expected<T> &&E) {
      |                       ^~~
/usr/include/llvm/Support/Error.h:1061:28: error: 'optional' in namespace 'std' does not name a template type
 1061 | template <typename T> std::optional<T> expectedToStdOptional(Expected<T> &&E) {
      |                            ^~~~~~~~
/usr/include/llvm/Support/Error.h:1061:23: note: 'std::optional' is only available from C++17 onwards
 1061 | template <typename T> std::optional<T> expectedToStdOptional(Expected<T> &&E) {
      |                       ^~~
/usr/include/llvm/Support/Error.h:1301:34: error: 'std::optional' has not been declared
 1301 |   FileError(const Twine &F, std::optional<size_t> LineNum,
      |                                  ^~~~~~~~
/usr/include/llvm/Support/Error.h:1301:42: error: expected ',' or '...' before '<' token
 1301 |   FileError(const Twine &F, std::optional<size_t> LineNum,
      |                                          ^
/usr/include/llvm/Support/Error.h:1309:43: error: 'std::optional' has not been declared
 1309 |   static Error build(const Twine &F, std::optional<size_t> Line, Error E) {
      |                                           ^~~~~~~~
/usr/include/llvm/Support/Error.h:1309:51: error: expected ',' or '...' before '<' token
 1309 |   static Error build(const Twine &F, std::optional<size_t> Line, Error E) {
      |                                                   ^
/usr/include/llvm/Support/Error.h:1321:8: error: 'optional' in namespace 'std' does not name a template type
 1321 |   std::optional<size_t> Line;
      |        ^~~~~~~~
/usr/include/llvm/Support/Error.h:1321:3: note: 'std::optional' is only available from C++17 onwards
 1321 |   std::optional<size_t> Line;
      |   ^~~
/usr/include/llvm/Support/Error.h: In member function 'virtual void llvm::FileError::log(llvm::raw_ostream&) const':
/usr/include/llvm/Support/Error.h:1279:9: error: 'Line' was not declared in this scope
 1279 |     if (Line)
      |         ^~~~
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/llvm/Support/Error.h:28:
/usr/include/llvm/Support/Error.h: In constructor 'llvm::FileError::FileError(const llvm::Twine&, int)':
/usr/include/llvm/Support/Error.h:1303:5: error: 'E' was not declared in this scope
 1303 |     assert(E && "Cannot create FileError from Error success value.");
      |     ^~~~~~
/usr/include/llvm/Support/Error.h:1306:5: error: 'Line' was not declared in this scope
 1306 |     Line = std::move(LineNum);
      |     ^~~~
/usr/include/llvm/Support/Error.h:1306:22: error: 'LineNum' was not declared in this scope
 1306 |     Line = std::move(LineNum);
      |                      ^~~~~~~
/usr/include/llvm/Support/Error.h: In static member function 'static llvm::Error llvm::FileError::build(const llvm::Twine&, int)':
/usr/include/llvm/Support/Error.h:1311:31: error: 'E' was not declared in this scope
 1311 |     handleAllErrors(std::move(E),
      |                               ^
/usr/include/llvm/Support/Error.h:1317:53: error: 'Line' was not declared in this scope
 1317 |         std::unique_ptr<FileError>(new FileError(F, Line, std::move(Payload))));
      |                                                     ^~~~
/usr/include/llvm/Support/Error.h: In function 'llvm::Error llvm::createFileError(const Twine&, Error)':
/usr/include/llvm/Support/Error.h:1328:35: error: 'optional' is not a member of 'std'
 1328 |   return FileError::build(F, std::optional<size_t>(), std::move(E));
      |                                   ^~~~~~~~
/usr/include/llvm/Support/Error.h:1328:35: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Error.h:1328:50: error: expected primary-expression before '>' token
 1328 |   return FileError::build(F, std::optional<size_t>(), std::move(E));
      |                                                  ^
/usr/include/llvm/Support/Error.h:1328:52: error: expected primary-expression before ')' token
 1328 |   return FileError::build(F, std::optional<size_t>(), std::move(E));
      |                                                    ^
/usr/include/llvm/Support/Error.h: In function 'llvm::Error llvm::createFileError(const Twine&, size_t, Error)':
/usr/include/llvm/Support/Error.h:1334:35: error: 'optional' is not a member of 'std'
 1334 |   return FileError::build(F, std::optional<size_t>(Line), std::move(E));
      |                                   ^~~~~~~~
/usr/include/llvm/Support/Error.h:1334:35: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Error.h:1334:50: error: expected primary-expression before '>' token
 1334 |   return FileError::build(F, std::optional<size_t>(Line), std::move(E));
      |                                                  ^
In file included from /usr/include/llvm/Support/SourceMgr.h:19,
                 from /usr/include/llvm/Support/VirtualFileSystem.h:26,
                 from /usr/include/clang/Basic/FileManager.h:30:
/usr/include/llvm/Support/MemoryBuffer.h: At global scope:
/usr/include/llvm/Support/MemoryBuffer.h:100:16: error: 'std::optional' has not been declared
  100 |           std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:100:24: error: expected ',' or '...' before '<' token
  100 |           std::optional<Align> Alignment = std::nullopt);
      |                        ^
/usr/include/llvm/Support/MemoryBuffer.h:114:25: error: 'std::optional' has not been declared
  114 |                    std::optional<Align> Alignment = std::nullopt);
      |                         ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:114:33: error: expected ',' or '...' before '<' token
  114 |                    std::optional<Align> Alignment = std::nullopt);
      |                                 ^
/usr/include/llvm/Support/MemoryBuffer.h:128:20: error: 'std::optional' has not been declared
  128 |               std::optional<Align> Alignment = std::nullopt);
      |                    ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:128:28: error: expected ',' or '...' before '<' token
  128 |               std::optional<Align> Alignment = std::nullopt);
      |                            ^
/usr/include/llvm/Support/MemoryBuffer.h:152:23: error: 'std::optional' has not been declared
  152 |                  std::optional<Align> Alignment = std::nullopt);
      |                       ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:152:31: error: expected ',' or '...' before '<' token
  152 |                  std::optional<Align> Alignment = std::nullopt);
      |                               ^
/usr/include/llvm/Support/MemoryBuffer.h:158:21: error: 'std::optional' has not been declared
  158 |                std::optional<Align> Alignment = std::nullopt);
      |                     ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:158:29: error: expected ',' or '...' before '<' token
  158 |                std::optional<Align> Alignment = std::nullopt);
      |                             ^
/usr/include/llvm/Support/MemoryBuffer.h:100:11: error: default argument missing for parameter 5 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getFile(const llvm::Twine&, bool, bool, bool, int)'
  100 |           std::optional<Align> Alignment = std::nullopt);
      |           ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:98:39: note: ...following parameter 2 which has a default argument
   98 |   getFile(const Twine &Filename, bool IsText = false,
      |                                  ~~~~~^~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:114:20: error: default argument missing for parameter 6 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getOpenFileSlice(llvm::sys::fs::file_t, const llvm::Twine&, uint64_t, int64_t, bool, int)'
  114 |                    std::optional<Align> Alignment = std::nullopt);
      |                    ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:113:41: note: ...following parameter 5 which has a default argument
  113 |                    int64_t Offset, bool IsVolatile = false,
      |                                    ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:128:15: error: default argument missing for parameter 6 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getOpenFile(llvm::sys::fs::file_t, const llvm::Twine&, uint64_t, bool, bool, int)'
  128 |               std::optional<Align> Alignment = std::nullopt);
      |               ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:127:20: note: ...following parameter 4 which has a default argument
  127 |               bool RequiresNullTerminator = true, bool IsVolatile = false,
      |               ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:152:18: error: default argument missing for parameter 4 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getFileOrSTDIN(const llvm::Twine&, bool, bool, int)'
  152 |                  std::optional<Align> Alignment = std::nullopt);
      |                  ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:150:46: note: ...following parameter 2 which has a default argument
  150 |   getFileOrSTDIN(const Twine &Filename, bool IsText = false,
      |                                         ~~~~~^~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:158:16: error: default argument missing for parameter 5 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getFileSlice(const llvm::Twine&, uint64_t, uint64_t, bool, int)'
  158 |                std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:157:21: note: ...following parameter 4 which has a default argument
  157 |                bool IsVolatile = false,
      |                ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:204:16: error: 'std::optional' has not been declared
  204 |           std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:204:24: error: expected ',' or '...' before '<' token
  204 |           std::optional<Align> Alignment = std::nullopt);
      |                        ^
/usr/include/llvm/Support/MemoryBuffer.h:210:21: error: 'std::optional' has not been declared
  210 |                std::optional<Align> Alignment = std::nullopt);
      |                     ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:210:29: error: expected ',' or '...' before '<' token
  210 |                std::optional<Align> Alignment = std::nullopt);
      |                             ^
/usr/include/llvm/Support/MemoryBuffer.h:220:30: error: 'std::optional' has not been declared
  220 |                         std::optional<Align> Alignment = std::nullopt);
      |                              ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:220:38: error: expected ',' or '...' before '<' token
  220 |                         std::optional<Align> Alignment = std::nullopt);
      |                                      ^
/usr/include/llvm/Support/MemoryBuffer.h:204:11: error: default argument missing for parameter 3 of 'static llvm::ErrorOr<std::unique_ptr<llvm::WritableMemoryBuffer> > llvm::WritableMemoryBuffer::getFile(const llvm::Twine&, bool, int)'
  204 |           std::optional<Align> Alignment = std::nullopt);
      |           ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:203:39: note: ...following parameter 2 which has a default argument
  203 |   getFile(const Twine &Filename, bool IsVolatile = false,
      |                                  ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:210:16: error: default argument missing for parameter 5 of 'static llvm::ErrorOr<std::unique_ptr<llvm::WritableMemoryBuffer> > llvm::WritableMemoryBuffer::getFileSlice(const llvm::Twine&, uint64_t, uint64_t, bool, int)'
  210 |                std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:209:21: note: ...following parameter 4 which has a default argument
  209 |                bool IsVolatile = false,
      |                ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:220:25: error: default argument missing for parameter 3 of 'static std::unique_ptr<llvm::WritableMemoryBuffer> llvm::WritableMemoryBuffer::getNewUninitMemBuffer(size_t, const llvm::Twine&, int)'
  220 |                         std::optional<Align> Alignment = std::nullopt);
      |                         ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:219:51: note: ...following parameter 2 which has a default argument
  219 |   getNewUninitMemBuffer(size_t Size, const Twine &BufferName = "",
      |                                      ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/SourceMgr.h:20:
/usr/include/llvm/Support/SMLoc.h:53:11: error: invalid use of '::'
   53 |   SMRange(std::nullopt_t) {}
      |           ^~~
/usr/include/llvm/Support/SMLoc.h:53:28: error: expected ';' at end of member declaration
   53 |   SMRange(std::nullopt_t) {}
      |                            ^
      |                             ;
/usr/include/llvm/Support/SourceMgr.h: In constructor 'llvm::SMDiagnostic::SMDiagnostic(llvm::StringRef, llvm::SourceMgr::DiagKind, llvm::StringRef)':
/usr/include/llvm/Support/SourceMgr.h:297:9: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |         ^~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/SourceMgr.h:297:9: note:   candidate expects 3 arguments, 1 provided
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |         ^~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/SourceMgr.h:297:66: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |                                                                  ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/SourceMgr.h:297:66: note:   candidate expects 3 arguments, 1 provided
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |                                                                  ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/VirtualFileSystem.h: At global scope:
/usr/include/llvm/Support/VirtualFileSystem.h:512:21: error: 'std::optional' has not been declared
  512 |                std::optional<uint32_t> User, std::optional<uint32_t> Group,
      |                     ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:512:29: error: expected ',' or '...' before '<' token
  512 |                std::optional<uint32_t> User, std::optional<uint32_t> Group,
      |                             ^
/usr/include/llvm/Support/VirtualFileSystem.h:536:21: error: 'std::optional' has not been declared
  536 |                std::optional<uint32_t> User = std::nullopt,
      |                     ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:536:29: error: expected ',' or '...' before '<' token
  536 |                std::optional<uint32_t> User = std::nullopt,
      |                             ^
/usr/include/llvm/Support/VirtualFileSystem.h:534:8: error: 'bool llvm::vfs::InMemoryFileSystem::addFile(const llvm::Twine&, time_t, std::unique_ptr<llvm::MemoryBuffer>, int)' cannot be overloaded with 'bool llvm::vfs::InMemoryFileSystem::addFile(const llvm::Twine&, time_t, std::unique_ptr<llvm::MemoryBuffer>, int)'
  534 |   bool addFile(const Twine &Path, time_t ModificationTime,
      |        ^~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:510:8: note: previous declaration 'bool llvm::vfs::InMemoryFileSystem::addFile(const llvm::Twine&, time_t, std::unique_ptr<llvm::MemoryBuffer>, int)'
  510 |   bool addFile(const Twine &Path, time_t ModificationTime,
      |        ^~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:567:24: error: 'std::optional' has not been declared
  567 |                   std::optional<uint32_t> User = std::nullopt,
      |                        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:567:32: error: expected ',' or '...' before '<' token
  567 |                   std::optional<uint32_t> User = std::nullopt,
      |                                ^
/usr/include/llvm/Support/VirtualFileSystem.h:579:26: error: 'std::optional' has not been declared
  579 |                     std::optional<uint32_t> User = std::nullopt,
      |                          ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:579:34: error: expected ',' or '...' before '<' token
  579 |                     std::optional<uint32_t> User = std::nullopt,
      |                                  ^
/usr/include/llvm/Support/VirtualFileSystem.h:882:10: error: 'optional' in namespace 'std' does not name a template type
  882 |     std::optional<std::string> ExternalRedirect;
      |          ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:882:5: note: 'std::optional' is only available from C++17 onwards
  882 |     std::optional<std::string> ExternalRedirect;
      |     ^~~
/usr/include/llvm/Support/VirtualFileSystem.h:891:10: error: 'optional' in namespace 'std' does not name a template type
  891 |     std::optional<StringRef> getExternalRedirect() const {
      |          ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:891:5: note: 'std::optional' is only available from C++17 onwards
  891 |     std::optional<StringRef> getExternalRedirect() const {
      |     ^~~
/usr/include/llvm/Support/VirtualFileSystem.h: In constructor 'llvm::vfs::RedirectingFileSystem::Entry::Entry(llvm::vfs::RedirectingFileSystem::EntryKind, llvm::StringRef)':
/usr/include/llvm/Support/VirtualFileSystem.h:776:51: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  776 |     Entry(EntryKind K, StringRef Name) : Kind(K), Name(Name) {}
      |                                                   ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/VirtualFileSystem.h:776:51: note:   candidate expects 3 arguments, 1 provided
  776 |     Entry(EntryKind K, StringRef Name) : Kind(K), Name(Name) {}
      |                                                   ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/VirtualFileSystem.h: In constructor 'llvm::vfs::RedirectingFileSystem::RemapEntry::RemapEntry(llvm::vfs::RedirectingFileSystem::EntryKind, llvm::StringRef, llvm::StringRef, llvm::vfs::RedirectingFileSystem::NameKind)':
/usr/include/llvm/Support/VirtualFileSystem.h:824:27: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  824 |         : Entry(K, Name), ExternalContentsPath(ExternalContentsPath),
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/VirtualFileSystem.h:824:27: note:   candidate expects 3 arguments, 1 provided
  824 |         : Entry(K, Name), ExternalContentsPath(ExternalContentsPath),
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/VirtualFileSystem.h: At global scope:
/usr/include/llvm/Support/VirtualFileSystem.h:1060:8: error: 'optional' in namespace 'std' does not name a template type
 1060 |   std::optional<bool> IsCaseSensitive;
      |        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:1060:3: note: 'std::optional' is only available from C++17 onwards
 1060 |   std::optional<bool> IsCaseSensitive;
      |   ^~~
/usr/include/llvm/Support/VirtualFileSystem.h:1061:8: error: 'optional' in namespace 'std' does not name a template type
 1061 |   std::optional<bool> IsOverlayRelative;
      |        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:1061:3: note: 'std::optional' is only available from C++17 onwards
 1061 |   std::optional<bool> IsOverlayRelative;
      |   ^~~
/usr/include/llvm/Support/VirtualFileSystem.h:1062:8: error: 'optional' in namespace 'std' does not name a template type
 1062 |   std::optional<bool> UseExternalNames;
      |        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:1062:3: note: 'std::optional' is only available from C++17 onwards
 1062 |   std::optional<bool> UseExternalNames;
      |   ^~~
/usr/include/llvm/Support/VirtualFileSystem.h: In member function 'void llvm::vfs::YAMLVFSWriter::setCaseSensitivity(bool)':
/usr/include/llvm/Support/VirtualFileSystem.h:1074:5: error: 'IsCaseSensitive' was not declared in this scope; did you mean 'CaseSensitive'?
 1074 |     IsCaseSensitive = CaseSensitive;
      |     ^~~~~~~~~~~~~~~
      |     CaseSensitive
/usr/include/llvm/Support/VirtualFileSystem.h: In member function 'void llvm::vfs::YAMLVFSWriter::setUseExternalNames(bool)':
/usr/include/llvm/Support/VirtualFileSystem.h:1077:48: error: 'UseExternalNames' was not declared in this scope; did you mean 'setUseExternalNames'?
 1077 |   void setUseExternalNames(bool UseExtNames) { UseExternalNames = UseExtNames; }
      |                                                ^~~~~~~~~~~~~~~~
      |                                                setUseExternalNames
/usr/include/llvm/Support/VirtualFileSystem.h: In member function 'void llvm::vfs::YAMLVFSWriter::setOverlayDir(llvm::StringRef)':
/usr/include/llvm/Support/VirtualFileSystem.h:1080:5: error: 'IsOverlayRelative' was not declared in this scope
 1080 |     IsOverlayRelative = true;
      |     ^~~~~~~~~~~~~~~~~
/usr/include/clang/Basic/FileManager.h: In member function 'clang::OptionalDirectoryEntryRef clang::FileManager::getOptionalDirectoryRef(llvm::StringRef, bool)':
/usr/include/clang/Basic/FileManager.h:171:18: error: 'expectedToOptional' is not a member of 'llvm'
  171 |     return llvm::expectedToOptional(getDirectoryRef(DirName, CacheFailure));
      |                  ^~~~~~~~~~~~~~~~~~
/usr/include/clang/Basic/FileManager.h: In member function 'clang::OptionalFileEntryRef clang::FileManager::getOptionalFileRef(llvm::StringRef, bool, bool)':
/usr/include/clang/Basic/FileManager.h:237:18: error: 'expectedToOptional' is not a member of 'llvm'
  237 |     return llvm::expectedToOptional(
      |                  ^~~~~~~~~~~~~~~~~~
/usr/include/clang/Basic/SourceManager.h: At global scope:
/usr/include/clang/Basic/SourceManager.h:215:8: error: 'optional' in namespace 'std' does not name a template type
  215 |   std::optional<llvm::MemoryBufferRef>
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:215:3: note: 'std::optional' is only available from C++17 onwards
  215 |   std::optional<llvm::MemoryBufferRef>
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:238:8: error: 'optional' in namespace 'std' does not name a template type
  238 |   std::optional<llvm::MemoryBufferRef> getBufferIfLoaded() const {
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:238:3: note: 'std::optional' is only available from C++17 onwards
  238 |   std::optional<llvm::MemoryBufferRef> getBufferIfLoaded() const {
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:246:8: error: 'optional' in namespace 'std' does not name a template type
  246 |   std::optional<StringRef> getBufferDataIfLoaded() const {
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:246:3: note: 'std::optional' is only available from C++17 onwards
  246 |   std::optional<StringRef> getBufferDataIfLoaded() const {
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:261:30: error: 'std::optional' has not been declared
  261 |   void setUnownedBuffer(std::optional<llvm::MemoryBufferRef> B) {
      |                              ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:261:38: error: expected ',' or '...' before '<' token
  261 |   void setUnownedBuffer(std::optional<llvm::MemoryBufferRef> B) {
      |                                      ^
/usr/include/clang/Basic/SourceManager.h: In constructor 'clang::SrcMgr::ContentCache::ContentCache()':
/usr/include/clang/Basic/SourceManager.h:183:24: error: 'nullopt' is not a member of 'std'
  183 |       : OrigEntry(std::nullopt), ContentsEntry(nullptr),
      |                        ^~~~~~~
/usr/include/clang/Basic/SourceManager.h:183:24: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/SourceManager.h: In member function 'void clang::SrcMgr::ContentCache::setUnownedBuffer(int)':
/usr/include/clang/Basic/SourceManager.h:263:9: error: 'B' was not declared in this scope
  263 |     if (B)
      |         ^
/usr/include/clang/Basic/SourceManager.h: At global scope:
/usr/include/clang/Basic/SourceManager.h:944:8: error: 'optional' in namespace 'std' does not name a template type
  944 |   std::optional<llvm::MemoryBufferRef>
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:944:3: note: 'std::optional' is only available from C++17 onwards
  944 |   std::optional<llvm::MemoryBufferRef>
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1026:8: error: 'optional' in namespace 'std' does not name a template type
 1026 |   std::optional<llvm::MemoryBufferRef>
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1026:3: note: 'std::optional' is only available from C++17 onwards
 1026 |   std::optional<llvm::MemoryBufferRef>
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1063:8: error: 'optional' in namespace 'std' does not name a template type
 1063 |   std::optional<StringRef> getNonBuiltinFilenameForID(FileID FID) const;
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1063:3: note: 'std::optional' is only available from C++17 onwards
 1063 |   std::optional<StringRef> getNonBuiltinFilenameForID(FileID FID) const;
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1082:8: error: 'optional' in namespace 'std' does not name a template type
 1082 |   std::optional<StringRef> getBufferDataOrNone(FileID FID) const;
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1082:3: note: 'std::optional' is only available from C++17 onwards
 1082 |   std::optional<StringRef> getBufferDataOrNone(FileID FID) const;
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1088:8: error: 'optional' in namespace 'std' does not name a template type
 1088 |   std::optional<StringRef> getBufferDataIfLoaded(FileID FID) const;
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1088:3: note: 'std::optional' is only available from C++17 onwards
 1088 |   std::optional<StringRef> getBufferDataIfLoaded(FileID FID) const;
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1699:39: error: 'std::optional' has not been declared
 1699 |                                  std::optional<unsigned> MaxNotes = 32) const;
      |                                       ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1699:47: error: expected ',' or '...' before '<' token
 1699 |                                  std::optional<unsigned> MaxNotes = 32) const;
      |                                               ^
/usr/include/clang/Basic/SourceManager.h: In member function 'llvm::MemoryBufferRef clang::SourceManager::getMemoryBufferForFileOrFake(const clang::FileEntry*)':
/usr/include/clang/Basic/SourceManager.h:951:18: error: 'getMemoryBufferForFileOrNone' was not declared in this scope; did you mean 'getMemoryBufferForFileOrFake'?
  951 |     if (auto B = getMemoryBufferForFileOrNone(File))
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  getMemoryBufferForFileOrFake
/usr/include/clang/Basic/SourceManager.h: In member function 'llvm::MemoryBufferRef clang::SourceManager::getBufferOrFake(clang::FileID, clang::SourceLocation) const':
/usr/include/clang/Basic/SourceManager.h:1040:18: error: 'getBufferOrNone' was not declared in this scope; did you mean 'getBufferOrFake'?
 1040 |     if (auto B = getBufferOrNone(FID, Loc))
      |                  ^~~~~~~~~~~~~~~
      |                  getBufferOrFake
/usr/include/clang/Basic/SourceManager.h: In member function 'clang::OptionalFileEntryRef clang::SourceManager::getFileEntryRefForID(clang::FileID) const':
/usr/include/clang/Basic/SourceManager.h:1056:17: error: 'nullopt' is not a member of 'std'
 1056 |     return std::nullopt;
      |                 ^~~~~~~
/usr/include/clang/Basic/SourceManager.h:1056:17: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/Support/MathExtras.h: In instantiation of 'constexpr size_t llvm::CTLog2() [with long unsigned int kValue = 8; size_t = long unsigned int]':
/usr/include/llvm/Support/Alignment.h:97:56:   required from 'static constexpr llvm::Align llvm::Align::Constant() [with long unsigned int kValue = 8]'
/usr/include/llvm/Support/Alignment.h:103:49:   required from 'static constexpr llvm::Align llvm::Align::Of() [with T = const clang::Expr*]'
/usr/include/llvm/Support/TrailingObjects.h:168:73:   required from 'static NextTy* llvm::trailing_objects_internal::TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys ...>::getTrailingObjectsImpl(BaseTy*, llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken<NextTy>) [with int Align = 8; BaseTy = clang::ConstantArrayType; TopTrailingObj = llvm::TrailingObjects<clang::ConstantArrayType, const clang::Expr*>; PrevTy = clang::ConstantArrayType; NextTy = const clang::Expr*; MoreTys = {}]'
/usr/include/llvm/Support/TrailingObjects.h:301:40:   required from 'T* llvm::TrailingObjects<BaseTy, TrailingTys>::getTrailingObjects() [with T = const clang::Expr*; BaseTy = clang::ConstantArrayType; TrailingTys = {const clang::Expr*}]'
/usr/include/clang/AST/Type.h:3077:39:   required from here
/usr/include/llvm/Support/MathExtras.h:399:28: error: non-constant condition for static assertion
  399 |   static_assert(kValue > 0 && llvm::isPowerOf2_64(kValue),
      |                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MathExtras.h:399:50:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(8)'
/usr/include/llvm/Support/MathExtras.h:399:28: error: 'constexpr' call flows off the end of the function
/usr/include/llvm/Support/MathExtras.h: In instantiation of 'constexpr size_t llvm::CTLog2() [with long unsigned int kValue = 4; size_t = long unsigned int]':
/usr/include/llvm/Support/MathExtras.h:401:32:   required from 'static const NextTy* llvm::trailing_objects_internal::TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys ...>::getTrailingObjectsImpl(const BaseTy*, llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken<NextTy>) [with int Align = 8; BaseTy = clang::ConstantArrayType; TopTrailingObj = llvm::TrailingObjects<clang::ConstantArrayType, const clang::Expr*>; PrevTy = clang::ConstantArrayType; NextTy = const clang::Expr*; MoreTys = {}]'
/usr/include/llvm/Support/TrailingObjects.h:289:40:   required from 'const T* llvm::TrailingObjects<BaseTy, TrailingTys>::getTrailingObjects() const [with T = const clang::Expr*; BaseTy = clang::ConstantArrayType; TrailingTys = {const clang::Expr*}]'
/usr/include/clang/AST/Type.h:3089:51:   required from here
/usr/include/llvm/Support/TrailingObjects.h:154:43:   in 'constexpr' expansion of 'llvm::Align::Of<const clang::Expr*>()'
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:399:28: error: non-constant condition for static assertion
/usr/include/llvm/Support/TrailingObjects.h:154:43:   in 'constexpr' expansion of 'llvm::Align::Of<const clang::Expr*>()'
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:399:50:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(4)'
/usr/include/llvm/Support/MathExtras.h:399:28: error: 'constexpr' call flows off the end of the function
/usr/include/llvm/Support/MathExtras.h: In instantiation of 'constexpr size_t llvm::CTLog2() [with long unsigned int kValue = 2; size_t = long unsigned int]':
/usr/include/llvm/Support/MathExtras.h:401:32:   required from 'static constexpr llvm::Align llvm::Align::Of() [with T = clang::FunctionType::FunctionTypeExtraBitfields]'
/usr/include/llvm/Support/TrailingObjects.h:154:43:   required from 'static const NextTy* llvm::trailing_objects_internal::TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys ...>::getTrailingObjectsImpl(const BaseTy*, llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken<NextTy>) [with int Align = 8; BaseTy = clang::FunctionProtoType; TopTrailingObj = llvm::TrailingObjects<clang::FunctionProtoType, clang::QualType, clang::SourceLocation, clang::FunctionType::FunctionTypeExtraBitfields, clang::FunctionType::ExceptionType, clang::Expr*, clang::FunctionDecl*, clang::FunctionType::ExtParameterInfo, clang::Qualifiers>; PrevTy = clang::SourceLocation; NextTy = clang::FunctionType::FunctionTypeExtraBitfields; MoreTys = {clang::FunctionType::ExceptionType, clang::Expr*, clang::FunctionDecl*, clang::FunctionType::ExtParameterInfo, clang::Qualifiers}]'
/usr/include/llvm/Support/TrailingObjects.h:289:40:   required from 'const T* llvm::TrailingObjects<BaseTy, TrailingTys>::getTrailingObjects() const [with T = clang::FunctionType::FunctionTypeExtraBitfields; BaseTy = clang::FunctionProtoType; TrailingTys = {clang::QualType, clang::SourceLocation, clang::FunctionType::FunctionTypeExtraBitfields, clang::FunctionType::ExceptionType, clang::Expr*, clang::FunctionDecl*, clang::FunctionType::ExtParameterInfo, clang::Qualifiers}]'
/usr/include/clang/AST/Type.h:4302:64:   required from here
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:401:32:   in 'constexpr' expansion of 'llvm::CTLog2<4>()'
/usr/include/llvm/Support/MathExtras.h:399:28: error: non-constant condition for static assertion
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:401:32:   in 'constexpr' expansion of 'llvm::CTLog2<4>()'
/usr/include/llvm/Support/MathExtras.h:399:50:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(2)'
/usr/include/llvm/Support/MathExtras.h:399:28: error: 'constexpr' call flows off the end of the function
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'llvm::mapped_iterator<ItTy, FuncTy, ReferenceTy>::mapped_iterator(ItTy, FuncTy) [with ItTy = const clang::ParmVarDecl* const*; FuncTy = clang::ObjCMethodDecl::GetTypeFn; ReferenceTy = clang::QualType]':
/usr/include/llvm/ADT/STLExtras.h:430:10:   required from 'llvm::mapped_iterator<ItTy, FuncTy> llvm::map_iterator(ItTy, FuncTy) [with ItTy = const clang::ParmVarDecl* const*; FuncTy = clang::ObjCMethodDecl::GetTypeFn; decltype (declval<FuncTy>()((* declval<ItTy>()))) = clang::QualType]'
/usr/include/clang/AST/DeclObjC.h:402:30:   required from here
/usr/include/llvm/ADT/STLExtras.h:414:61: error: cannot convert 'std::remove_reference<clang::ObjCMethodDecl::GetTypeFn&>::type' {aka 'clang::ObjCMethodDecl::GetTypeFn'} to 'int' in initialization
  414 |     : mapped_iterator::iterator_adaptor_base(std::move(U)), F(std::move(F)) {}
      |                                                             ^~~~~~~~~~~~~~~
make[2]: *** [clang_delta/CMakeFiles/clang_delta.dir/build.make:79: clang_delta/CMakeFiles/clang_delta.dir/AggregateToScalar.cpp.o] Error 1
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[  6%] Building CXX object clang_delta/CMakeFiles/clang_delta.dir/BinOpSimplification.cpp.o
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clang_delta && /usr/bin/g++ -DHAVE_CONFIG_H -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu -I/builddir/build/BUILD/cvise-2.4.0/clang_delta -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -std=c++14 -fno-rtti -fno-strict-aliasing -Wall -Wextra -Wno-unused-parameter -fvisibility-inlines-hidden   -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MT clang_delta/CMakeFiles/clang_delta.dir/BinOpSimplification.cpp.o -MF CMakeFiles/clang_delta.dir/BinOpSimplification.cpp.o.d -o CMakeFiles/clang_delta.dir/BinOpSimplification.cpp.o -c /builddir/build/BUILD/cvise-2.4.0/clang_delta/BinOpSimplification.cpp
In file included from /builddir/build/BUILD/cvise-2.4.0/clang_delta/BinOpSimplification.h:15,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/BinOpSimplification.cpp:15:
/usr/include/llvm/ADT/SmallVector.h: In static member function 'static void llvm::SmallVectorTemplateBase<T, <anonymous> >::uninitialized_move(It1, It1, It2)':
/usr/include/llvm/ADT/SmallVector.h:352:10: error: 'uninitialized_move' is not a member of 'std'; did you mean 'uninitialized_copy'?
  352 |     std::uninitialized_move(I, E, Dest);
      |          ^~~~~~~~~~~~~~~~~~
      |          uninitialized_copy
In file included from /usr/include/clang/Basic/LLVM.h:21,
                 from /usr/include/clang/Rewrite/Core/Rewriter.h:17,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/Transformation.h:19,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/BinOpSimplification.h:16:
/usr/include/llvm/Support/Casting.h: At global scope:
/usr/include/llvm/Support/Casting.h:266:32: error: 'optional' is not a member of 'std'
  266 | struct CastIsPossible<To, std::optional<From>> {
      |                                ^~~~~~~~
/usr/include/llvm/Support/Casting.h:266:32: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:266:32: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:266:32: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:266:41: error: template argument 2 is invalid
  266 | struct CastIsPossible<To, std::optional<From>> {
      |                                         ^~~~
/usr/include/llvm/Support/Casting.h:266:45: error: expected unqualified-id before '>' token
  266 | struct CastIsPossible<To, std::optional<From>> {
      |                                             ^~
/usr/include/llvm/Support/Casting.h:369:16: error: 'optional' is not a member of 'std'
  369 |           std::optional<To>, From,
      |                ^~~~~~~~
/usr/include/llvm/Support/Casting.h:369:16: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:369:16: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:369:16: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:369:27: error: wrong number of template arguments (1, should be 3)
  369 |           std::optional<To>, From,
      |                           ^
/usr/include/llvm/Support/Casting.h:310:8: note: provided for 'template<class To, class From, class Derived> struct llvm::DefaultDoCastIfPossible'
  310 | struct DefaultDoCastIfPossible {
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/Casting.h:370:65: error: expected '{' before '>' token
  370 |           detail::SelfType<Derived, OptionalValueCast<To, From>>> {
      |                                                                 ^
/usr/include/llvm/Support/Casting.h:540:26: error: 'optional' is not a member of 'std'
  540 | struct CastInfo<To, std::optional<From>> : public OptionalValueCast<To, From> {
      |                          ^~~~~~~~
/usr/include/llvm/Support/Casting.h:540:26: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:540:26: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:540:26: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:540:35: error: template argument 2 is invalid
  540 | struct CastInfo<To, std::optional<From>> : public OptionalValueCast<To, From> {
      |                                   ^~~~
/usr/include/llvm/Support/Casting.h:540:39: error: expected unqualified-id before '>' token
  540 | struct CastInfo<To, std::optional<From>> : public OptionalValueCast<To, From> {
      |                                       ^~
/usr/include/llvm/Support/Casting.h:595:10: error: 'is_pointer_v' is not a member of 'std'; did you mean 'is_pointer'?
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |          ^~~~~~~~~~~~
      |          is_pointer
/usr/include/llvm/Support/Casting.h:595:24: error: expected primary-expression before '>' token
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                        ^
/usr/include/llvm/Support/Casting.h:595:26: error: expected primary-expression before '||' token
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                          ^~
/usr/include/llvm/Support/Casting.h:595:34: error: 'is_constructible_v' is not a member of 'std'; did you mean 'is_constructible'?
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                                  ^~~~~~~~~~~~~~~~~~
      |                                  is_constructible
/usr/include/llvm/Support/Casting.h:595:54: error: expected primary-expression before ',' token
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                                                      ^
/usr/include/llvm/Support/Casting.h:610:50: error: 'optional' is not a member of 'std'
  610 | template <typename T> struct ValueIsPresent<std::optional<T>> {
      |                                                  ^~~~~~~~
/usr/include/llvm/Support/Casting.h:610:50: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:610:50: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:610:50: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:610:59: error: template argument 1 is invalid
  610 | template <typename T> struct ValueIsPresent<std::optional<T>> {
      |                                                           ^
/usr/include/llvm/Support/Casting.h:610:60: error: expected unqualified-id before '>' token
  610 | template <typename T> struct ValueIsPresent<std::optional<T>> {
      |                                                            ^~
In file included from /usr/include/clang/Basic/LLVM.h:24:
/usr/include/llvm/ADT/None.h:26:14: error: 'nullopt_t' in namespace 'std' does not name a type; did you mean 'nullptr_t'?
   26 | typedef std::nullopt_t NoneType;
      |              ^~~~~~~~~
      |              nullptr_t
/usr/include/llvm/ADT/None.h:28:23: error: 'nullopt_t' in namespace 'std' does not name a type; did you mean 'nullptr_t'?
   28 | inline constexpr std::nullopt_t None = std::nullopt;
      |                       ^~~~~~~~~
      |                       nullptr_t
/usr/include/clang/Basic/LLVM.h:40:47: error: 'optional' in namespace 'std' does not name a template type
   40 |   template <typename T> using Optional = std::optional<T>;
      |                                               ^~~~~~~~
/usr/include/clang/Basic/LLVM.h:40:42: note: 'std::optional' is only available from C++17 onwards
   40 |   template <typename T> using Optional = std::optional<T>;
      |                                          ^~~
/usr/include/clang/Basic/LLVM.h:72:15: error: 'Optional' has not been declared in 'llvm'
   72 |   using llvm::Optional;
      |               ^~~~~~~~
In file included from /usr/include/llvm/ADT/StringRef.h:12,
                 from /usr/include/clang/Basic/SourceLocation.h:18,
                 from /usr/include/clang/Rewrite/Core/Rewriter.h:18:
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: error: 'variant' is not a member of 'std'
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                    ^~~~~~~
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: note: 'std::variant' is only available from C++17 onwards
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: error: 'variant' is not a member of 'std'
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: note: 'std::variant' is only available from C++17 onwards
/usr/include/llvm/ADT/DenseMapInfo.h:294:62: error: expected parameter pack before '...'
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                              ^~~
/usr/include/llvm/ADT/DenseMapInfo.h:294:62: error: template argument 1 is invalid
/usr/include/llvm/ADT/DenseMapInfo.h:294:65: error: expected unqualified-id before '>' token
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                                 ^~
In file included from /usr/include/llvm/ADT/STLFunctionalExtras.h:18,
                 from /usr/include/llvm/ADT/StringRef.h:13:
/usr/include/llvm/ADT/STLForwardCompat.h:46:35: error: 'optional' in namespace 'std' does not name a template type
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                                   ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:46:30: note: 'std::optional' is only available from C++17 onwards
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                              ^~~
/usr/include/llvm/ADT/STLForwardCompat.h:46:43: error: expected ',' or '...' before '<' token
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                                           ^
/usr/include/llvm/ADT/STLForwardCompat.h:47:13: error: 'optional' in namespace 'std' does not name a template type
   47 |     -> std::optional<decltype(F(*O))> {
      |             ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:47:8: note: 'std::optional' is only available from C++17 onwards
   47 |     -> std::optional<decltype(F(*O))> {
      |        ^~~
/usr/include/llvm/ADT/STLForwardCompat.h:47:21: error: expected initializer before '<' token
   47 |     -> std::optional<decltype(F(*O))> {
      |                     ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:29: error: 'optional' is not a member of 'std'
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                             ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:56:29: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/ADT/STLForwardCompat.h:56:39: error: expected primary-expression before '>' token
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                       ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:43: error: label 'O' referenced outside of any function
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                           ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:46: error: expected primary-expression before 'const'
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                              ^~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:56:63: error: expression list treated as compound expression in initializer [-fpermissive]
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                                               ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:64: error: expected ';' before '->' token
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                                                ^
      |                                                                ;
   57 |     -> std::optional<decltype(F(*std::move(O)))> {
      |     ~~                                                          
/usr/include/llvm/ADT/StringRef.h:104:54: error: expected ')' before 'Str'
  104 |     /*implicit*/ constexpr StringRef(std::string_view Str)
      |                                     ~                ^~~~
      |                                                      )
/usr/include/llvm/ADT/StringRef.h:248:14: error: expected type-specifier
  248 |     operator std::string_view() const {
      |              ^~~
/usr/include/llvm/ADT/StringRef.h: In member function 'size_t llvm::StringRef::find(char, size_t) const':
/usr/include/llvm/ADT/StringRef.h:296:19: error: 'string_view' is not a member of 'std'
  296 |       return std::string_view(*this).find(C, From);
      |                   ^~~~~~~~~~~
/usr/include/llvm/ADT/StringRef.h:296:19: note: 'std::string_view' is only available from C++17 onwards
In file included from /usr/include/llvm/Support/MathExtras.h:16,
                 from /usr/include/llvm/ADT/BitmaskEnum.h:16,
                 from /usr/include/clang/Basic/BitmaskEnum.h:18,
                 from /usr/include/clang/AST/DependenceFlags.h:11,
                 from /usr/include/clang/AST/NestedNameSpecifier.h:17,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/RewriteUtils.h:16,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/Transformation.h:20:
/usr/include/llvm/ADT/bit.h: At global scope:
/usr/include/llvm/ADT/bit.h:64:56: error: 'is_integral_v' is not a member of 'std'; did you mean 'is_integral'?
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_integral
/usr/include/llvm/ADT/bit.h:64:56: error: 'is_integral_v' is not a member of 'std'; did you mean 'is_integral'?
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_integral
/usr/include/llvm/ADT/bit.h:64:70: error: template argument 1 is invalid
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                                      ^
/usr/include/llvm/ADT/bit.h:64:73: error: expected unqualified-id before '>' token
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                                         ^
/usr/include/llvm/ADT/bit.h:109:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:109:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:109:70: error: template argument 1 is invalid
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                      ^
/usr/include/llvm/ADT/bit.h:109:73: error: expected unqualified-id before '>' token
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                         ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countr_zero(T)':
/usr/include/llvm/ADT/bit.h:180:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  180 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:180:37: error: expected primary-expression before '>' token
  180 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:180:38: error: expected primary-expression before ',' token
  180 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countl_zero(T)':
/usr/include/llvm/ADT/bit.h:246:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  246 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:246:37: error: expected primary-expression before '>' token
  246 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:246:38: error: expected primary-expression before ',' token
  246 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countl_one(T)':
/usr/include/llvm/ADT/bit.h:259:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  259 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:259:37: error: expected primary-expression before '>' token
  259 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:259:38: error: expected primary-expression before ',' token
  259 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countr_one(T)':
/usr/include/llvm/ADT/bit.h:272:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  272 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:272:37: error: expected primary-expression before '>' token
  272 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:272:38: error: expected primary-expression before ',' token
  272 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::bit_width(T)':
/usr/include/llvm/ADT/bit.h:282:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  282 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:282:37: error: expected primary-expression before '>' token
  282 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:282:38: error: expected primary-expression before ',' token
  282 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'T llvm::bit_floor(T)':
/usr/include/llvm/ADT/bit.h:292:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  292 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:292:37: error: expected primary-expression before '>' token
  292 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:292:38: error: expected primary-expression before ',' token
  292 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'T llvm::bit_ceil(T)':
/usr/include/llvm/ADT/bit.h:307:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  307 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:307:37: error: expected primary-expression before '>' token
  307 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:307:38: error: expected primary-expression before ',' token
  307 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: At global scope:
/usr/include/llvm/ADT/bit.h:348:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:348:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:348:70: error: template argument 1 is invalid
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                      ^
/usr/include/llvm/ADT/bit.h:348:73: error: expected unqualified-id before '>' token
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                         ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countTrailingZeros(T)':
/usr/include/llvm/Support/MathExtras.h:78:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
   78 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:78:37: error: expected primary-expression before '>' token
   78 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:78:38: error: expected primary-expression before ',' token
   78 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countLeadingZeros(T)':
/usr/include/llvm/Support/MathExtras.h:90:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
   90 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:90:37: error: expected primary-expression before '>' token
   90 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:90:38: error: expected primary-expression before ',' token
   90 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'constexpr bool llvm::isPowerOf2_32(uint32_t)':
/usr/include/llvm/Support/MathExtras.h:325:16: error: 'has_single_bit' is not a member of 'llvm'
  325 |   return llvm::has_single_bit(Value);
      |                ^~~~~~~~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'constexpr bool llvm::isPowerOf2_64(uint64_t)':
/usr/include/llvm/Support/MathExtras.h:330:16: error: 'has_single_bit' is not a member of 'llvm'
  330 |   return llvm::has_single_bit(Value);
      |                ^~~~~~~~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countLeadingOnes(T)':
/usr/include/llvm/Support/MathExtras.h:341:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  341 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:341:37: error: expected primary-expression before '>' token
  341 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:341:38: error: expected primary-expression before ',' token
  341 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countTrailingOnes(T)':
/usr/include/llvm/Support/MathExtras.h:354:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  354 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:354:37: error: expected primary-expression before '>' token
  354 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:354:38: error: expected primary-expression before ',' token
  354 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countPopulation(T)':
/usr/include/llvm/Support/MathExtras.h:364:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  364 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:364:37: error: expected primary-expression before '>' token
  364 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:364:38: error: expected primary-expression before ',' token
  364 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h:366:26: error: 'popcount' is not a member of 'llvm'
  366 |   return (unsigned)llvm::popcount(Value);
      |                          ^~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'bool llvm::isShiftedMask_32(uint32_t, unsigned int&, unsigned int&)':
/usr/include/llvm/Support/MathExtras.h:379:19: error: 'popcount' is not a member of 'llvm'
  379 |   MaskLen = llvm::popcount(Value);
      |                   ^~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'bool llvm::isShiftedMask_64(uint64_t, unsigned int&, unsigned int&)':
/usr/include/llvm/Support/MathExtras.h:392:19: error: 'popcount' is not a member of 'llvm'
  392 |   MaskLen = llvm::popcount(Value);
      |                   ^~~~~~~~
/usr/include/llvm/Support/MathExtras.h: At global scope:
/usr/include/llvm/Support/MathExtras.h:620:23: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                       ^~~~~~~~~~~~~
      |                       is_unsigned
/usr/include/llvm/Support/MathExtras.h:620:23: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                       ^~~~~~~~~~~~~
      |                       is_unsigned
/usr/include/llvm/Support/MathExtras.h:620:38: error: template argument 1 is invalid
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h:620:39: error: expected unqualified-id before ',' token
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                                       ^
In file included from /usr/include/clang/Basic/Diagnostic.h:17,
                 from /usr/include/clang/AST/NestedNameSpecifier.h:18:
/usr/include/clang/Basic/DiagnosticIDs.h:241:15: error: 'optional' in namespace 'std' does not name a template type
  241 |   static std::optional<diag::Group> getGroupForWarningOption(StringRef);
      |               ^~~~~~~~
/usr/include/clang/Basic/DiagnosticIDs.h:241:10: note: 'std::optional' is only available from C++17 onwards
  241 |   static std::optional<diag::Group> getGroupForWarningOption(StringRef);
      |          ^~~
/usr/include/clang/Basic/DiagnosticIDs.h:244:15: error: 'optional' in namespace 'std' does not name a template type
  244 |   static std::optional<diag::Group> getGroupForDiag(unsigned DiagID);
      |               ^~~~~~~~
/usr/include/clang/Basic/DiagnosticIDs.h:244:10: note: 'std::optional' is only available from C++17 onwards
  244 |   static std::optional<diag::Group> getGroupForDiag(unsigned DiagID);
      |          ^~~
In file included from /usr/include/llvm/ADT/Hashing.h:49,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/clang/Basic/Diagnostic.h:21:
/usr/include/llvm/Support/SwapByteOrder.h: In function 'uint16_t llvm::ByteSwap_16(uint16_t)':
/usr/include/llvm/Support/SwapByteOrder.h:51:60: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_16'?
   51 | inline uint16_t ByteSwap_16(uint16_t value) { return llvm::byteswap(value); }
      |                                                            ^~~~~~~~
      |                                                            ByteSwap_16
/usr/include/llvm/Support/SwapByteOrder.h: In function 'uint32_t llvm::ByteSwap_32(uint32_t)':
/usr/include/llvm/Support/SwapByteOrder.h:54:60: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_32'?
   54 | inline uint32_t ByteSwap_32(uint32_t value) { return llvm::byteswap(value); }
      |                                                            ^~~~~~~~
      |                                                            ByteSwap_32
/usr/include/llvm/Support/SwapByteOrder.h: In function 'uint64_t llvm::ByteSwap_64(uint64_t)':
/usr/include/llvm/Support/SwapByteOrder.h:57:60: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   57 | inline uint64_t ByteSwap_64(uint64_t value) { return llvm::byteswap(value); }
      |                                                            ^~~~~~~~
      |                                                            ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'unsigned char llvm::sys::getSwappedBytes(unsigned char)':
/usr/include/llvm/Support/SwapByteOrder.h:69:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   69 | inline unsigned char      getSwappedBytes(unsigned char      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'signed char llvm::sys::getSwappedBytes(signed char)':
/usr/include/llvm/Support/SwapByteOrder.h:70:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   70 | inline   signed char      getSwappedBytes( signed  char      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'char llvm::sys::getSwappedBytes(char)':
/usr/include/llvm/Support/SwapByteOrder.h:71:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   71 | inline          char      getSwappedBytes(         char      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'short unsigned int llvm::sys::getSwappedBytes(short unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:73:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   73 | inline unsigned short     getSwappedBytes(unsigned short     C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'short int llvm::sys::getSwappedBytes(short int)':
/usr/include/llvm/Support/SwapByteOrder.h:74:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   74 | inline   signed short     getSwappedBytes(  signed short     C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'unsigned int llvm::sys::getSwappedBytes(unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:76:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   76 | inline unsigned int       getSwappedBytes(unsigned int       C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'int llvm::sys::getSwappedBytes(int)':
/usr/include/llvm/Support/SwapByteOrder.h:77:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   77 | inline   signed int       getSwappedBytes(  signed int       C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long unsigned int llvm::sys::getSwappedBytes(long unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:79:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   79 | inline unsigned long      getSwappedBytes(unsigned long      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long int llvm::sys::getSwappedBytes(long int)':
/usr/include/llvm/Support/SwapByteOrder.h:80:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   80 | inline   signed long      getSwappedBytes(  signed long      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long long unsigned int llvm::sys::getSwappedBytes(long long unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:82:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   82 | inline unsigned long long getSwappedBytes(unsigned long long C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long long int llvm::sys::getSwappedBytes(long long int)':
/usr/include/llvm/Support/SwapByteOrder.h:83:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   83 | inline   signed long long getSwappedBytes(  signed long long C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'float llvm::sys::getSwappedBytes(float)':
/usr/include/llvm/Support/SwapByteOrder.h:91:17: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   91 |   out.i = llvm::byteswap(in.i);
      |                 ^~~~~~~~
      |                 ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'double llvm::sys::getSwappedBytes(double)':
/usr/include/llvm/Support/SwapByteOrder.h:101:17: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
  101 |   out.i = llvm::byteswap(in.i);
      |                 ^~~~~~~~
      |                 ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'std::enable_if_t<std::is_enum<_Tp>::value, T> llvm::sys::getSwappedBytes(T)':
/usr/include/llvm/Support/SwapByteOrder.h:108:13: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
  108 |       llvm::byteswap(static_cast<std::underlying_type_t<T>>(C)));
      |             ^~~~~~~~
      |             ByteSwap_64
/usr/include/llvm/ADT/Hashing.h: At global scope:
/usr/include/llvm/ADT/Hashing.h:127:55: error: 'optional' in namespace 'std' does not name a template type
  127 | template <typename T> hash_code hash_value(const std::optional<T> &arg);
      |                                                       ^~~~~~~~
/usr/include/llvm/ADT/Hashing.h:127:50: note: 'std::optional' is only available from C++17 onwards
  127 | template <typename T> hash_code hash_value(const std::optional<T> &arg);
      |                                                  ^~~
/usr/include/llvm/ADT/Hashing.h:127:63: error: expected ',' or '...' before '<' token
  127 | template <typename T> hash_code hash_value(const std::optional<T> &arg);
      |                                                               ^
/usr/include/llvm/ADT/Hashing.h: In function 'llvm::hash_code llvm::hash_value(const std::tuple<_Elements ...>&)':
/usr/include/llvm/ADT/Hashing.h:658:15: error: 'apply' is not a member of 'std'
  658 |   return std::apply([](const auto &...xs) { return hash_combine(xs...); }, arg);
      |               ^~~~~
/usr/include/llvm/ADT/Hashing.h:658:15: note: 'std::apply' is only available from C++17 onwards
/usr/include/llvm/ADT/Hashing.h: At global scope:
/usr/include/llvm/ADT/Hashing.h:668:55: error: 'optional' in namespace 'std' does not name a template type
  668 | template <typename T> hash_code hash_value(const std::optional<T> &arg) {
      |                                                       ^~~~~~~~
/usr/include/llvm/ADT/Hashing.h:668:50: note: 'std::optional' is only available from C++17 onwards
  668 | template <typename T> hash_code hash_value(const std::optional<T> &arg) {
      |                                                  ^~~
/usr/include/llvm/ADT/Hashing.h:668:63: error: expected ',' or '...' before '<' token
  668 | template <typename T> hash_code hash_value(const std::optional<T> &arg) {
      |                                                               ^
/usr/include/llvm/ADT/Hashing.h: In function 'llvm::hash_code llvm::hash_value(int)':
/usr/include/llvm/ADT/Hashing.h:669:10: error: 'arg' was not declared in this scope
  669 |   return arg ? hash_combine(true, *arg) : hash_value(false);
      |          ^~~
In file included from /usr/include/llvm/ADT/ArrayRef.h:14:
/usr/include/llvm/ADT/STLExtras.h: At global scope:
/usr/include/llvm/ADT/STLExtras.h:81:22: error: 'void_t' is not a member of 'std'
   81 | struct detector<std::void_t<Op<Args...>>, Op, Args...> {
      |                      ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:81:22: note: 'std::void_t' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h:81:22: error: 'void_t' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:81:22: note: 'std::void_t' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h:81:39: error: wrong number of template arguments (1, should be at least 2)
   81 | struct detector<std::void_t<Op<Args...>>, Op, Args...> {
      |                                       ^~
/usr/include/llvm/ADT/STLExtras.h:77:70: note: provided for 'template<class, template<class ...> class Op, class ... Args> struct llvm::detail::detector'
   77 | template <class, template <class...> class Op, class... Args> struct detector {
      |                                                                      ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:144:24: error: 'disjunction' in namespace 'std' does not name a template type
  144 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                        ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:144:19: note: 'std::disjunction' is only available from C++17 onwards
  144 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                   ^~~
/usr/include/llvm/ADT/STLExtras.h:149:26: error: 'conjunction' in namespace 'std' does not name a template type
  149 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                          ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:149:21: note: 'std::conjunction' is only available from C++17 onwards
  149 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                     ^~~
/usr/include/llvm/ADT/STLExtras.h:155:37: error: 'is_one_of' was not declared in this scope
  155 |     : std::integral_constant<bool, !is_one_of<T, Us...>::value &&
      |                                     ^~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:155:55: error: template argument 2 is invalid
  155 |     : std::integral_constant<bool, !is_one_of<T, Us...>::value &&
      |                                                       ^
/usr/include/llvm/ADT/STLExtras.h:155:56: error: expected '{' before '::' token
  155 |     : std::integral_constant<bool, !is_one_of<T, Us...>::value &&
      |                                                        ^~
/usr/include/llvm/ADT/STLExtras.h:224:23: error: 'is_function_v' is not a member of 'std'; did you mean 'is_function'?
  224 |           bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
      |                       ^~~~~~~~~~~~~
      |                       is_function
/usr/include/llvm/ADT/STLExtras.h:224:77: error: expected primary-expression before '>>' token
  224 |           bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
      |                                                                             ^~
/usr/include/llvm/ADT/STLExtras.h:224:77: error: expected '>' before '>>' token
/usr/include/llvm/ADT/STLExtras.h:230:8: error: 'optional' in namespace 'std' does not name a template type
  230 |   std::optional<value_type> Obj;
      |        ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:230:3: note: 'std::optional' is only available from C++17 onwards
  230 |   std::optional<value_type> Obj;
      |   ^~~
/usr/include/llvm/ADT/STLExtras.h:232:23: error: 'is_pointer_v' is not a member of 'std'; did you mean 'is_pointer'?
  232 |   static_assert(!std::is_pointer_v<value_type>,
      |                       ^~~~~~~~~~~~
      |                       is_pointer
/usr/include/llvm/ADT/STLExtras.h:232:46: error: expected primary-expression before '>' token
  232 |   static_assert(!std::is_pointer_v<value_type>,
      |                                              ^
/usr/include/llvm/ADT/STLExtras.h:232:47: error: expected primary-expression before ',' token
  232 |   static_assert(!std::is_pointer_v<value_type>,
      |                                               ^
/usr/include/llvm/ADT/STLExtras.h:257:35: error: 'is_invocable_v' is not a member of 'std'
  257 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                   ^~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:257:35: error: 'is_invocable_v' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:257:58: error: pack expansion argument for non-pack parameter '_Tp' of alias template 'template<bool _Cond, class _Tp> using std::enable_if_t = typename std::enable_if::type'
  257 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                          ^
In file included from /usr/include/c++/13/bits/char_traits.h:50,
                 from /usr/include/c++/13/string:42,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/BinOpSimplification.h:14:
/usr/include/c++/13/type_traits:2609:24: note: declared here
 2609 |   template<bool _Cond, typename _Tp = void>
      |                        ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:257:66: error: expected unqualified-id before '=' token
  257 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                                  ^
/usr/include/llvm/ADT/STLExtras.h:263:35: error: 'is_invocable_v' is not a member of 'std'
  263 |             std::enable_if_t<std::is_invocable_v<T const, Pn...>, int> = 0>
      |                                   ^~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:263:35: error: 'is_invocable_v' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:263:64: error: template argument 1 is invalid
  263 |             std::enable_if_t<std::is_invocable_v<T const, Pn...>, int> = 0>
      |                                                                ^
/usr/include/llvm/ADT/STLExtras.h:263:72: error: expected unqualified-id before '=' token
  263 |             std::enable_if_t<std::is_invocable_v<T const, Pn...>, int> = 0>
      |                                                                        ^
/usr/include/llvm/ADT/STLExtras.h: In constructor 'llvm::callable_detail::Callable<T, <anonymous> >::Callable(const T&)':
/usr/include/llvm/ADT/STLExtras.h:237:26: error: class 'llvm::callable_detail::Callable<T, <anonymous> >' does not have any field named 'Obj'
  237 |   Callable(T const &O) : Obj(std::in_place, O) {}
      |                          ^~~
/usr/include/llvm/ADT/STLExtras.h:237:35: error: 'in_place' is not a member of 'std'
  237 |   Callable(T const &O) : Obj(std::in_place, O) {}
      |                                   ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:237:35: note: 'std::in_place' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >& llvm::callable_detail::Callable<T, <anonymous> >::operator=(const llvm::callable_detail::Callable<T, <anonymous> >&)':
/usr/include/llvm/ADT/STLExtras.h:243:5: error: 'Obj' was not declared in this scope
  243 |     Obj = std::nullopt;
      |     ^~~
/usr/include/llvm/ADT/STLExtras.h:243:16: error: 'nullopt' is not a member of 'std'
  243 |     Obj = std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:243:16: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >& llvm::callable_detail::Callable<T, <anonymous> >::operator=(llvm::callable_detail::Callable<T, <anonymous> >&&)':
/usr/include/llvm/ADT/STLExtras.h:250:5: error: 'Obj' was not declared in this scope
  250 |     Obj = std::nullopt;
      |     ^~~
/usr/include/llvm/ADT/STLExtras.h:250:16: error: 'nullopt' is not a member of 'std'
  250 |     Obj = std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:250:16: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'bool llvm::callable_detail::Callable<T, <anonymous> >::valid() const':
/usr/include/llvm/ADT/STLExtras.h:268:31: error: 'Obj' was not declared in this scope
  268 |   bool valid() const { return Obj != std::nullopt; }
      |                               ^~~
/usr/include/llvm/ADT/STLExtras.h:268:43: error: 'nullopt' is not a member of 'std'
  268 |   bool valid() const { return Obj != std::nullopt; }
      |                                           ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:268:43: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'bool llvm::callable_detail::Callable<T, <anonymous> >::reset()':
/usr/include/llvm/ADT/STLExtras.h:269:25: error: 'Obj' was not declared in this scope
  269 |   bool reset() { return Obj = std::nullopt; }
      |                         ^~~
/usr/include/llvm/ADT/STLExtras.h:269:36: error: 'nullopt' is not a member of 'std'
  269 |   bool reset() { return Obj = std::nullopt; }
      |                                    ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:269:36: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >::operator reference()':
/usr/include/llvm/ADT/STLExtras.h:271:34: error: 'Obj' was not declared in this scope
  271 |   operator reference() { return *Obj; }
      |                                  ^~~
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >::operator const_reference() const':
/usr/include/llvm/ADT/STLExtras.h:272:46: error: 'Obj' was not declared in this scope
  272 |   operator const_reference() const { return *Obj; }
      |                                              ^~~
/usr/include/llvm/ADT/STLExtras.h: At global scope:
/usr/include/llvm/ADT/STLExtras.h:278:38: error: 'is_pointer_v' is not a member of 'std'; did you mean 'is_pointer'?
  278 |   static constexpr bool IsPtr = std::is_pointer_v<remove_cvref_t<T>>;
      |                                      ^~~~~~~~~~~~
      |                                      is_pointer
/usr/include/llvm/ADT/STLExtras.h:278:67: error: expected primary-expression before '>' token
  278 |   static constexpr bool IsPtr = std::is_pointer_v<remove_cvref_t<T>>;
      |                                                                   ^~
/usr/include/llvm/ADT/STLExtras.h:278:69: error: expected primary-expression before ';' token
  278 |   static constexpr bool IsPtr = std::is_pointer_v<remove_cvref_t<T>>;
      |                                                                     ^
/usr/include/llvm/ADT/STLExtras.h:284:3: error: 'StorageT' does not name a type
  284 |   StorageT Func = nullptr;
      |   ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:307:13: error: 'is_same_v' is not a member of 'std'; did you mean 'is_same'?
  307 |       !std::is_same_v<remove_cvref_t<FnPtrOrRef>, Callable>, int
      |             ^~~~~~~~~
      |             is_same
/usr/include/llvm/ADT/STLExtras.h:307:59: error: template argument 1 is invalid
  307 |       !std::is_same_v<remove_cvref_t<FnPtrOrRef>, Callable>, int
      |                                                           ^
/usr/include/llvm/ADT/STLExtras.h:308:7: error: expected unqualified-id before '=' token
  308 |     > = 0
      |       ^
/usr/include/llvm/ADT/STLExtras.h:313:35: error: 'is_invocable_v' is not a member of 'std'
  313 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                   ^~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:313:35: error: 'is_invocable_v' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:313:58: error: pack expansion argument for non-pack parameter '_Tp' of alias template 'template<bool _Cond, class _Tp> using std::enable_if_t = typename std::enable_if::type'
  313 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                          ^
/usr/include/c++/13/type_traits:2609:24: note: declared here
 2609 |   template<bool _Cond, typename _Tp = void>
      |                        ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:313:66: error: expected unqualified-id before '=' token
  313 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                                  ^
/usr/include/llvm/ADT/STLExtras.h: In member function 'bool llvm::callable_detail::Callable<T, true>::valid() const':
/usr/include/llvm/ADT/STLExtras.h:318:31: error: 'Func' was not declared in this scope
  318 |   bool valid() const { return Func != nullptr; }
      |                               ^~~~
/usr/include/llvm/ADT/STLExtras.h: In member function 'void llvm::callable_detail::Callable<T, true>::reset()':
/usr/include/llvm/ADT/STLExtras.h:319:18: error: 'Func' was not declared in this scope
  319 |   void reset() { Func = nullptr; }
      |                  ^~~~
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, true>::operator const T&() const':
/usr/include/llvm/ADT/STLExtras.h:324:14: error: 'Func' was not declared in this scope
  324 |       return Func;
      |              ^~~~
/usr/include/llvm/ADT/STLExtras.h:326:26: error: 'is_reference_v' is not a member of 'std'; did you mean 'is_reference'?
  326 |       static_assert(std::is_reference_v<T>,
      |                          ^~~~~~~~~~~~~~
      |                          is_reference
/usr/include/llvm/ADT/STLExtras.h:326:42: error: expected primary-expression before '>' token
  326 |       static_assert(std::is_reference_v<T>,
      |                                          ^
/usr/include/llvm/ADT/STLExtras.h:326:43: error: expected primary-expression before ',' token
  326 |       static_assert(std::is_reference_v<T>,
      |                                           ^
/usr/include/llvm/ADT/STLExtras.h:329:15: error: 'Func' was not declared in this scope
  329 |       return *Func;
      |               ^~~~
/usr/include/llvm/ADT/STLExtras.h: At global scope:
/usr/include/llvm/ADT/STLExtras.h:423:35: error: template argument 2 is invalid
  423 |   callable_detail::Callable<FuncTy> F{};
      |                                   ^
/usr/include/llvm/ADT/STLExtras.h:927:60: error: 'optional' in namespace 'std' does not name a template type
  927 | auto deref_or_none(const Iter &I, const Iter &End) -> std::optional<
      |                                                            ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:927:55: note: 'std::optional' is only available from C++17 onwards
  927 | auto deref_or_none(const Iter &I, const Iter &End) -> std::optional<
      |                                                       ^~~
/usr/include/llvm/ADT/STLExtras.h:927:68: error: expected initializer before '<' token
  927 | auto deref_or_none(const Iter &I, const Iter &End) -> std::optional<
      |                                                                    ^
/usr/include/llvm/ADT/STLExtras.h:935:21: error: 'optional' in namespace 'std' does not name a template type
  935 |   using type = std::optional<std::remove_const_t<
      |                     ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:935:16: note: 'std::optional' is only available from C++17 onwards
  935 |   using type = std::optional<std::remove_const_t<
      |                ^~~
/usr/include/llvm/ADT/STLExtras.h:1511:24: error: 'disjunction' in namespace 'std' does not name a template type
 1511 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                        ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1511:19: note: 'std::disjunction' is only available from C++17 onwards
 1511 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                   ^~~
/usr/include/llvm/ADT/STLExtras.h:1516:26: error: 'conjunction' in namespace 'std' does not name a template type
 1516 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                          ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1516:21: note: 'std::conjunction' is only available from C++17 onwards
 1516 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                     ^~~
/usr/include/llvm/ADT/STLExtras.h:1675:38: error: 'conjunction' in namespace 'std' does not name a template type
 1675 | using sort_trivially_copyable = std::conjunction<
      |                                      ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1675:33: note: 'std::conjunction' is only available from C++17 onwards
 1675 | using sort_trivially_copyable = std::conjunction<
      |                                 ^~~
/usr/include/llvm/ADT/STLExtras.h: In function 'void llvm::sort(IteratorTy, IteratorTy)':
/usr/include/llvm/ADT/STLExtras.h:1684:25: error: 'sort_trivially_copyable' is not a member of 'llvm::detail'
 1684 |   if constexpr (detail::sort_trivially_copyable<IteratorTy>::value) {
      |                         ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1684:59: error: expected primary-expression before '>' token
 1684 |   if constexpr (detail::sort_trivially_copyable<IteratorTy>::value) {
      |                                                           ^
/usr/include/llvm/ADT/STLExtras.h:1684:62: error: '::value' has not been declared
 1684 |   if constexpr (detail::sort_trivially_copyable<IteratorTy>::value) {
      |                                                              ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In function 'bool llvm::detail::all_of_zip_predicate_first(Predicate&&, Args&& ...)':
/usr/include/llvm/ADT/STLExtras.h:2276:15: error: 'apply' is not a member of 'std'
 2276 |     if (!std::apply([&](auto &&...args) { return P(args...); }, *it))
      |               ^~~~~
/usr/include/llvm/ADT/STLExtras.h:2276:15: note: 'std::apply' is only available from C++17 onwards
/usr/include/llvm/ADT/ArrayRef.h: At global scope:
/usr/include/llvm/ADT/ArrayRef.h:70:27: error: invalid use of '::'
   70 |     /*implicit*/ ArrayRef(std::nullopt_t) {}
      |                           ^~~
/usr/include/llvm/ADT/ArrayRef.h:70:44: error: expected ';' at end of member declaration
   70 |     /*implicit*/ ArrayRef(std::nullopt_t) {}
      |                                            ^
      |                                             ;
/usr/include/llvm/ADT/ArrayRef.h:323:34: error: invalid use of '::'
  323 |     /*implicit*/ MutableArrayRef(std::nullopt_t) : ArrayRef<T>() {}
      |                                  ^~~
/usr/include/llvm/ADT/ArrayRef.h:472:65: error: expected constructor, destructor, or type conversion before ';' token
  472 |   template <typename T> ArrayRef(const T &OneElt) -> ArrayRef<T>;
      |                                                                 ^
/usr/include/llvm/ADT/ArrayRef.h:475:78: error: expected constructor, destructor, or type conversion before ';' token
  475 |   template <typename T> ArrayRef(const T *data, size_t length) -> ArrayRef<T>;
      |                                                                              ^
/usr/include/llvm/ADT/ArrayRef.h:478:77: error: expected constructor, destructor, or type conversion before ';' token
  478 |   template <typename T> ArrayRef(const T *data, const T *end) -> ArrayRef<T>;
      |                                                                             ^
/usr/include/llvm/ADT/ArrayRef.h:481:79: error: expected constructor, destructor, or type conversion before ';' token
  481 |   template <typename T> ArrayRef(const SmallVectorImpl<T> &Vec) -> ArrayRef<T>;
      |                                                                               ^
/usr/include/llvm/ADT/ArrayRef.h:485:56: error: expected constructor, destructor, or type conversion before ';' token
  485 |   ArrayRef(const SmallVector<T, N> &Vec) -> ArrayRef<T>;
      |                                                        ^
/usr/include/llvm/ADT/ArrayRef.h:488:75: error: expected constructor, destructor, or type conversion before ';' token
  488 |   template <typename T> ArrayRef(const std::vector<T> &Vec) -> ArrayRef<T>;
      |                                                                           ^
/usr/include/llvm/ADT/ArrayRef.h:492:55: error: expected constructor, destructor, or type conversion before ';' token
  492 |   ArrayRef(const std::array<T, N> &Vec) -> ArrayRef<T>;
      |                                                       ^
/usr/include/llvm/ADT/ArrayRef.h:495:72: error: expected constructor, destructor, or type conversion before ';' token
  495 |   template <typename T> ArrayRef(const ArrayRef<T> &Vec) -> ArrayRef<T>;
      |                                                                        ^
/usr/include/llvm/ADT/ArrayRef.h:498:66: error: expected constructor, destructor, or type conversion before ';' token
  498 |   template <typename T> ArrayRef(ArrayRef<T> &Vec) -> ArrayRef<T>;
      |                                                                  ^
/usr/include/llvm/ADT/ArrayRef.h:501:77: error: expected constructor, destructor, or type conversion before ';' token
  501 |   template <typename T, size_t N> ArrayRef(const T (&Arr)[N]) -> ArrayRef<T>;
      |                                                                             ^
/usr/include/llvm/ADT/ArrayRef.h:580:70: error: expected constructor, destructor, or type conversion before ';' token
  580 |   template <class T> MutableArrayRef(T &OneElt) -> MutableArrayRef<T>;
      |                                                                      ^
/usr/include/llvm/ADT/ArrayRef.h:585:64: error: expected constructor, destructor, or type conversion before ';' token
  585 |   MutableArrayRef(T *data, size_t length) -> MutableArrayRef<T>;
      |                                                                ^
/usr/include/llvm/ADT/ArrayRef.h:589:65: error: expected constructor, destructor, or type conversion before ';' token
  589 |   MutableArrayRef(SmallVectorImpl<T> &Vec) -> MutableArrayRef<T>;
      |                                                                 ^
/usr/include/llvm/ADT/ArrayRef.h:592:64: error: expected constructor, destructor, or type conversion before ';' token
  592 |   MutableArrayRef(SmallVector<T, N> &Vec) -> MutableArrayRef<T>;
      |                                                                ^
/usr/include/llvm/ADT/ArrayRef.h:595:80: error: expected constructor, destructor, or type conversion before ';' token
  595 |   template <class T> MutableArrayRef(std::vector<T> &Vec) -> MutableArrayRef<T>;
      |                                                                                ^
/usr/include/llvm/ADT/ArrayRef.h:599:63: error: expected constructor, destructor, or type conversion before ';' token
  599 |   MutableArrayRef(std::array<T, N> &Vec) -> MutableArrayRef<T>;
      |                                                               ^
/usr/include/llvm/ADT/ArrayRef.h:603:53: error: expected constructor, destructor, or type conversion before ';' token
  603 |   MutableArrayRef(T (&Arr)[N]) -> MutableArrayRef<T>;
      |                                                     ^
/usr/include/clang/Basic/Diagnostic.h: In static member function 'static clang::FixItHint clang::FixItHint::CreateInsertion(clang::SourceLocation, llvm::StringRef, bool)':
/usr/include/clang/Basic/Diagnostic.h:103:41: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  103 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
In file included from /usr/include/c++/13/string:54:
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:103:41: note:   candidate expects 3 arguments, 1 provided
  103 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: In static member function 'static clang::FixItHint clang::FixItHint::CreateReplacement(clang::CharSourceRange, llvm::StringRef)':
/usr/include/clang/Basic/Diagnostic.h:138:41: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  138 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:138:41: note:   candidate expects 3 arguments, 1 provided
  138 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: In member function 'void clang::StreamingDiagnostic::AddString(llvm::StringRef) const':
/usr/include/clang/Basic/Diagnostic.h:1202:78: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
 1202 |     DiagStorage->DiagArgumentsStr[DiagStorage->NumDiagArgs++] = std::string(V);
      |                                                                              ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:1202:78: note:   candidate expects 3 arguments, 1 provided
 1202 |     DiagStorage->DiagArgumentsStr[DiagStorage->NumDiagArgs++] = std::string(V);
      |                                                                              ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: In member function 'void clang::DiagnosticBuilder::addFlagValue(llvm::StringRef) const':
/usr/include/clang/Basic/Diagnostic.h:1369:76: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
 1369 |   void addFlagValue(StringRef V) const { DiagObj->FlagValue = std::string(V); }
      |                                                                            ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:1369:76: note:   candidate expects 3 arguments, 1 provided
 1369 |   void addFlagValue(StringRef V) const { DiagObj->FlagValue = std::string(V); }
      |                                                                            ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: At global scope:
/usr/include/clang/Basic/Diagnostic.h:1514:23: error: 'optional' in namespace 'std' does not name a template type
 1514 |            const std::optional<SourceRange> &Opt) {
      |                       ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1514:18: note: 'std::optional' is only available from C++17 onwards
 1514 |            const std::optional<SourceRange> &Opt) {
      |                  ^~~
/usr/include/clang/Basic/Diagnostic.h:1514:31: error: expected ',' or '...' before '<' token
 1514 |            const std::optional<SourceRange> &Opt) {
      |                               ^
/usr/include/clang/Basic/Diagnostic.h:1513:1: error: redefinition of 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)'
 1513 | operator<<(const StreamingDiagnostic &DB,
      | ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1401:35: note: 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)' previously defined here
 1401 | inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
      |                                   ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h: In function 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)':
/usr/include/clang/Basic/Diagnostic.h:1515:7: error: 'Opt' was not declared in this scope
 1515 |   if (Opt)
      |       ^~~
/usr/include/clang/Basic/Diagnostic.h: At global scope:
/usr/include/clang/Basic/Diagnostic.h:1522:23: error: 'optional' in namespace 'std' does not name a template type
 1522 |            const std::optional<CharSourceRange> &Opt) {
      |                       ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1522:18: note: 'std::optional' is only available from C++17 onwards
 1522 |            const std::optional<CharSourceRange> &Opt) {
      |                  ^~~
/usr/include/clang/Basic/Diagnostic.h:1522:31: error: expected ',' or '...' before '<' token
 1522 |            const std::optional<CharSourceRange> &Opt) {
      |                               ^
/usr/include/clang/Basic/Diagnostic.h:1521:1: error: redefinition of 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)'
 1521 | operator<<(const StreamingDiagnostic &DB,
      | ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1401:35: note: 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)' previously defined here
 1401 | inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
      |                                   ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h: In function 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)':
/usr/include/clang/Basic/Diagnostic.h:1523:7: error: 'Opt' was not declared in this scope
 1523 |   if (Opt)
      |       ^~~
/usr/include/clang/Basic/Diagnostic.h: At global scope:
/usr/include/clang/Basic/Diagnostic.h:1529:54: error: 'optional' in namespace 'std' does not name a template type
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      |                                                      ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1529:49: note: 'std::optional' is only available from C++17 onwards
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      |                                                 ^~~
/usr/include/clang/Basic/Diagnostic.h:1529:62: error: expected ',' or '...' before '<' token
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      |                                                              ^
/usr/include/clang/Basic/Diagnostic.h:1529:1: error: redefinition of 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)'
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      | ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1401:35: note: 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)' previously defined here
 1401 | inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
      |                                   ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h: In function 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)':
/usr/include/clang/Basic/Diagnostic.h:1530:7: error: 'Opt' was not declared in this scope
 1530 |   if (Opt)
      |       ^~~
/usr/include/clang/Basic/Diagnostic.h: In member function 'llvm::ArrayRef<clang::CharSourceRange> clang::StoredDiagnostic::getRanges() const':
/usr/include/clang/Basic/Diagnostic.h:1724:70: error: missing template arguments before '(' token
 1724 |   ArrayRef<CharSourceRange> getRanges() const { return llvm::ArrayRef(Ranges); }
      |                                                                      ^
/usr/include/clang/Basic/Diagnostic.h: In member function 'llvm::ArrayRef<clang::FixItHint> clang::StoredDiagnostic::getFixIts() const':
/usr/include/clang/Basic/Diagnostic.h:1732:64: error: missing template arguments before '(' token
 1732 |   ArrayRef<FixItHint> getFixIts() const { return llvm::ArrayRef(FixIts); }
      |                                                                ^
In file included from /usr/include/llvm/Support/Allocator.h:21,
                 from /usr/include/llvm/ADT/FoldingSet.h:22,
                 from /usr/include/clang/AST/NestedNameSpecifier.h:21:
/usr/include/llvm/Support/Alignment.h: At global scope:
/usr/include/llvm/Support/Alignment.h:117:41: error: expected template-name before '<' token
  117 | struct MaybeAlign : public std::optional<Align> {
      |                                         ^
/usr/include/llvm/Support/Alignment.h:117:41: error: expected '{' before '<' token
/usr/include/llvm/Support/Alignment.h:117:41: error: expected unqualified-id before '<' token
/usr/include/llvm/Support/Alignment.h:217:35: error: 'A' has incomplete type
  217 | inline unsigned encode(MaybeAlign A) { return A ? A->ShiftValue + 1 : 0; }
      |                        ~~~~~~~~~~~^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:220:50: error: return type 'struct llvm::MaybeAlign' is incomplete
  220 | inline MaybeAlign decodeMaybeAlign(unsigned Value) {
      |                                                  ^
/usr/include/llvm/Support/Alignment.h:220:19: error: ambiguating new declaration of 'void llvm::decodeMaybeAlign(unsigned int)'
  220 | inline MaybeAlign decodeMaybeAlign(unsigned Value) {
      |                   ^~~~~~~~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:53:28: note: old declaration 'llvm::MaybeAlign llvm::decodeMaybeAlign(unsigned int)'
   53 |   friend struct MaybeAlign decodeMaybeAlign(unsigned Value);
      |                            ^~~~~~~~~~~~~~~~
/usr/include/llvm/Support/Alignment.h: In function 'void llvm::decodeMaybeAlign(unsigned int)':
/usr/include/llvm/Support/Alignment.h:222:23: error: invalid use of incomplete type 'struct llvm::MaybeAlign'
  222 |     return MaybeAlign();
      |                       ^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:224:7: error: 'uint8_t llvm::Align::ShiftValue' is private within this context
  224 |   Out.ShiftValue = Value - 1;
      |       ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:41:11: note: declared private here
   41 |   uint8_t ShiftValue = 0; /// The log2 of the required alignment.
      |           ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h: In function 'unsigned int llvm::encode(Align)':
/usr/include/llvm/Support/Alignment.h:230:61: error: invalid use of incomplete type 'struct llvm::MaybeAlign'
  230 | inline unsigned encode(Align A) { return encode(MaybeAlign(A)); }
      |                                                             ^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h: At global scope:
/usr/include/llvm/Support/Alignment.h:295:35: error: 'Lhs' has incomplete type
  295 | inline bool operator==(MaybeAlign Lhs, Align Rhs) { return Lhs && *Lhs == Rhs; }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:296:35: error: 'Lhs' has incomplete type
  296 | inline bool operator!=(MaybeAlign Lhs, Align Rhs) { return !(Lhs == Rhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:297:46: error: 'Rhs' has incomplete type
  297 | inline bool operator==(Align Lhs, MaybeAlign Rhs) { return Rhs == Lhs; }
      |                                   ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:298:46: error: 'Rhs' has incomplete type
  298 | inline bool operator!=(Align Lhs, MaybeAlign Rhs) { return !(Rhs == Lhs); }
      |                                   ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:300:35: error: 'Lhs' has incomplete type
  300 | inline bool operator==(MaybeAlign Lhs, MaybeAlign Rhs) {
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:300:51: error: 'Rhs' has incomplete type
  300 | inline bool operator==(MaybeAlign Lhs, MaybeAlign Rhs) {
      |                                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:303:35: error: 'Lhs' has incomplete type
  303 | inline bool operator!=(MaybeAlign Lhs, MaybeAlign Rhs) { return !(Lhs == Rhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:303:51: error: 'Rhs' has incomplete type
  303 | inline bool operator!=(MaybeAlign Lhs, MaybeAlign Rhs) { return !(Lhs == Rhs); }
      |                                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:305:45: error: 'std::nullopt_t' has not been declared
  305 | inline bool operator==(MaybeAlign Lhs, std::nullopt_t) { return !bool(Lhs); }
      |                                             ^~~~~~~~~
/usr/include/llvm/Support/Alignment.h:305:35: error: 'Lhs' has incomplete type
  305 | inline bool operator==(MaybeAlign Lhs, std::nullopt_t) { return !bool(Lhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:306:45: error: 'std::nullopt_t' has not been declared
  306 | inline bool operator!=(MaybeAlign Lhs, std::nullopt_t) { return bool(Lhs); }
      |                                             ^~~~~~~~~
/usr/include/llvm/Support/Alignment.h:306:35: error: 'Lhs' has incomplete type
  306 | inline bool operator!=(MaybeAlign Lhs, std::nullopt_t) { return bool(Lhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:307:13: error: declaration of 'operator==' as non-function
  307 | inline bool operator==(std::nullopt_t, MaybeAlign Rhs) { return !bool(Rhs); }
      |             ^~~~~~~~
/usr/include/llvm/Support/Alignment.h:307:29: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  307 | inline bool operator==(std::nullopt_t, MaybeAlign Rhs) { return !bool(Rhs); }
      |                             ^~~~~~~~~
      |                             nullptr_t
/usr/include/llvm/Support/Alignment.h:307:51: error: expected primary-expression before 'Rhs'
  307 | inline bool operator==(std::nullopt_t, MaybeAlign Rhs) { return !bool(Rhs); }
      |                                                   ^~~
/usr/include/llvm/Support/Alignment.h:308:13: error: declaration of 'operator!=' as non-function
  308 | inline bool operator!=(std::nullopt_t, MaybeAlign Rhs) { return bool(Rhs); }
      |             ^~~~~~~~
/usr/include/llvm/Support/Alignment.h:308:29: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  308 | inline bool operator!=(std::nullopt_t, MaybeAlign Rhs) { return bool(Rhs); }
      |                             ^~~~~~~~~
      |                             nullptr_t
/usr/include/llvm/Support/Alignment.h:308:51: error: expected primary-expression before 'Rhs'
  308 | inline bool operator!=(std::nullopt_t, MaybeAlign Rhs) { return bool(Rhs); }
      |                                                   ^~~
/usr/include/llvm/Support/Alignment.h: In function 'std::string llvm::DebugStr(const MaybeAlign&)':
/usr/include/llvm/Support/Alignment.h:317:7: error: could not convert 'MA' from 'const llvm::MaybeAlign' to 'bool'
  317 |   if (MA)
      |       ^~
      |       |
      |       const llvm::MaybeAlign
/usr/include/llvm/Support/Alignment.h:318:29: error: base operand of '->' has non-pointer type 'const llvm::MaybeAlign'
  318 |     return std::to_string(MA->value());
      |                             ^~
/usr/include/llvm/Support/Allocator.h: At global scope:
/usr/include/llvm/Support/Allocator.h:232:8: error: 'optional' in namespace 'std' does not name a template type
  232 |   std::optional<int64_t> identifyObject(const void *Ptr) {
      |        ^~~~~~~~
/usr/include/llvm/Support/Allocator.h:232:3: note: 'std::optional' is only available from C++17 onwards
  232 |   std::optional<int64_t> identifyObject(const void *Ptr) {
      |   ^~~
/usr/include/llvm/Support/Allocator.h: In member function 'int64_t llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold, GrowthDelay>::identifyKnownObject(const void*)':
/usr/include/llvm/Support/Allocator.h:259:10: error: 'optional' is not a member of 'std'
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |          ^~~~~~~~
/usr/include/llvm/Support/Allocator.h:259:10: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Allocator.h:259:26: error: expected primary-expression before '>' token
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |                          ^
/usr/include/llvm/Support/Allocator.h:259:28: error: 'Out' was not declared in this scope
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |                            ^~~
/usr/include/llvm/Support/Allocator.h:259:34: error: there are no arguments to 'identifyObject' that depend on a template parameter, so a declaration of 'identifyObject' must be available [-fpermissive]
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |                                  ^~~~~~~~~~~~~~
/usr/include/llvm/Support/Allocator.h:259:34: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from /usr/include/llvm/ADT/APSInt.h:18,
                 from /usr/include/llvm/ADT/APFixedPoint.h:19,
                 from /usr/include/clang/AST/APValue.h:17,
                 from /usr/include/clang/AST/Expr.h:16,
                 from /usr/include/clang/AST/ASTConcept.h:17,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:16,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/BinOpSimplification.cpp:19:
/usr/include/llvm/ADT/APInt.h: At global scope:
/usr/include/llvm/ADT/APInt.h:1506:8: error: 'optional' in namespace 'std' does not name a template type
 1506 |   std::optional<uint64_t> tryZExtValue() const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:1506:3: note: 'std::optional' is only available from C++17 onwards
 1506 |   std::optional<uint64_t> tryZExtValue() const {
      |   ^~~
/usr/include/llvm/ADT/APInt.h:1528:8: error: 'optional' in namespace 'std' does not name a template type
 1528 |   std::optional<int64_t> trySExtValue() const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:1528:3: note: 'std::optional' is only available from C++17 onwards
 1528 |   std::optional<int64_t> trySExtValue() const {
      |   ^~~
/usr/include/llvm/ADT/APInt.h: In member function 'unsigned int llvm::APInt::countPopulation() const':
/usr/include/llvm/ADT/APInt.h:1621:20: error: 'popcount' is not a member of 'llvm'; did you mean 'count'?
 1621 |       return llvm::popcount(U.VAL);
      |                    ^~~~~~~~
      |                    count
/usr/include/llvm/ADT/APInt.h: At global scope:
/usr/include/llvm/ADT/APInt.h:2279:6: error: 'optional' in namespace 'std' does not name a template type
 2279 | std::optional<APInt> SolveQuadraticEquationWrap(APInt A, APInt B, APInt C,
      |      ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:2279:1: note: 'std::optional' is only available from C++17 onwards
 2279 | std::optional<APInt> SolveQuadraticEquationWrap(APInt A, APInt B, APInt C,
      | ^~~
/usr/include/llvm/ADT/APInt.h:2284:6: error: 'optional' in namespace 'std' does not name a template type
 2284 | std::optional<unsigned> GetMostSignificantDifferentBit(const APInt &A,
      |      ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:2284:1: note: 'std::optional' is only available from C++17 onwards
 2284 | std::optional<unsigned> GetMostSignificantDifferentBit(const APInt &A,
      | ^~~
/usr/include/llvm/ADT/APSInt.h:103:8: error: 'optional' in namespace 'std' does not name a template type
  103 |   std::optional<int64_t> tryExtValue() const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APSInt.h:103:3: note: 'std::optional' is only available from C++17 onwards
  103 |   std::optional<int64_t> tryExtValue() const {
      |   ^~~
In file included from /usr/include/llvm/ADT/APFixedPoint.h:23:
/usr/include/llvm/Support/raw_ostream.h:252:38: error: 'string_view' in namespace 'std' does not name a type
  252 |   raw_ostream &operator<<(const std::string_view &Str) {
      |                                      ^~~~~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:252:33: note: 'std::string_view' is only available from C++17 onwards
  252 |   raw_ostream &operator<<(const std::string_view &Str) {
      |                                 ^~~
/usr/include/llvm/Support/raw_ostream.h: In member function 'llvm::raw_ostream& llvm::raw_ostream::operator<<(const int&)':
/usr/include/llvm/Support/raw_ostream.h:253:22: error: request for member 'data' in 'Str', which is of non-class type 'const int'
  253 |     return write(Str.data(), Str.length());
      |                      ^~~~
/usr/include/llvm/Support/raw_ostream.h:253:34: error: request for member 'length' in 'Str', which is of non-class type 'const int'
  253 |     return write(Str.data(), Str.length());
      |                                  ^~~~~~
/usr/include/llvm/Support/raw_ostream.h: At global scope:
/usr/include/llvm/Support/raw_ostream.h:459:16: error: 'optional' in namespace 'std' does not name a template type
  459 |   mutable std::optional<bool> HasColors;
      |                ^~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:459:11: note: 'std::optional' is only available from C++17 onwards
  459 |   mutable std::optional<bool> HasColors;
      |           ^~~
/usr/include/llvm/Support/raw_ostream.h:757:47: error: 'std::nullopt_t' has not been declared
  757 | raw_ostream &operator<<(raw_ostream &OS, std::nullopt_t);
      |                                               ^~~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:761:53: error: 'optional' in namespace 'std' does not name a template type
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                     ^~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:761:48: note: 'std::optional' is only available from C++17 onwards
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                ^~~
/usr/include/llvm/Support/raw_ostream.h:761:61: error: expected ',' or '...' before '<' token
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                             ^
/usr/include/llvm/Support/raw_ostream.h: In function 'llvm::raw_ostream& llvm::operator<<(raw_ostream&, int)':
/usr/include/llvm/Support/raw_ostream.h:762:7: error: 'O' was not declared in this scope; did you mean 'OS'?
  762 |   if (O)
      |       ^
      |       OS
/usr/include/llvm/Support/raw_ostream.h:765:16: error: 'nullopt' is not a member of 'std'
  765 |     OS << std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/Support/raw_ostream.h:765:16: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/APFixedPoint.h: In member function 'std::string llvm::APFixedPoint::toString() const':
/usr/include/llvm/ADT/APFixedPoint.h:238:31: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef)'
  238 |     return std::string(S.str());
      |                               ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/ADT/APFixedPoint.h:238:31: note:   candidate expects 3 arguments, 1 provided
  238 |     return std::string(S.str());
      |                               ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/llvm/ADT/FloatingPointMode.h:18,
                 from /usr/include/llvm/ADT/APFloat.h:20,
                 from /usr/include/clang/AST/APValue.h:18:
/usr/include/llvm/ADT/StringSwitch.h: At global scope:
/usr/include/llvm/ADT/StringSwitch.h:50:8: error: 'optional' in namespace 'std' does not name a template type
   50 |   std::optional<T> Result;
      |        ^~~~~~~~
/usr/include/llvm/ADT/StringSwitch.h:50:3: note: 'std::optional' is only available from C++17 onwards
   50 |   std::optional<T> Result;
      |   ^~~
/usr/include/llvm/ADT/StringSwitch.h: In constructor 'llvm::StringSwitch<T, R>::StringSwitch(llvm::StringRef)':
/usr/include/llvm/ADT/StringSwitch.h:54:13: error: class 'llvm::StringSwitch<T, R>' does not have any field named 'Result'
   54 |   : Str(S), Result() { }
      |             ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In constructor 'llvm::StringSwitch<T, R>::StringSwitch(llvm::StringSwitch<T, R>&&)':
/usr/include/llvm/ADT/StringSwitch.h:64:23: error: class 'llvm::StringSwitch<T, R>' does not have any field named 'Result'
   64 |     : Str(other.Str), Result(std::move(other.Result)) { }
      |                       ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Case(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:70:10: error: 'Result' was not declared in this scope
   70 |     if (!Result && Str == S) {
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::EndsWith(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:77:10: error: 'Result' was not declared in this scope
   77 |     if (!Result && Str.endswith(S)) {
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::StartsWith(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:84:10: error: 'Result' was not declared in this scope
   84 |     if (!Result && Str.startswith(S)) {
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::CaseLower(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:143:10: error: 'Result' was not declared in this scope
  143 |     if (!Result && Str.equals_insensitive(S))
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::EndsWithLower(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:150:10: error: 'Result' was not declared in this scope
  150 |     if (!Result && Str.endswith_insensitive(S))
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::StartsWithLower(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:157:10: error: 'Result' was not declared in this scope
  157 |     if (!Result && Str.startswith_insensitive(S))
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'R llvm::StringSwitch<T, R>::Default(T)':
/usr/include/llvm/ADT/StringSwitch.h:183:9: error: 'Result' was not declared in this scope
  183 |     if (Result)
      |         ^~~~~~
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/llvm/ADT/StringSwitch.h:18:
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>::operator R()':
/usr/include/llvm/ADT/StringSwitch.h:189:5: error: 'Result' was not declared in this scope
  189 |     assert(Result && "Fell off the end of a string-switch");
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>'
/usr/include/clang/AST/APValue.h:190:11:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
In file included from /usr/include/clang/AST/APValue.h:22:
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>':
/usr/include/clang/AST/APValue.h:190:11:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/Type.h:22,
                 from /usr/include/clang/AST/DeclarationName.h:16,
                 from /usr/include/clang/AST/DeclBase.h:18,
                 from /usr/include/clang/AST/Decl.h:19,
                 from /usr/include/clang/AST/Expr.h:19:
/usr/include/clang/AST/TemplateName.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::OverloadedTemplateStorage::decls() const':
/usr/include/clang/AST/TemplateName.h:130:26: error: missing template arguments before '(' token
  130 |     return llvm::ArrayRef(begin(), end());
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>'
/usr/include/clang/AST/TemplateName.h:211:15:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>':
/usr/include/clang/AST/TemplateName.h:211:15:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/TemplateName.h: At global scope:
/usr/include/clang/AST/TemplateName.h:383:41: error: 'std::optional' has not been declared
  383 |                                    std::optional<unsigned> PackIndex)
      |                                         ^~~~~~~~
/usr/include/clang/AST/TemplateName.h:383:49: error: expected ',' or '...' before '<' token
  383 |                                    std::optional<unsigned> PackIndex)
      |                                                 ^
/usr/include/clang/AST/TemplateName.h:399:8: error: 'optional' in namespace 'std' does not name a template type
  399 |   std::optional<unsigned> getPackIndex() const {
      |        ^~~~~~~~
/usr/include/clang/AST/TemplateName.h:399:3: note: 'std::optional' is only available from C++17 onwards
  399 |   std::optional<unsigned> getPackIndex() const {
      |   ^~~
/usr/include/clang/AST/TemplateName.h:412:28: error: 'std::optional' has not been declared
  412 |                       std::optional<unsigned> PackIndex);
      |                            ^~~~~~~~
/usr/include/clang/AST/TemplateName.h:412:36: error: expected ',' or '...' before '<' token
  412 |                       std::optional<unsigned> PackIndex);
      |                                    ^
/usr/include/clang/AST/TemplateName.h: In constructor 'clang::SubstTemplateTemplateParmStorage::SubstTemplateTemplateParmStorage(clang::TemplateName, clang::Decl*, unsigned int, int)':
/usr/include/clang/AST/TemplateName.h:385:37: error: 'PackIndex' was not declared in this scope
  385 |                                     PackIndex ? *PackIndex + 1 : 0),
      |                                     ^~~~~~~~~
In file included from /usr/include/clang/AST/Type.h:40:
/usr/include/llvm/ADT/Twine.h: At global scope:
/usr/include/llvm/ADT/Twine.h:292:35: error: 'string_view' in namespace 'std' does not name a type
  292 |     /*implicit*/ Twine(const std::string_view &Str)
      |                                   ^~~~~~~~~~~
/usr/include/llvm/ADT/Twine.h:292:30: note: 'std::string_view' is only available from C++17 onwards
  292 |     /*implicit*/ Twine(const std::string_view &Str)
      |                              ^~~
/usr/include/llvm/ADT/Twine.h: In constructor 'llvm::Twine::Twine(const int&)':
/usr/include/llvm/ADT/Twine.h:294:34: error: request for member 'data' in 'Str', which is of non-class type 'const int'
  294 |       LHS.ptrAndLength.ptr = Str.data();
      |                                  ^~~~
/usr/include/llvm/ADT/Twine.h:295:37: error: request for member 'length' in 'Str', which is of non-class type 'const int'
  295 |       LHS.ptrAndLength.length = Str.length();
      |                                     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::Type*, const clang::ExtQuals*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::Type*, const clang::ExtQuals*>'
/usr/include/clang/AST/Type.h:744:28:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::Type*, const clang::ExtQuals*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::Type*, const clang::ExtQuals*>':
/usr/include/clang/AST/Type.h:744:28:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::Type*, const clang::ExtQuals*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Type.h: At global scope:
/usr/include/clang/AST/Type.h:2555:8: error: 'optional' in namespace 'std' does not name a template type
 2555 |   std::optional<NullabilityKind> getNullability() const;
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:2555:3: note: 'std::optional' is only available from C++17 onwards
 2555 |   std::optional<NullabilityKind> getNullability() const;
      |   ^~~
/usr/include/clang/AST/Type.h:2579:8: error: 'optional' in namespace 'std' does not name a template type
 2579 |   std::optional<ArrayRef<QualType>>
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:2579:3: note: 'std::optional' is only available from C++17 onwards
 2579 |   std::optional<ArrayRef<QualType>>
      |   ^~~
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::FunctionProtoType::getParamTypes() const':
/usr/include/clang/AST/Type.h:4240:26: error: missing template arguments before '(' token
 4240 |     return llvm::ArrayRef(param_type_begin(), param_type_end());
      |                          ^
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::FunctionProtoType::param_types() const':
/usr/include/clang/AST/Type.h:4387:26: error: missing template arguments before '(' token
 4387 |     return llvm::ArrayRef(param_type_begin(), param_type_end());
      |                          ^
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::FunctionProtoType::exceptions() const':
/usr/include/clang/AST/Type.h:4401:26: error: missing template arguments before '(' token
 4401 |     return llvm::ArrayRef(exception_begin(), exception_end());
      |                          ^
/usr/include/clang/AST/Type.h: At global scope:
/usr/include/clang/AST/Type.h:4925:8: error: 'optional' in namespace 'std' does not name a template type
 4925 |   std::optional<NullabilityKind> getImmediateNullability() const;
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:4925:3: note: 'std::optional' is only available from C++17 onwards
 4925 |   std::optional<NullabilityKind> getImmediateNullability() const;
      |   ^~~
/usr/include/clang/AST/Type.h:4955:15: error: 'optional' in namespace 'std' does not name a template type
 4955 |   static std::optional<NullabilityKind> stripOuterNullability(QualType &T);
      |               ^~~~~~~~
/usr/include/clang/AST/Type.h:4955:10: note: 'std::optional' is only available from C++17 onwards
 4955 |   static std::optional<NullabilityKind> stripOuterNullability(QualType &T);
      |          ^~~
/usr/include/clang/AST/Type.h:5096:50: error: 'std::optional' has not been declared
 5096 |                             unsigned Index, std::optional<unsigned> PackIndex);
      |                                                  ^~~~~~~~
/usr/include/clang/AST/Type.h:5096:58: error: expected ',' or '...' before '<' token
 5096 |                             unsigned Index, std::optional<unsigned> PackIndex);
      |                                                          ^
/usr/include/clang/AST/Type.h:5119:8: error: 'optional' in namespace 'std' does not name a template type
 5119 |   std::optional<unsigned> getPackIndex() const {
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:5119:3: note: 'std::optional' is only available from C++17 onwards
 5119 |   std::optional<unsigned> getPackIndex() const {
      |   ^~~
/usr/include/clang/AST/Type.h:5135:28: error: 'std::optional' has not been declared
 5135 |                       std::optional<unsigned> PackIndex) {
      |                            ^~~~~~~~
/usr/include/clang/AST/Type.h:5135:36: error: expected ',' or '...' before '<' token
 5135 |                       std::optional<unsigned> PackIndex) {
      |                                    ^
/usr/include/clang/AST/Type.h: In member function 'void clang::SubstTemplateTypeParmType::Profile(llvm::FoldingSetNodeID&)':
/usr/include/clang/AST/Type.h:5130:13: error: 'getPackIndex' was not declared in this scope; did you mean 'getIndex'?
 5130 |             getPackIndex());
      |             ^~~~~~~~~~~~
      |             getIndex
/usr/include/clang/AST/Type.h: In static member function 'static void clang::SubstTemplateTypeParmType::Profile(llvm::FoldingSetNodeID&, clang::QualType, const clang::Decl*, unsigned int, int)':
/usr/include/clang/AST/Type.h:5139:19: error: 'PackIndex' was not declared in this scope
 5139 |     ID.AddInteger(PackIndex ? *PackIndex - 1 : 0);
      |                   ^~~~~~~~~
/usr/include/clang/AST/Type.h: At global scope:
/usr/include/clang/AST/Type.h:5849:26: error: 'std::optional' has not been declared
 5849 |                     std::optional<unsigned> NumExpansions)
      |                          ^~~~~~~~
/usr/include/clang/AST/Type.h:5849:34: error: expected ',' or '...' before '<' token
 5849 |                     std::optional<unsigned> NumExpansions)
      |                                  ^
/usr/include/clang/AST/Type.h:5867:8: error: 'optional' in namespace 'std' does not name a template type
 5867 |   std::optional<unsigned> getNumExpansions() const {
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:5867:3: note: 'std::optional' is only available from C++17 onwards
 5867 |   std::optional<unsigned> getNumExpansions() const {
      |   ^~~
/usr/include/clang/AST/Type.h:5881:28: error: 'std::optional' has not been declared
 5881 |                       std::optional<unsigned> NumExpansions) {
      |                            ^~~~~~~~
/usr/include/clang/AST/Type.h:5881:36: error: expected ',' or '...' before '<' token
 5881 |                       std::optional<unsigned> NumExpansions) {
      |                                    ^
/usr/include/clang/AST/Type.h: In constructor 'clang::PackExpansionType::PackExpansionType(clang::QualType, clang::QualType, int)':
/usr/include/clang/AST/Type.h:5856:9: error: 'NumExpansions' was not declared in this scope
 5856 |         NumExpansions ? *NumExpansions + 1 : 0;
      |         ^~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In member function 'void clang::PackExpansionType::Profile(llvm::FoldingSetNodeID&)':
/usr/include/clang/AST/Type.h:5877:31: error: 'getNumExpansions' was not declared in this scope
 5877 |     Profile(ID, getPattern(), getNumExpansions());
      |                               ^~~~~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In static member function 'static void clang::PackExpansionType::Profile(llvm::FoldingSetNodeID&, clang::QualType, int)':
/usr/include/clang/AST/Type.h:5883:19: error: 'NumExpansions' was not declared in this scope
 5883 |     ID.AddBoolean(NumExpansions.has_value());
      |                   ^~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::ObjCObjectType::getTypeArgsAsWritten() const':
/usr/include/clang/AST/Type.h:6138:26: error: missing template arguments before '(' token
 6138 |     return llvm::ArrayRef(getTypeArgStorage(), ObjCObjectTypeBits.NumTypeArgs);
      |                          ^
/usr/include/clang/AST/Type.h: In constructor 'clang::DecayedType::DecayedType(clang::QualType, clang::QualType, clang::QualType)':
/usr/include/clang/AST/Type.h:7484:25: error: 'stripOuterNullability' is not a member of 'clang::AttributedType'
 7484 |   (void)AttributedType::stripOuterNullability(Adjusted);
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In member function 'clang::QualType clang::DecayedType::getPointeeType() const':
/usr/include/clang/AST/Type.h:7491:25: error: 'stripOuterNullability' is not a member of 'clang::AttributedType'
 7491 |   (void)AttributedType::stripOuterNullability(Decayed);
      |                         ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/ADT/StringMap.h:17,
                 from /usr/include/clang/Basic/IdentifierTable.h:23,
                 from /usr/include/clang/AST/DeclarationName.h:18:
/usr/include/llvm/ADT/StringMapEntry.h: At global scope:
/usr/include/llvm/ADT/StringMapEntry.h:88:34: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
   88 | class StringMapEntryStorage<std::nullopt_t> : public StringMapEntryBase {
      |                                  ^~~~~~~~~
      |                                  nullptr_t
/usr/include/llvm/ADT/StringMapEntry.h:88:34: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
   88 | class StringMapEntryStorage<std::nullopt_t> : public StringMapEntryBase {
      |                                  ^~~~~~~~~
      |                                  nullptr_t
/usr/include/llvm/ADT/StringMapEntry.h:88:43: error: template argument 1 is invalid
   88 | class StringMapEntryStorage<std::nullopt_t> : public StringMapEntryBase {
      |                                           ^
In file included from /usr/include/clang/AST/DeclBase.h:31:
/usr/include/llvm/Support/VersionTuple.h:76:8: error: 'optional' in namespace 'std' does not name a template type
   76 |   std::optional<unsigned> getMinor() const {
      |        ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:76:3: note: 'std::optional' is only available from C++17 onwards
   76 |   std::optional<unsigned> getMinor() const {
      |   ^~~
/usr/include/llvm/Support/VersionTuple.h:83:8: error: 'optional' in namespace 'std' does not name a template type
   83 |   std::optional<unsigned> getSubminor() const {
      |        ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:83:3: note: 'std::optional' is only available from C++17 onwards
   83 |   std::optional<unsigned> getSubminor() const {
      |   ^~~
/usr/include/llvm/Support/VersionTuple.h:90:8: error: 'optional' in namespace 'std' does not name a template type
   90 |   std::optional<unsigned> getBuild() const {
      |        ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:90:3: note: 'std::optional' is only available from C++17 onwards
   90 |   std::optional<unsigned> getBuild() const {
      |   ^~~
/usr/include/llvm/Support/VersionTuple.h: In static member function 'static unsigned int llvm::DenseMapInfo<llvm::VersionTuple>::getHashValue(const llvm::VersionTuple&)':
/usr/include/llvm/Support/VersionTuple.h:203:28: error: 'const class llvm::VersionTuple' has no member named 'getMinor'; did you mean 'getMajor'?
  203 |     if (auto Minor = Value.getMinor())
      |                            ^~~~~~~~
      |                            getMajor
/usr/include/llvm/Support/VersionTuple.h:205:31: error: 'const class llvm::VersionTuple' has no member named 'getSubminor'; did you mean 'unsigned int:31 llvm::VersionTuple::Subminor'? (not accessible from this context)
  205 |     if (auto Subminor = Value.getSubminor())
      |                               ^~~~~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:37:12: note: declared private here
   37 |   unsigned Subminor : 31;
      |            ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:207:28: error: 'const class llvm::VersionTuple' has no member named 'getBuild'; did you mean 'unsigned int:31 llvm::VersionTuple::Build'? (not accessible from this context)
  207 |     if (auto Build = Value.getBuild())
      |                            ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:40:12: note: declared private here
   40 |   unsigned Build : 31;
      |            ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::DeclContext*, clang::Decl::MultipleDC*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::DeclContext*, clang::Decl::MultipleDC*>'
/usr/include/clang/AST/DeclBase.h:269:49:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::DeclContext*, clang::Decl::MultipleDC*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::DeclContext*, clang::Decl::MultipleDC*>':
/usr/include/clang/AST/DeclBase.h:269:49:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::DeclContext*, clang::Decl::MultipleDC*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::NamedDecl*, clang::DeclListNode*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::NamedDecl*, clang::DeclListNode*>'
/usr/include/clang/AST/DeclBase.h:1290:11:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::NamedDecl*, clang::DeclListNode*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::NamedDecl*, clang::DeclListNode*>':
/usr/include/clang/AST/DeclBase.h:1290:11:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::NamedDecl*, clang::DeclListNode*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/ExternalASTSource.h:17,
                 from /usr/include/clang/AST/Decl.h:21:
/usr/include/clang/AST/CharUnits.h: At global scope:
/usr/include/clang/AST/CharUnits.h:194:48: error: return type 'struct llvm::MaybeAlign' is incomplete
  194 |       llvm::MaybeAlign getAsMaybeAlign() const {
      |                                                ^
/usr/include/clang/AST/CharUnits.h: In member function 'void clang::CharUnits::getAsMaybeAlign() const':
/usr/include/clang/AST/CharUnits.h:195:41: error: invalid use of incomplete type 'struct llvm::MaybeAlign'
  195 |         return llvm::MaybeAlign(Quantity);
      |                                         ^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/clang/AST/ExternalASTSource.h: At global scope:
/usr/include/clang/AST/ExternalASTSource.h:163:16: error: 'optional' in namespace 'std' does not name a template type
  163 |   virtual std::optional<ASTSourceDescriptor> getSourceDescriptor(unsigned ID);
      |                ^~~~~~~~
/usr/include/clang/AST/ExternalASTSource.h:163:11: note: 'std::optional' is only available from C++17 onwards
  163 |   virtual std::optional<ASTSourceDescriptor> getSourceDescriptor(unsigned ID);
      |           ^~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >'
/usr/include/clang/AST/Redeclarable.h:105:61:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >':
/usr/include/clang/AST/Redeclarable.h:105:61:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Decl*, const void*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Decl*, const void*>'
/usr/include/clang/AST/Redeclarable.h:119:40:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Decl*, const void*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Decl*, const void*>':
/usr/include/clang/AST/Redeclarable.h:119:40:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Decl*, const void*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>'
/usr/include/clang/AST/ExternalASTSource.h:402:13:   required from 'struct clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>'
/usr/include/clang/AST/Redeclarable.h:134:61:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>':
/usr/include/clang/AST/ExternalASTSource.h:402:13:   required from 'struct clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>'
/usr/include/clang/AST/Redeclarable.h:134:61:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Decl.h:440:8: error: 'optional' in namespace 'std' does not name a template type
  440 |   std::optional<Visibility>
      |        ^~~~~~~~
/usr/include/clang/AST/Decl.h:440:3: note: 'std::optional' is only available from C++17 onwards
  440 |   std::optional<Visibility>
      |   ^~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>'
/usr/include/clang/AST/Decl.h:776:51:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>':
/usr/include/clang/AST/Decl.h:776:51:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, clang::EvaluatedStmt*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, clang::EvaluatedStmt*>'
/usr/include/clang/AST/Decl.h:961:20:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, clang::EvaluatedStmt*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, clang::EvaluatedStmt*>':
/usr/include/clang/AST/Decl.h:961:20:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, clang::EvaluatedStmt*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>'
/usr/include/clang/AST/Decl.h:2006:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>':
/usr/include/clang/AST/Decl.h:2006:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Decl.h:2477:12: error: 'std::optional' has not been declared
 2477 |       std::optional<unsigned> *AlignmentParam = nullptr,
      |            ^~~~~~~~
/usr/include/clang/AST/Decl.h:2477:20: error: expected ',' or '...' before '<' token
 2477 |       std::optional<unsigned> *AlignmentParam = nullptr,
      |                    ^
/usr/include/clang/AST/Decl.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::IndirectFieldDecl::chain() const':
/usr/include/clang/AST/Decl.h:3220:26: error: missing template arguments before '(' token
 3220 |     return llvm::ArrayRef(Chaining, ChainingSize);
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>'
/usr/include/clang/AST/Decl.h:3307:9:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>':
/usr/include/clang/AST/Decl.h:3307:9:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypedefNameDecl*, clang::QualifierInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypedefNameDecl*, clang::QualifierInfo*>'
/usr/include/clang/AST/Decl.h:3460:52:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypedefNameDecl*, clang::QualifierInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypedefNameDecl*, clang::QualifierInfo*>':
/usr/include/clang/AST/Decl.h:3460:52:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypedefNameDecl*, clang::QualifierInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::Type*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::Type*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/Decl.h:3736:54:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::Type*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::Type*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/Decl.h:3736:54:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::Type*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/Basic/ObjCRuntime.h:21,
                 from /usr/include/clang/Basic/LangOptions.h:20,
                 from /usr/include/clang/AST/Stmt.h:22,
                 from /usr/include/clang/AST/Expr.h:23:
/usr/include/llvm/Support/HashBuilder.h: At global scope:
/usr/include/llvm/Support/HashBuilder.h:84:8: error: 'optional' in namespace 'std' does not name a template type
   84 |   std::optional<HasherT> OptionalHasher;
      |        ^~~~~~~~
/usr/include/llvm/Support/HashBuilder.h:84:3: note: 'std::optional' is only available from C++17 onwards
   84 |   std::optional<HasherT> OptionalHasher;
      |   ^~~
/usr/include/llvm/Support/HashBuilder.h: In member function 'void llvm::HashBuilderBase<HasherT>::update(llvm::StringRef)':
/usr/include/llvm/Support/HashBuilder.h:62:17: error: missing template arguments before '(' token
   62 |         ArrayRef(reinterpret_cast<const uint8_t *>(Data.data()), Data.size()));
      |                 ^
/usr/include/llvm/Support/HashBuilder.h: In constructor 'llvm::HashBuilderBase<HasherT>::HashBuilderBase(ArgTypes&& ...)':
/usr/include/llvm/Support/HashBuilder.h:80:9: error: class 'llvm::HashBuilderBase<HasherT>' does not have any field named 'OptionalHasher'
   80 |       : OptionalHasher(std::in_place, std::forward<ArgTypes>(Args)...),
      |         ^~~~~~~~~~~~~~
/usr/include/llvm/Support/HashBuilder.h:80:29: error: 'in_place' is not a member of 'std'
   80 |       : OptionalHasher(std::in_place, std::forward<ArgTypes>(Args)...),
      |                             ^~~~~~~~
/usr/include/llvm/Support/HashBuilder.h:80:29: note: 'std::in_place' is only available from C++17 onwards
/usr/include/llvm/Support/HashBuilder.h:81:17: error: 'OptionalHasher' was not declared in this scope
   81 |         Hasher(*OptionalHasher) {}
      |                 ^~~~~~~~~~~~~~
/usr/include/llvm/Support/HashBuilder.h: In member function 'llvm::HashBuilderImpl<HasherT, Endianness>& llvm::HashBuilderImpl<HasherT, Endianness>::add(llvm::ArrayRef<U>)':
/usr/include/llvm/Support/HashBuilder.h:134:28: error: missing template arguments before '(' token
  134 |       this->update(ArrayRef(reinterpret_cast<const uint8_t *>(Value.begin()),
      |                            ^
/usr/include/llvm/Support/HashBuilder.h: In member function 'llvm::HashBuilderImpl<HasherT, Endianness>& llvm::HashBuilderImpl<HasherT, Endianness>::add(llvm::StringRef)':
/usr/include/llvm/Support/HashBuilder.h:162:26: error: missing template arguments before '(' token
  162 |     this->update(ArrayRef(reinterpret_cast<const uint8_t *>(Value.begin()),
      |                          ^
/usr/include/llvm/Support/HashBuilder.h: In member function 'llvm::HashBuilderImpl<HasherT, Endianness>& llvm::HashBuilderImpl<HasherT, Endianness>::add(const std::tuple<_Args1 ...>&)':
/usr/include/llvm/Support/HashBuilder.h:268:10: error: 'apply' is not a member of 'std'
  268 |     std::apply([this](const auto &...Args) { this->add(Args...); }, Arg);
      |          ^~~~~
/usr/include/llvm/Support/HashBuilder.h:268:10: note: 'std::apply' is only available from C++17 onwards
/usr/include/llvm/Support/HashBuilder.h: In member function 'std::enable_if_t<typename llvm::detail::detector<void, llvm::HashBuilderImpl<HasherT, Endianness>::HasByteSwapT, T>::value_t::value, llvm::HashBuilderImpl<HasherT, Endianness>&> llvm::HashBuilderImpl<HasherT, Endianness>::adjustForEndiannessAndAdd(const T&)':
/usr/include/llvm/Support/HashBuilder.h:319:26: error: missing template arguments before '(' token
  319 |     this->update(ArrayRef(reinterpret_cast<const uint8_t *>(&SwappedValue),
      |                          ^
/usr/include/llvm/Support/HashBuilder.h: In member function 'std::enable_if_t<(llvm::hashbuilder_detail::IsHashableData<T>::value && (Endianness == llvm::support::endian::system_endianness())), llvm::HashBuilderImpl<HasherT, Endianness>&> llvm::HashBuilderImpl<HasherT, Endianness>::addRangeElementsImpl(T*, T*, std::forward_iterator_tag)':
/usr/include/llvm/Support/HashBuilder.h:341:26: error: missing template arguments before '(' token
  341 |     this->update(ArrayRef(reinterpret_cast<const uint8_t *>(First),
      |                          ^
/usr/include/clang/Basic/LangOptions.h: At global scope:
/usr/include/clang/Basic/LangOptions.h:470:8: error: 'optional' in namespace 'std' does not name a template type
  470 |   std::optional<TargetCXXABI::Kind> CXXABI;
      |        ^~~~~~~~
/usr/include/clang/Basic/LangOptions.h:470:3: note: 'std::optional' is only available from C++17 onwards
  470 |   std::optional<TargetCXXABI::Kind> CXXABI;
      |   ^~~
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<const clang::Attr*> clang::AttributedStmt::getAttrs() const':
/usr/include/clang/AST/Stmt.h:1927:26: error: missing template arguments before '(' token
 1927 |     return llvm::ArrayRef(getAttrArrayPtr(), AttributedStmtBits.NumAttrs);
      |                          ^
/usr/include/clang/AST/Stmt.h: At global scope:
/usr/include/clang/AST/Stmt.h:2152:8: error: 'optional' in namespace 'std' does not name a template type
 2152 |   std::optional<const Stmt *> getNondiscardedCase(const ASTContext &Ctx) const;
      |        ^~~~~~~~
/usr/include/clang/AST/Stmt.h:2152:3: note: 'std::optional' is only available from C++17 onwards
 2152 |   std::optional<const Stmt *> getNondiscardedCase(const ASTContext &Ctx) const;
      |   ^~~
/usr/include/clang/AST/Stmt.h:2153:8: error: 'optional' in namespace 'std' does not name a template type
 2153 |   std::optional<Stmt *> getNondiscardedCase(const ASTContext &Ctx);
      |        ^~~~~~~~
/usr/include/clang/AST/Stmt.h:2153:3: note: 'std::optional' is only available from C++17 onwards
 2153 |   std::optional<Stmt *> getNondiscardedCase(const ASTContext &Ctx);
      |   ^~~
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<llvm::StringRef> clang::MSAsmStmt::getAllConstraints() const':
/usr/include/clang/AST/Stmt.h:3338:26: error: missing template arguments before '(' token
 3338 |     return llvm::ArrayRef(Constraints, NumInputs + NumOutputs);
      |                          ^
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<llvm::StringRef> clang::MSAsmStmt::getClobbers() const':
/usr/include/clang/AST/Stmt.h:3342:26: error: missing template arguments before '(' token
 3342 |     return llvm::ArrayRef(Clobbers, NumClobbers);
      |                          ^
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::MSAsmStmt::getAllExprs() const':
/usr/include/clang/AST/Stmt.h:3346:26: error: missing template arguments before '(' token
 3346 |     return llvm::ArrayRef(reinterpret_cast<Expr **>(Exprs),
      |                          ^
In file included from /usr/include/clang/AST/Expr.h:24:
/usr/include/clang/AST/TemplateBase.h: At global scope:
/usr/include/clang/AST/TemplateBase.h:204:44: error: 'std::optional' has not been declared
  204 |   TemplateArgument(TemplateName Name, std::optional<unsigned> NumExpansions) {
      |                                            ^~~~~~~~
/usr/include/clang/AST/TemplateBase.h:204:52: error: expected ',' or '...' before '<' token
  204 |   TemplateArgument(TemplateName Name, std::optional<unsigned> NumExpansions) {
      |                                                    ^
/usr/include/clang/AST/TemplateBase.h:309:8: error: 'optional' in namespace 'std' does not name a template type
  309 |   std::optional<unsigned> getNumTemplateExpansions() const;
      |        ^~~~~~~~
/usr/include/clang/AST/TemplateBase.h:309:3: note: 'std::optional' is only available from C++17 onwards
  309 |   std::optional<unsigned> getNumTemplateExpansions() const;
      |   ^~~
/usr/include/clang/AST/TemplateBase.h: In constructor 'clang::TemplateArgument::TemplateArgument(clang::TemplateName, int)':
/usr/include/clang/AST/TemplateBase.h:207:9: error: 'NumExpansions' was not declared in this scope
  207 |     if (NumExpansions)
      |         ^~~~~~~~~~~~~
/usr/include/clang/AST/TemplateBase.h: In static member function 'static clang::TemplateArgument clang::TemplateArgument::getEmptyPack()':
/usr/include/clang/AST/TemplateBase.h:236:34: error: 'nullopt' is not a member of 'std'
  236 |     return TemplateArgument(std::nullopt);
      |                                  ^~~~~~~
/usr/include/clang/AST/TemplateBase.h:236:34: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::APSInt clang::TemplateArgument::getAsIntegral() const':
/usr/include/clang/AST/TemplateBase.h:322:18: error: expected primary-expression before '(' token
  322 |     return APSInt(APInt(Integer.BitWidth, ArrayRef(Integer.pVal, NumWords)),
      |                  ^
/usr/include/clang/AST/TemplateBase.h:322:24: error: expected primary-expression before '(' token
  322 |     return APSInt(APInt(Integer.BitWidth, ArrayRef(Integer.pVal, NumWords)),
      |                        ^
/usr/include/clang/AST/TemplateBase.h:322:51: error: missing template arguments before '(' token
  322 |     return APSInt(APInt(Integer.BitWidth, ArrayRef(Integer.pVal, NumWords)),
      |                                                   ^
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::TemplateArgument::pack_elements() const':
/usr/include/clang/AST/TemplateBase.h:367:26: error: missing template arguments before '(' token
  367 |     return llvm::ArrayRef(pack_begin(), pack_end());
      |                          ^
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::TemplateArgument::getPackAsArray() const':
/usr/include/clang/AST/TemplateBase.h:380:26: error: missing template arguments before '(' token
  380 |     return llvm::ArrayRef(Args.Args, Args.NumArgs);
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/TemplateBase.h:418:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/TemplateBase.h:418:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::ArrayRef<clang::TemplateArgumentLoc> clang::ASTTemplateArgumentListInfo::arguments() const':
/usr/include/clang/AST/TemplateBase.h:645:26: error: missing template arguments before '(' token
  645 |     return llvm::ArrayRef(getTemplateArgs(), getNumTemplateArgs());
      |                          ^
In file included from /usr/include/clang/AST/Expr.h:28:
/usr/include/clang/Basic/SyncScope.h: In member function 'virtual llvm::ArrayRef<unsigned int> clang::AtomicScopeOpenCLModel::getRuntimeValues() const':
/usr/include/clang/Basic/SyncScope.h:148:26: error: missing template arguments before '(' token
  148 |     return llvm::ArrayRef(Scopes);
      |                          ^
/usr/include/clang/Basic/SyncScope.h: In member function 'virtual llvm::ArrayRef<unsigned int> clang::AtomicScopeHIPModel::getRuntimeValues() const':
/usr/include/clang/Basic/SyncScope.h:200:26: error: missing template arguments before '(' token
  200 |     return llvm::ArrayRef(Scopes);
      |                          ^
/usr/include/clang/AST/Expr.h: At global scope:
/usr/include/clang/AST/Expr.h:543:8: error: 'optional' in namespace 'std' does not name a template type
  543 |   std::optional<llvm::APSInt>
      |        ^~~~~~~~
/usr/include/clang/AST/Expr.h:543:3: note: 'std::optional' is only available from C++17 onwards
  543 |   std::optional<llvm::APSInt>
      |   ^~~
/usr/include/clang/AST/Expr.h: In member function 'void clang::CallExpr::computeDependence()':
/usr/include/clang/AST/Expr.h:3024:29: error: missing template arguments before '(' token
 3024 |         this, llvm::ArrayRef(
      |                             ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Stmt*> clang::CallExpr::getRawSubExprs()':
/usr/include/clang/AST/Expr.h:3071:26: error: missing template arguments before '(' token
 3071 |     return llvm::ArrayRef(getTrailingStmts(),
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, clang::FieldDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, clang::FieldDecl*>'
/usr/include/clang/AST/Expr.h:4818:43:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, clang::FieldDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, clang::FieldDecl*>':
/usr/include/clang/AST/Expr.h:4818:43:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, clang::FieldDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::InitListExpr::inits()':
/usr/include/clang/AST/Expr.h:4838:51: error: missing template arguments before '(' token
 4838 |   ArrayRef<Expr *> inits() { return llvm::ArrayRef(getInits(), getNumInits()); }
      |                                                   ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::InitListExpr::inits() const':
/usr/include/clang/AST/Expr.h:4841:26: error: missing template arguments before '(' token
 4841 |     return llvm::ArrayRef(getInits(), getNumInits());
      |                          ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::ParenListExpr::exprs()':
/usr/include/clang/AST/Expr.h:5583:51: error: missing template arguments before '(' token
 5583 |   ArrayRef<Expr *> exprs() { return llvm::ArrayRef(getExprs(), getNumExprs()); }
      |                                                   ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::RecoveryExpr::subExpressions()':
/usr/include/clang/AST/Expr.h:6434:26: error: missing template arguments before '(' token
 6434 |     return llvm::ArrayRef(B, B + NumExprs);
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>'
/usr/include/c++/13/bits/stl_pair.h:194:11:   required from 'struct std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >'
/usr/include/llvm/Support/type_traits.h:75:7:   required from 'union llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/c++/13/type_traits:1040:25:   required by substitution of 'template<class _Tp, class ... _Args> using std::__is_constructible_impl = std::__bool_constant<__is_constructible(_Tp, _Args ...)> [with _Tp = llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >; _Args = {const llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >&}]'
/usr/include/c++/13/type_traits:1076:12:   required from 'struct std::is_copy_constructible<llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > > >'
/usr/include/llvm/Support/type_traits.h:98:8:   required from 'struct llvm::is_trivially_copy_constructible<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:329:74:   required from 'class llvm::SmallVectorImpl<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:1199:22:   required from 'class llvm::SmallVector<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >, 4>'
/usr/include/clang/AST/ASTConcept.h:53:57:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>':
/usr/include/c++/13/bits/stl_pair.h:194:11:   required from 'struct std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >'
/usr/include/llvm/Support/type_traits.h:75:7:   required from 'union llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/c++/13/type_traits:1040:25:   required by substitution of 'template<class _Tp, class ... _Args> using std::__is_constructible_impl = std::__bool_constant<__is_constructible(_Tp, _Args ...)> [with _Tp = llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >; _Args = {const llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >&}]'
/usr/include/c++/13/type_traits:1076:12:   required from 'struct std::is_copy_constructible<llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > > >'
/usr/include/llvm/Support/type_traits.h:98:8:   required from 'struct llvm::is_trivially_copy_constructible<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:329:74:   required from 'class llvm::SmallVectorImpl<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:1199:22:   required from 'class llvm::SmallVector<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >, 4>'
/usr/include/clang/AST/ASTConcept.h:53:57:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/Attr.h:365,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:17:
/usr/include/clang/AST/Attrs.inc: At global scope:
/usr/include/clang/AST/Attrs.inc:7459:17: error: 'optional' in namespace 'std' does not name a template type
 7459 |     static std::optional<MapTypeTy>
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7459:12: note: 'std::optional' is only available from C++17 onwards
 7459 |     static std::optional<MapTypeTy>
      |            ^~~
/usr/include/clang/AST/Attrs.inc:7461:17: error: 'optional' in namespace 'std' does not name a template type
 7461 |     static std::optional<OMPDeclareTargetDeclAttr*> getActiveAttr(const ValueDecl *VD);
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7461:12: note: 'std::optional' is only available from C++17 onwards
 7461 |     static std::optional<OMPDeclareTargetDeclAttr*> getActiveAttr(const ValueDecl *VD);
      |            ^~~
/usr/include/clang/AST/Attrs.inc:7462:17: error: 'optional' in namespace 'std' does not name a template type
 7462 |     static std::optional<DevTypeTy> getDeviceType(const ValueDecl *VD);
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7462:12: note: 'std::optional' is only available from C++17 onwards
 7462 |     static std::optional<DevTypeTy> getDeviceType(const ValueDecl *VD);
      |            ^~~
/usr/include/clang/AST/Attrs.inc:7463:17: error: 'optional' in namespace 'std' does not name a template type
 7463 |     static std::optional<SourceLocation> getLocation(const ValueDecl *VD);
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7463:12: note: 'std::optional' is only available from C++17 onwards
 7463 |     static std::optional<SourceLocation> getLocation(const ValueDecl *VD);
      |            ^~~
In file included from /usr/include/clang/AST/DeclCXX.h:29,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:20:
/usr/include/clang/AST/TypeLoc.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::ObjCTypeParamTypeLoc::getProtocolLocs() const':
/usr/include/clang/AST/TypeLoc.h:817:26: error: missing template arguments before '(' token
  817 |     return llvm::ArrayRef(getProtocolLocArray(), getNumProtocols());
      |                          ^
/usr/include/clang/AST/TypeLoc.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::ObjCObjectTypeLoc::getProtocolLocs() const':
/usr/include/clang/AST/TypeLoc.h:1023:26: error: missing template arguments before '(' token
 1023 |     return llvm::ArrayRef(getProtocolLocArray(), getNumProtocols());
      |                          ^
/usr/include/clang/AST/TypeLoc.h: In member function 'llvm::ArrayRef<clang::ParmVarDecl*> clang::FunctionTypeLoc::getParams() const':
/usr/include/clang/AST/TypeLoc.h:1450:26: error: missing template arguments before '(' token
 1450 |     return llvm::ArrayRef(getParmArray(), getNumParams());
      |                          ^
In file included from /usr/include/clang/AST/DeclCXX.h:42:
/usr/include/llvm/ADT/TinyPtrVector.h: In member function 'llvm::TinyPtrVector<EltTy>::operator llvm::ArrayRef<T>() const':
/usr/include/llvm/ADT/TinyPtrVector.h:138:19: error: 'nullopt' is not a member of 'std'
  138 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/llvm/ADT/TinyPtrVector.h:138:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/TinyPtrVector.h: In member function 'llvm::TinyPtrVector<EltTy>::operator llvm::MutableArrayRef<T>()':
/usr/include/llvm/ADT/TinyPtrVector.h:147:19: error: 'nullopt' is not a member of 'std'
  147 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/llvm/ADT/TinyPtrVector.h:147:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>'
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<clang::LambdaCapture*>'
/usr/include/clang/AST/DeclCXX.h:417:35:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>':
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<clang::LambdaCapture*>'
/usr/include/clang/AST/DeclCXX.h:417:35:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>'
/usr/include/clang/AST/DeclCXX.h:470:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>':
/usr/include/clang/AST/DeclCXX.h:470:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::CXXBaseSpecifier> clang::CXXRecordDecl::DefinitionData::bases() const':
/usr/include/clang/AST/DeclCXX.h:360:28: error: missing template arguments before '(' token
  360 |       return llvm::ArrayRef(getBases(), NumBases);
      |                            ^
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::CXXBaseSpecifier> clang::CXXRecordDecl::DefinitionData::vbases() const':
/usr/include/clang/AST/DeclCXX.h:364:28: error: missing template arguments before '(' token
  364 |       return llvm::ArrayRef(getVBases(), NumVBases);
      |                            ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>'
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<const clang::CXXMethodDecl*>'
/usr/include/clang/AST/DeclCXX.h:2104:49:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>':
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<const clang::CXXMethodDecl*>'
/usr/include/clang/AST/DeclCXX.h:2104:49:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>'
/usr/include/clang/AST/DeclCXX.h:2224:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>':
/usr/include/clang/AST/DeclCXX.h:2224:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::UsingPackDecl::expansions() const':
/usr/include/clang/AST/DeclCXX.h:3742:26: error: missing template arguments before '(' token
 3742 |     return llvm::ArrayRef(getTrailingObjects<NamedDecl *>(), NumExpansions);
      |                          ^
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::BindingDecl*> clang::DecompositionDecl::bindings() const':
/usr/include/clang/AST/DeclCXX.h:4112:26: error: missing template arguments before '(' token
 4112 |     return llvm::ArrayRef(getTrailingObjects<BindingDecl *>(), NumBindings);
      |                          ^
In file included from /usr/include/clang/AST/ASTContext.h:20,
                 from /usr/include/clang/AST/DeclTemplate.h:18,
                 from /usr/include/clang/AST/DeclFriend.h:20,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:21:
/usr/include/clang/AST/ComparisonCategories.h: At global scope:
/usr/include/clang/AST/ComparisonCategories.h:62:6: error: 'optional' in namespace 'std' does not name a template type
   62 | std::optional<ComparisonCategoryType>
      |      ^~~~~~~~
/usr/include/clang/AST/ComparisonCategories.h:62:1: note: 'std::optional' is only available from C++17 onwards
   62 | std::optional<ComparisonCategoryType>
      | ^~~
In file included from /usr/include/clang/AST/ASTContext.h:25:
/usr/include/clang/AST/PrettyPrinter.h: In member function 'virtual std::string clang::PrintingCallbacks::remapPath(llvm::StringRef) const':
/usr/include/clang/AST/PrettyPrinter.h:39:28: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
   39 |     return std::string(Path);
      |                            ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/AST/PrettyPrinter.h:39:28: note:   candidate expects 3 arguments, 1 provided
   39 |     return std::string(Path);
      |                            ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/clang/AST/ASTContext.h:26:
/usr/include/clang/AST/RawCommentList.h: In constructor 'clang::RawComment::CommentLine::CommentLine(llvm::StringRef, clang::PresumedLoc, clang::PresumedLoc)':
/usr/include/clang/AST/RawCommentList.h:148:11: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  148 |         : Text(Text), Begin(Begin), End(End) {}
      |           ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/AST/RawCommentList.h:148:11: note:   candidate expects 3 arguments, 1 provided
  148 |         : Text(Text), Begin(Begin), End(End) {}
      |           ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/clang/Basic/CodeGenOptions.h:20,
                 from /usr/include/clang/Basic/ProfileList.h:16,
                 from /usr/include/clang/AST/ASTContext.h:33:
/usr/include/llvm/Support/CodeGen.h: At global scope:
/usr/include/llvm/Support/CodeGen.h:66:15: error: 'optional' in namespace 'std' does not name a template type
   66 |   inline std::optional<Level> getLevel(IDType ID) {
      |               ^~~~~~~~
/usr/include/llvm/Support/CodeGen.h:66:10: note: 'std::optional' is only available from C++17 onwards
   66 |   inline std::optional<Level> getLevel(IDType ID) {
      |          ^~~
/usr/include/llvm/Support/CodeGen.h:74:15: error: 'optional' in namespace 'std' does not name a template type
   74 |   inline std::optional<Level> parseLevel(char C) {
      |               ^~~~~~~~
/usr/include/llvm/Support/CodeGen.h:74:10: note: 'std::optional' is only available from C++17 onwards
   74 |   inline std::optional<Level> parseLevel(char C) {
      |          ^~~
/usr/include/clang/Basic/CodeGenOptions.h:443:8: error: 'optional' in namespace 'std' does not name a template type
  443 |   std::optional<uint64_t> DiagnosticsHotnessThreshold = 0;
      |        ^~~~~~~~
/usr/include/clang/Basic/CodeGenOptions.h:443:3: note: 'std::optional' is only available from C++17 onwards
  443 |   std::optional<uint64_t> DiagnosticsHotnessThreshold = 0;
      |   ^~~
/usr/include/clang/Basic/CodeGenOptions.h:447:8: error: 'optional' in namespace 'std' does not name a template type
  447 |   std::optional<uint32_t> DiagnosticsMisExpectTolerance = 0;
      |        ^~~~~~~~
/usr/include/clang/Basic/CodeGenOptions.h:447:3: note: 'std::optional' is only available from C++17 onwards
  447 |   std::optional<uint32_t> DiagnosticsMisExpectTolerance = 0;
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:44:8: error: 'optional' in namespace 'std' does not name a template type
   44 |   std::optional<ExclusionType> inSection(StringRef Section, StringRef Prefix,
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:44:3: note: 'std::optional' is only available from C++17 onwards
   44 |   std::optional<ExclusionType> inSection(StringRef Section, StringRef Prefix,
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:54:8: error: 'optional' in namespace 'std' does not name a template type
   54 |   std::optional<ExclusionType>
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:54:3: note: 'std::optional' is only available from C++17 onwards
   54 |   std::optional<ExclusionType>
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:57:8: error: 'optional' in namespace 'std' does not name a template type
   57 |   std::optional<ExclusionType>
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:57:3: note: 'std::optional' is only available from C++17 onwards
   57 |   std::optional<ExclusionType>
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:60:8: error: 'optional' in namespace 'std' does not name a template type
   60 |   std::optional<ExclusionType>
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:60:3: note: 'std::optional' is only available from C++17 onwards
   60 |   std::optional<ExclusionType>
      |   ^~~
In file included from /usr/include/clang/AST/ASTContext.h:40:
/usr/include/llvm/ADT/MapVector.h:42:12: error: 'is_integral_v' is not a member of 'std'; did you mean 'is_integral'?
   42 |       std::is_integral_v<typename MapType::mapped_type>,
      |            ^~~~~~~~~~~~~
      |            is_integral
/usr/include/llvm/ADT/MapVector.h:42:55: error: expected '(' before '>' token
   42 |       std::is_integral_v<typename MapType::mapped_type>,
      |                                                       ^
      |                                                       (
/usr/include/llvm/ADT/MapVector.h:42:56: error: expected primary-expression before ',' token
   42 |       std::is_integral_v<typename MapType::mapped_type>,
      |                                                        ^
/usr/include/llvm/ADT/MapVector.h: In member function 'ValueT llvm::MapVector<KeyT, ValueT, MapType, VectorType>::lookup(const KeyT&) const':
/usr/include/llvm/ADT/MapVector.h:112:24: error: 'is_copy_constructible_v' is not a member of 'std'; did you mean 'is_copy_constructible'?
  112 |     static_assert(std::is_copy_constructible_v<ValueT>,
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
      |                        is_copy_constructible
/usr/include/llvm/ADT/MapVector.h:112:54: error: expected primary-expression before '>' token
  112 |     static_assert(std::is_copy_constructible_v<ValueT>,
      |                                                      ^
/usr/include/llvm/ADT/MapVector.h:112:55: error: expected primary-expression before ',' token
  112 |     static_assert(std::is_copy_constructible_v<ValueT>,
      |                                                       ^
/usr/include/clang/AST/ASTContext.h: At global scope:
/usr/include/clang/AST/ASTContext.h:1593:37: error: 'std::optional' has not been declared
 1593 |                                std::optional<unsigned> PackIndex) const;
      |                                     ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:1593:45: error: expected ',' or '...' before '<' token
 1593 |                                std::optional<unsigned> PackIndex) const;
      |                                             ^
/usr/include/clang/AST/ASTContext.h:1656:38: error: 'std::optional' has not been declared
 1656 |                                 std::optional<unsigned> NumExpansions,
      |                                      ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:1656:46: error: expected ',' or '...' before '<' token
 1656 |                                 std::optional<unsigned> NumExpansions,
      |                                              ^
/usr/include/clang/AST/ASTContext.h:2178:37: error: 'std::optional' has not been declared
 2178 |                                std::optional<unsigned> PackIndex) const;
      |                                     ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:2178:45: error: expected ',' or '...' before '<' token
 2178 |                                std::optional<unsigned> PackIndex) const;
      |                                             ^
/usr/include/clang/AST/ASTContext.h:2292:8: error: 'optional' in namespace 'std' does not name a template type
 2292 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(QualType Ty) const {
      |        ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:2292:3: note: 'std::optional' is only available from C++17 onwards
 2292 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(QualType Ty) const {
      |   ^~~
/usr/include/clang/AST/ASTContext.h:2298:8: error: 'optional' in namespace 'std' does not name a template type
 2298 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(const Type *Ty) const {
      |        ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:2298:3: note: 'std::optional' is only available from C++17 onwards
 2298 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(const Type *Ty) const {
      |   ^~~
/usr/include/clang/AST/ASTContext.h: In member function 'bool clang::ASTContext::hasSameNullabilityTypeQualifier(clang::QualType, clang::QualType, bool) const':
/usr/include/clang/AST/ASTContext.h:2549:34: error: 'const class clang::Type' has no member named 'getNullability'
 2549 |     auto SubTnullability = SubT->getNullability();
      |                                  ^~~~~~~~~~~~~~
/usr/include/clang/AST/ASTContext.h:2550:38: error: 'const class clang::Type' has no member named 'getNullability'
 2550 |     auto SuperTnullability = SuperT->getNullability();
      |                                      ^~~~~~~~~~~~~~
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::TemplateParameterList::asArray()':
/usr/include/clang/AST/DeclTemplate.h:133:58: error: missing template arguments before '(' token
  133 |   ArrayRef<NamedDecl *> asArray() { return llvm::ArrayRef(begin(), end()); }
      |                                                          ^
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<const clang::NamedDecl*> clang::TemplateParameterList::asArray() const':
/usr/include/clang/AST/DeclTemplate.h:135:26: error: missing template arguments before '(' token
  135 |     return llvm::ArrayRef(begin(), size());
      |                          ^
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::TemplateArgumentList::asArray() const':
/usr/include/clang/AST/DeclTemplate.h:291:26: error: missing template arguments before '(' token
  291 |     return llvm::ArrayRef(data(), size());
      |                          ^
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<clang::TemplateArgumentLoc> clang::DependentFunctionTemplateSpecializationInfo::arguments() const':
/usr/include/clang/AST/DeclTemplate.h:743:26: error: missing template arguments before '(' token
  743 |     return llvm::ArrayRef(getTemplateArgs(), getNumTemplateArgs());
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>'
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>'
/usr/include/clang/AST/DeclTemplate.h:1236:17:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>':
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>'
/usr/include/clang/AST/DeclTemplate.h:1236:17:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclTemplate.h: At global scope:
/usr/include/clang/AST/DeclTemplate.h:1241:29: error: 'std::optional' has not been declared
 1241 |                        std::optional<unsigned> NumExpanded)
      |                             ^~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:1241:37: error: expected ',' or '...' before '<' token
 1241 |                        std::optional<unsigned> NumExpanded)
      |                                     ^
/usr/include/clang/AST/DeclTemplate.h:1252:15: error: 'std::optional' has not been declared
 1252 |          std::optional<unsigned> NumExpanded = std::nullopt);
      |               ^~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:1252:23: error: expected ',' or '...' before '<' token
 1252 |          std::optional<unsigned> NumExpanded = std::nullopt);
      |                       ^
/usr/include/clang/AST/DeclTemplate.h:1252:10: error: default argument missing for parameter 11 of 'static clang::TemplateTypeParmDecl* clang::TemplateTypeParmDecl::Create(const clang::ASTContext&, clang::DeclContext*, clang::SourceLocation, clang::SourceLocation, unsigned int, unsigned int, clang::IdentifierInfo*, bool, bool, bool, int)'
 1252 |          std::optional<unsigned> NumExpanded = std::nullopt);
      |          ^~~~~~~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:1251:50: note: ...following parameter 10 which has a default argument
 1251 |          bool Typename, bool ParameterPack, bool HasTypeConstraint = false,
      |                                             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/clang/AST/DeclTemplate.h: In constructor 'clang::TemplateTypeParmDecl::TemplateTypeParmDecl(clang::DeclContext*, clang::SourceLocation, clang::SourceLocation, clang::IdentifierInfo*, bool, bool, int)':
/usr/include/clang/AST/DeclTemplate.h:1245:33: error: request for member 'value_or' in '((clang::TemplateTypeParmDecl*)this)->clang::TemplateTypeParmDecl::NumExpanded', which is of non-class type 'unsigned int'
 1245 |         NumExpanded(NumExpanded.value_or(0)) {}
      |                                 ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>'
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>'
/usr/include/clang/AST/DeclTemplate.h:1419:17:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>':
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>'
/usr/include/clang/AST/DeclTemplate.h:1419:17:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>'
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>'
/usr/include/clang/AST/DeclTemplate.h:1632:17:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>':
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>'
/usr/include/clang/AST/DeclTemplate.h:1632:17:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
/usr/include/clang/AST/DeclTemplate.h:1843:5:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/clang/AST/DeclTemplate.h:1843:5:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>'
/usr/include/clang/AST/DeclTemplate.h:1978:31:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>':
/usr/include/clang/AST/DeclTemplate.h:1978:31:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::NamedDecl*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::NamedDecl*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/DeclTemplate.h:2481:15:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::NamedDecl*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::NamedDecl*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/DeclTemplate.h:2481:15:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::NamedDecl*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
/usr/include/clang/AST/DeclTemplate.h:2705:3:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/clang/AST/DeclTemplate.h:2705:3:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>'
/usr/include/clang/AST/DeclTemplate.h:2832:31:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>':
/usr/include/clang/AST/DeclTemplate.h:2832:31:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>'
/usr/include/clang/AST/DeclTemplate.h:3424:53:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>':
/usr/include/clang/AST/DeclTemplate.h:3424:53:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclTemplate.h: At global scope:
/usr/include/clang/AST/DeclTemplate.h:3453:13: error: 'optional' in namespace 'std' does not name a template type
 3453 | inline std::optional<unsigned> getExpandedPackSize(const NamedDecl *Param) {
      |             ^~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:3453:8: note: 'std::optional' is only available from C++17 onwards
 3453 | inline std::optional<unsigned> getExpandedPackSize(const NamedDecl *Param) {
      |        ^~~
/usr/include/clang/AST/DeclFriend.h:113:69: error: 'nullopt' is not a member of 'std'
  113 |          ArrayRef<TemplateParameterList *> FriendTypeTPLists = std::nullopt);
      |                                                                     ^~~~~~~
/usr/include/clang/AST/DeclFriend.h:113:69: note: 'std::nullopt' is only available from C++17 onwards
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:22:
/usr/include/clang/AST/DeclObjC.h:391:64: error: 'nullopt' is not a member of 'std'
  391 |                        ArrayRef<SourceLocation> SelLocs = std::nullopt);
      |                                                                ^~~~~~~
/usr/include/clang/AST/DeclObjC.h:391:64: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/DeclObjC.h: In member function 'llvm::ArrayRef<clang::ParmVarDecl*> clang::ObjCMethodDecl::parameters() const':
/usr/include/clang/AST/DeclObjC.h:376:26: error: missing template arguments before '(' token
  376 |     return llvm::ArrayRef(const_cast<ParmVarDecl **>(getParams()), NumParams);
      |                          ^
/usr/include/clang/AST/DeclObjC.h: In member function 'std::string clang::ObjCImplementationDecl::getNameAsString() const':
/usr/include/clang/AST/DeclObjC.h:2713:69: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef)'
 2713 |   std::string getNameAsString() const { return std::string(getName()); }
      |                                                                     ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/AST/DeclObjC.h:2713:69: note:   candidate expects 3 arguments, 1 provided
 2713 |   std::string getNameAsString() const { return std::string(getName()); }
      |                                                                     ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/llvm/Frontend/OpenMP/OMPContext.h:19,
                 from /usr/include/clang/AST/OpenMPClause.h:37,
                 from /usr/include/clang/AST/DeclOpenMP.h:21,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:23:
/usr/include/llvm/ADT/BitVector.h: In member function 'llvm::BitVector::size_type llvm::BitVector::count() const':
/usr/include/llvm/ADT/BitVector.h:158:24: error: 'popcount' is not a member of 'llvm'; did you mean 'count'?
  158 |       NumBits += llvm::popcount(Bit);
      |                        ^~~~~~~~
      |                        count
In file included from /usr/include/clang/Basic/Diagnostic.h:22:
/usr/include/llvm/ADT/DenseMap.h: In instantiation of 'class llvm::SmallDenseMap<llvm::omp::TraitProperty, llvm::APInt>':
/usr/include/llvm/Frontend/OpenMP/OMPContext.h:151:39:   required from here
/usr/include/llvm/ADT/DenseMap.h:890:30: error: non-constant condition for static assertion
  890 |   static_assert(isPowerOf2_64(InlineBuckets),
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/usr/include/llvm/ADT/DenseMap.h:890:30:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(4)'
/usr/include/llvm/ADT/DenseMap.h:890:30: error: 'constexpr' call flows off the end of the function
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPVarListClause<T>::getVarRefs() const':
/usr/include/clang/AST/OpenMPClause.h:339:26: error: missing template arguments before '(' token
  339 |     return llvm::ArrayRef(
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPPrivateClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:2560:26: error: missing template arguments before '(' token
 2560 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPFirstprivateClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:2669:26: error: missing template arguments before '(' token
 2669 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPFirstprivateClause::getInits() const':
/usr/include/clang/AST/OpenMPClause.h:2683:26: error: missing template arguments before '(' token
 2683 |     return llvm::ArrayRef(getPrivateCopies().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:2831:26: error: missing template arguments before '(' token
 2831 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getSourceExprs() const':
/usr/include/clang/AST/OpenMPClause.h:2845:26: error: missing template arguments before '(' token
 2845 |     return llvm::ArrayRef(getPrivateCopies().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getDestinationExprs() const':
/usr/include/clang/AST/OpenMPClause.h:2859:26: error: missing template arguments before '(' token
 2859 |     return llvm::ArrayRef(getSourceExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getAssignmentOps() const':
/usr/include/clang/AST/OpenMPClause.h:2872:26: error: missing template arguments before '(' token
 2872 |     return llvm::ArrayRef(getDestinationExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3160:26: error: missing template arguments before '(' token
 3160 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getLHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3173:26: error: missing template arguments before '(' token
 3173 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getRHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3188:26: error: missing template arguments before '(' token
 3188 |     return llvm::ArrayRef(getLHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getReductionOps() const':
/usr/include/clang/AST/OpenMPClause.h:3202:26: error: missing template arguments before '(' token
 3202 |     return llvm::ArrayRef(getRHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getInscanCopyOps() const':
/usr/include/clang/AST/OpenMPClause.h:3214:26: error: missing template arguments before '(' token
 3214 |     return llvm::ArrayRef(getReductionOps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getInscanCopyArrayTemps() const':
/usr/include/clang/AST/OpenMPClause.h:3225:26: error: missing template arguments before '(' token
 3225 |     return llvm::ArrayRef(getInscanCopyOps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getInscanCopyArrayElems() const':
/usr/include/clang/AST/OpenMPClause.h:3237:26: error: missing template arguments before '(' token
 3237 |     return llvm::ArrayRef(getInscanCopyArrayTemps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3479:26: error: missing template arguments before '(' token
 3479 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getLHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3492:26: error: missing template arguments before '(' token
 3492 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getRHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3506:26: error: missing template arguments before '(' token
 3506 |     return llvm::ArrayRef(getLHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getReductionOps() const':
/usr/include/clang/AST/OpenMPClause.h:3520:26: error: missing template arguments before '(' token
 3520 |     return llvm::ArrayRef(getRHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3710:26: error: missing template arguments before '(' token
 3710 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getLHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3723:26: error: missing template arguments before '(' token
 3723 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getRHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3737:26: error: missing template arguments before '(' token
 3737 |     return llvm::ArrayRef(getLHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getReductionOps() const':
/usr/include/clang/AST/OpenMPClause.h:3751:26: error: missing template arguments before '(' token
 3751 |     return llvm::ArrayRef(getRHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getTaskgroupDescriptors() const':
/usr/include/clang/AST/OpenMPClause.h:3762:26: error: missing template arguments before '(' token
 3762 |     return llvm::ArrayRef(getReductionOps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3968:26: error: missing template arguments before '(' token
 3968 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getInits() const':
/usr/include/clang/AST/OpenMPClause.h:3975:26: error: missing template arguments before '(' token
 3975 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getUpdates() const':
/usr/include/clang/AST/OpenMPClause.h:3983:26: error: missing template arguments before '(' token
 3983 |     return llvm::ArrayRef(getInits().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getFinals() const':
/usr/include/clang/AST/OpenMPClause.h:3991:26: error: missing template arguments before '(' token
 3991 |     return llvm::ArrayRef(getUpdates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getUsedExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3999:26: error: missing template arguments before '(' token
 3999 |     return llvm::ArrayRef(getFinals().end() + 2, varlist_size() + 1);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyinClause::getSourceExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4328:26: error: missing template arguments before '(' token
 4328 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyinClause::getDestinationExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4341:26: error: missing template arguments before '(' token
 4341 |     return llvm::ArrayRef(getSourceExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyinClause::getAssignmentOps() const':
/usr/include/clang/AST/OpenMPClause.h:4355:26: error: missing template arguments before '(' token
 4355 |     return llvm::ArrayRef(getDestinationExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyprivateClause::getSourceExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4493:26: error: missing template arguments before '(' token
 4493 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyprivateClause::getDestinationExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4506:26: error: missing template arguments before '(' token
 4506 |     return llvm::ArrayRef(getSourceExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyprivateClause::getAssignmentOps() const':
/usr/include/clang/AST/OpenMPClause.h:4520:26: error: missing template arguments before '(' token
 4520 |     return llvm::ArrayRef(getDestinationExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'clang::OMPMappableExprListClause<T>::const_component_lists_iterator clang::OMPMappableExprListClause<T>::component_lists_begin() const':
/usr/include/clang/AST/OpenMPClause.h:5638:51: error: 'nullopt' is not a member of 'std'
 5638 |         SupportsMapper ? getUDMapperRefs() : std::nullopt);
      |                                                   ^~~~~~~
/usr/include/clang/AST/OpenMPClause.h:5638:51: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/OpenMPClause.h: In member function 'clang::OMPMappableExprListClause<T>::const_component_lists_iterator clang::OMPMappableExprListClause<T>::component_lists_end() const':
/usr/include/clang/AST/OpenMPClause.h:5645:30: error: 'nullopt' is not a member of 'std'
 5645 |         SupportsMapper, std::nullopt);
      |                              ^~~~~~~
/usr/include/clang/AST/OpenMPClause.h:5645:30: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/OpenMPClause.h: In member function 'clang::OMPMappableExprListClause<T>::const_component_lists_iterator clang::OMPMappableExprListClause<T>::decl_component_lists_begin(const clang::ValueDecl*) const':
/usr/include/clang/AST/OpenMPClause.h:5658:51: error: 'nullopt' is not a member of 'std'
 5658 |         SupportsMapper ? getUDMapperRefs() : std::nullopt);
      |                                                   ^~~~~~~
/usr/include/clang/AST/OpenMPClause.h:5658:51: note: 'std::nullopt' is only available from C++17 onwards
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/clang/AST/OpenMPClause.h:41:
/usr/include/clang/AST/OpenMPClause.h: In constructor 'clang::OMPMapClause::OMPMapClause(llvm::ArrayRef<clang::OpenMPMapModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, clang::OpenMPMapClauseKind, bool, clang::SourceLocation, const clang::OMPVarListLocTy&, const clang::OMPMappableExprListSizeTy&)':
/usr/include/clang/AST/OpenMPClause.h:5810:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 5810 |     assert(std::size(MapTypeModifiers) == MapModifiers.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h:5814:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 5814 |     assert(std::size(MapTypeModifiersLoc) == MapModifiersLoc.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::OpenMPMapModifierKind> clang::OMPMapClause::getMapTypeModifiers() const':
/usr/include/clang/AST/OpenMPClause.h:5948:26: error: missing template arguments before '(' token
 5948 |     return llvm::ArrayRef(MapTypeModifiers);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::OMPMapClause::getMapTypeModifiersLoc() const':
/usr/include/clang/AST/OpenMPClause.h:5953:26: error: missing template arguments before '(' token
 5953 |     return llvm::ArrayRef(MapTypeModifiersLoc);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In constructor 'clang::OMPToClause::OMPToClause(llvm::ArrayRef<clang::OpenMPMotionModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, const clang::OMPVarListLocTy&, const clang::OMPMappableExprListSizeTy&)':
/usr/include/clang/AST/OpenMPClause.h:6788:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6788 |     assert(std::size(MotionModifiers) == TheMotionModifiers.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h:6792:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6792 |     assert(std::size(MotionModifiersLoc) == TheMotionModifiersLoc.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::OpenMPMotionModifierKind> clang::OMPToClause::getMotionModifiers() const':
/usr/include/clang/AST/OpenMPClause.h:6904:26: error: missing template arguments before '(' token
 6904 |     return llvm::ArrayRef(MotionModifiers);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::OMPToClause::getMotionModifiersLoc() const':
/usr/include/clang/AST/OpenMPClause.h:6909:26: error: missing template arguments before '(' token
 6909 |     return llvm::ArrayRef(MotionModifiersLoc);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In constructor 'clang::OMPFromClause::OMPFromClause(llvm::ArrayRef<clang::OpenMPMotionModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, const clang::OMPVarListLocTy&, const clang::OMPMappableExprListSizeTy&)':
/usr/include/clang/AST/OpenMPClause.h:6989:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6989 |     assert(std::size(MotionModifiers) == TheMotionModifiers.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h:6993:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6993 |     assert(std::size(MotionModifiersLoc) == TheMotionModifiersLoc.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::OpenMPMotionModifierKind> clang::OMPFromClause::getMotionModifiers() const':
/usr/include/clang/AST/OpenMPClause.h:7104:26: error: missing template arguments before '(' token
 7104 |     return llvm::ArrayRef(MotionModifiers);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::OMPFromClause::getMotionModifiersLoc() const':
/usr/include/clang/AST/OpenMPClause.h:7109:26: error: missing template arguments before '(' token
 7109 |     return llvm::ArrayRef(MotionModifiersLoc);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPUseDevicePtrClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:7204:26: error: missing template arguments before '(' token
 7204 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPUseDevicePtrClause::getInits() const':
/usr/include/clang/AST/OpenMPClause.h:7218:26: error: missing template arguments before '(' token
 7218 |     return llvm::ArrayRef(getPrivateCopies().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPNontemporalClause::getPrivateRefs() const':
/usr/include/clang/AST/OpenMPClause.h:7652:26: error: missing template arguments before '(' token
 7652 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::MutableArrayRef<clang::OMPClause*> clang::OMPChildren::getClauses()':
/usr/include/clang/AST/OpenMPClause.h:8934:33: error: missing template arguments before '(' token
 8934 |     return llvm::MutableArrayRef(getTrailingObjects<OMPClause *>(),
      |                                 ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::MutableArrayRef<clang::OMPClause*> clang::OMPDeclarativeDirective<T>::getClauses()':
/usr/include/clang/AST/DeclOpenMP.h:37:19: error: 'nullopt' is not a member of 'std'
   37 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/DeclOpenMP.h:37:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::ArrayRef<clang::OMPClause*> clang::OMPDeclarativeDirective<T>::clauses() const':
/usr/include/clang/AST/DeclOpenMP.h:93:19: error: 'nullopt' is not a member of 'std'
   93 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/DeclOpenMP.h:93:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPThreadPrivateDecl::getVars() const':
/usr/include/clang/AST/DeclOpenMP.h:121:26: error: missing template arguments before '(' token
  121 |     return llvm::ArrayRef(Storage, Data->getNumChildren());
      |                          ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPThreadPrivateDecl::getVars()':
/usr/include/clang/AST/DeclOpenMP.h:126:33: error: missing template arguments before '(' token
  126 |     return llvm::MutableArrayRef(Storage, Data->getNumChildren());
      |                                 ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPAllocateDecl::getVars() const':
/usr/include/clang/AST/DeclOpenMP.h:484:26: error: missing template arguments before '(' token
  484 |     return llvm::ArrayRef(Storage, Data->getNumChildren());
      |                          ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPAllocateDecl::getVars()':
/usr/include/clang/AST/DeclOpenMP.h:489:33: error: missing template arguments before '(' token
  489 |     return llvm::MutableArrayRef(Storage, Data->getNumChildren());
      |                                 ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/ExprCXX.h:849:48:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/ExprCXX.h:849:48:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:27:
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:2265:45: error: 'std::optional' has not been declared
 2265 |              SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                             ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2265:53: error: expected ',' or '...' before '<' token
 2265 |              SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                                     ^
/usr/include/clang/AST/ExprCXX.h:2280:41: error: 'std::optional' has not been declared
 2280 |          SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                         ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2280:49: error: expected ',' or '...' before '<' token
 2280 |          SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                                 ^
/usr/include/clang/AST/ExprCXX.h:2325:8: error: 'optional' in namespace 'std' does not name a template type
 2325 |   std::optional<Expr *> getArraySize() {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2325:3: note: 'std::optional' is only available from C++17 onwards
 2325 |   std::optional<Expr *> getArraySize() {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h:2339:8: error: 'optional' in namespace 'std' does not name a template type
 2339 |   std::optional<const Expr *> getArraySize() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2339:3: note: 'std::optional' is only available from C++17 onwards
 2339 |   std::optional<const Expr *> getArraySize() const {
      |   ^~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::IdentifierInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::IdentifierInfo*>'
/usr/include/clang/AST/ExprCXX.h:2544:58:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::IdentifierInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::IdentifierInfo*>':
/usr/include/clang/AST/ExprCXX.h:2544:58:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::IdentifierInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::TypeSourceInfo*> clang::TypeTraitExpr::getArgs() const':
/usr/include/clang/AST/ExprCXX.h:2799:26: error: missing template arguments before '(' token
 2799 |     return llvm::ArrayRef(getTrailingObjects<TypeSourceInfo *>(), getNumArgs());
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::BlockDecl*, clang::CompoundLiteralExpr*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*>'
/usr/include/llvm/Support/TrailingObjects.h:77:22:   required from 'class llvm::trailing_objects_internal::AlignmentCalcHelper<llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/llvm/Support/TrailingObjects.h:212:7:   required from 'class llvm::TrailingObjects<clang::ExprWithCleanups, llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/clang/AST/ExprCXX.h:3418:21:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::BlockDecl*, clang::CompoundLiteralExpr*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*>':
/usr/include/llvm/Support/TrailingObjects.h:77:22:   required from 'class llvm::trailing_objects_internal::AlignmentCalcHelper<llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/llvm/Support/TrailingObjects.h:212:7:   required from 'class llvm::TrailingObjects<clang::ExprWithCleanups, llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/clang/AST/ExprCXX.h:3418:21:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::BlockDecl*, clang::CompoundLiteralExpr*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> > clang::ExprWithCleanups::getObjects() const':
/usr/include/clang/AST/ExprCXX.h:3445:26: error: missing template arguments before '(' token
 3445 |     return llvm::ArrayRef(getTrailingObjects<CleanupObject>(), getNumObjects());
      |                          ^
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4141:26: error: 'std::optional' has not been declared
 4141 |                     std::optional<unsigned> NumExpansions)
      |                          ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4141:34: error: expected ',' or '...' before '<' token
 4141 |                     std::optional<unsigned> NumExpansions)
      |                                  ^
/usr/include/clang/AST/ExprCXX.h:4164:8: error: 'optional' in namespace 'std' does not name a template type
 4164 |   std::optional<unsigned> getNumExpansions() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4164:3: note: 'std::optional' is only available from C++17 onwards
 4164 |   std::optional<unsigned> getNumExpansions() const {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::PackExpansionExpr::PackExpansionExpr(clang::QualType, clang::Expr*, clang::SourceLocation, int)':
/usr/include/clang/AST/ExprCXX.h:4145:39: error: invalid type argument of unary '*' (have 'unsigned int')
 4145 |         NumExpansions(NumExpansions ? *NumExpansions + 1 : 0),
      |                                       ^~~~~~~~~~~~~~
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4235:23: error: 'std::optional' has not been declared
 4235 |                  std::optional<unsigned> Length,
      |                       ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4235:31: error: expected ',' or '...' before '<' token
 4235 |                  std::optional<unsigned> Length,
      |                               ^
/usr/include/clang/AST/ExprCXX.h:4256:15: error: 'std::optional' has not been declared
 4256 |          std::optional<unsigned> Length = std::nullopt,
      |               ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4256:23: error: expected ',' or '...' before '<' token
 4256 |          std::optional<unsigned> Length = std::nullopt,
      |                       ^
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::SizeOfPackExpr::SizeOfPackExpr(clang::QualType, clang::SourceLocation, clang::NamedDecl*, clang::SourceLocation, clang::SourceLocation, int)':
/usr/include/clang/AST/ExprCXX.h:4239:25: error: invalid type argument of unary '*' (have 'unsigned int')
 4239 |         Length(Length ? *Length : PartialArgs.size()), Pack(Pack) {
      |                         ^~~~~~~
/usr/include/clang/AST/ExprCXX.h:4239:35: error: 'PartialArgs' was not declared in this scope
 4239 |         Length(Length ? *Length : PartialArgs.size()), Pack(Pack) {
      |                                   ^~~~~~~~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::SizeOfPackExpr::getPartialArguments() const':
/usr/include/clang/AST/ExprCXX.h:4296:26: error: missing template arguments before '(' token
 4296 |     return llvm::ArrayRef(Args, Args + Length);
      |                          ^
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4340:37: error: 'std::optional' has not been declared
 4340 |                                std::optional<unsigned> PackIndex, bool RefParam)
      |                                     ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4340:45: error: expected ',' or '...' before '<' token
 4340 |                                std::optional<unsigned> PackIndex, bool RefParam)
      |                                             ^
/usr/include/clang/AST/ExprCXX.h:4366:8: error: 'optional' in namespace 'std' does not name a template type
 4366 |   std::optional<unsigned> getPackIndex() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4366:3: note: 'std::optional' is only available from C++17 onwards
 4366 |   std::optional<unsigned> getPackIndex() const {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::SubstNonTypeTemplateParmExpr::SubstNonTypeTemplateParmExpr(clang::QualType, clang::ExprValueKind, clang::SourceLocation, clang::Expr*, clang::Decl*, unsigned int, int)':
/usr/include/clang/AST/ExprCXX.h:4343:46: error: 'RefParam' was not declared in this scope
 4343 |         AssociatedDeclAndRef(AssociatedDecl, RefParam), Index(Index),
      |                                              ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4344:31: error: invalid type argument of unary '*' (have 'unsigned int')
 4344 |         PackIndex(PackIndex ? *PackIndex + 1 : 0) {
      |                               ^~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>'
/usr/include/clang/AST/ExprCXX.h:4567:63:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>':
/usr/include/clang/AST/ExprCXX.h:4567:63:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4693:20: error: 'std::optional' has not been declared
 4693 |               std::optional<unsigned> NumExpansions)
      |                    ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4693:28: error: expected ',' or '...' before '<' token
 4693 |               std::optional<unsigned> NumExpansions)
      |                            ^
/usr/include/clang/AST/ExprCXX.h:4730:8: error: 'optional' in namespace 'std' does not name a template type
 4730 |   std::optional<unsigned> getNumExpansions() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4730:3: note: 'std::optional' is only available from C++17 onwards
 4730 |   std::optional<unsigned> getNumExpansions() const {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::CXXFoldExpr::CXXFoldExpr(clang::QualType, clang::UnresolvedLookupExpr*, clang::SourceLocation, clang::Expr*, clang::BinaryOperatorKind, clang::SourceLocation, clang::Expr*, clang::SourceLocation, int)':
/usr/include/clang/AST/ExprCXX.h:4696:39: error: invalid type argument of unary '*' (have 'unsigned int')
 4696 |         NumExpansions(NumExpansions ? *NumExpansions + 1 : 0), Opcode(Opcode) {
      |                                       ^~~~~~~~~~~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getInitExprs()':
/usr/include/clang/AST/ExprCXX.h:4837:20: error: missing template arguments before '(' token
 4837 |     return ArrayRef(getTrailingObjects<Expr *>(), NumExprs);
      |                    ^
/usr/include/clang/AST/ExprCXX.h: In member function 'const llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getInitExprs() const':
/usr/include/clang/AST/ExprCXX.h:4841:20: error: missing template arguments before '(' token
 4841 |     return ArrayRef(getTrailingObjects<Expr *>(), NumExprs);
      |                    ^
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getUserSpecifiedInitExprs()':
/usr/include/clang/AST/ExprCXX.h:4845:20: error: missing template arguments before '(' token
 4845 |     return ArrayRef(getTrailingObjects<Expr *>(), NumUserSpecifiedExprs);
      |                    ^
/usr/include/clang/AST/ExprCXX.h: In member function 'const llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getUserSpecifiedInitExprs() const':
/usr/include/clang/AST/ExprCXX.h:4849:20: error: missing template arguments before '(' token
 4849 |     return ArrayRef(getTrailingObjects<Expr *>(), NumUserSpecifiedExprs);
      |                    ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/ExprConcepts.h:216:66:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/ExprConcepts.h:216:66:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
/usr/include/clang/AST/ExprConcepts.h:336:56:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/clang/AST/ExprConcepts.h:336:56:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
/usr/include/clang/AST/ExprConcepts.h:283:33:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/clang/AST/ExprConcepts.h:283:33:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:29:
/usr/include/clang/AST/ExprObjC.h: At global scope:
/usr/include/clang/AST/ExprObjC.h:274:8: error: 'optional' in namespace 'std' does not name a template type
  274 |   std::optional<unsigned> NumExpansions;
      |        ^~~~~~~~
/usr/include/clang/AST/ExprObjC.h:274:3: note: 'std::optional' is only available from C++17 onwards
  274 |   std::optional<unsigned> NumExpansions;
      |   ^~~
/usr/include/clang/AST/ExprObjC.h: In member function 'clang::ObjCDictionaryElement clang::ObjCDictionaryLiteral::getKeyValueElement(unsigned int) const':
/usr/include/clang/AST/ExprObjC.h:365:42: error: 'nullopt' is not a member of 'std'
  365 |                                     std::nullopt};
      |                                          ^~~~~~~
/usr/include/clang/AST/ExprObjC.h:365:42: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/ExprObjC.h:365:49: error: too many initializers for 'clang::ObjCDictionaryElement'
  365 |                                     std::nullopt};
      |                                                 ^
/usr/include/clang/AST/ExprObjC.h:371:16: error: 'struct clang::ObjCDictionaryElement' has no member named 'NumExpansions'
  371 |         Result.NumExpansions = Expansion.NumExpansionsPlusOne - 1;
      |                ^~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>'
/usr/include/clang/AST/ExprObjC.h:645:65:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>':
/usr/include/clang/AST/ExprObjC.h:645:65:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprObjC.h: In member function 'clang::SourceLocation clang::ObjCMessageExpr::getSelectorLoc(unsigned int) const':
/usr/include/clang/AST/ExprObjC.h:1420:25: error: missing template arguments before '(' token
 1420 |           llvm::ArrayRef(const_cast<Expr **>(getArgs()), getNumArgs()),
      |                         ^
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:30:
/usr/include/clang/AST/ExprOpenMP.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::OMPArrayShapingExpr::getDimensions() const':
/usr/include/clang/AST/ExprOpenMP.h:205:26: error: missing template arguments before '(' token
  205 |     return llvm::ArrayRef(getTrailingObjects<Expr *>(), NumDims);
      |                          ^
/usr/include/clang/AST/ExprOpenMP.h: In member function 'llvm::ArrayRef<clang::SourceRange> clang::OMPArrayShapingExpr::getBracketsRanges() const':
/usr/include/clang/AST/ExprOpenMP.h:210:26: error: missing template arguments before '(' token
  210 |     return llvm::ArrayRef(getTrailingObjects<SourceRange>(), NumDims);
      |                          ^
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:37:
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::OMPClause*> clang::OMPExecutableDirective::getClauses()':
/usr/include/clang/AST/StmtOpenMP.h:280:19: error: 'nullopt' is not a member of 'std'
  280 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/StmtOpenMP.h:280:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/StmtOpenMP.h: In static member function 'static llvm::iterator_range<clang::OMPExecutableDirective::used_clauses_child_iterator> clang::OMPExecutableDirective::used_clauses_children(llvm::ArrayRef<clang::OMPClause*>)':
/usr/include/clang/AST/StmtOpenMP.h:404:36: error: expected primary-expression before '(' token
  404 |         used_clauses_child_iterator(llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                                    ^
/usr/include/clang/AST/StmtOpenMP.h:404:51: error: missing template arguments before '(' token
  404 |         used_clauses_child_iterator(llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                                                   ^
/usr/include/clang/AST/StmtOpenMP.h:404:78: error: could not convert '{clang::OMPExecutableDirective::used_clauses_child_iterator(Clauses), <expression error>}' from '<brace-enclosed initializer list>' to 'llvm::iterator_range<clang::OMPExecutableDirective::used_clauses_child_iterator>'
  404 |         used_clauses_child_iterator(llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                                                                              ^
      |                                                                              |
      |                                                                              <brace-enclosed initializer list>
/usr/include/clang/AST/StmtOpenMP.h: In static member function 'static llvm::iterator_range<clang::OMPExecutableDirective::specific_clause_iterator<SpecificClause> > clang::OMPExecutableDirective::getClausesOfKind(llvm::ArrayRef<clang::OMPClause*>)':
/usr/include/clang/AST/StmtOpenMP.h:448:53: error: expected primary-expression before '(' token
  448 |             specific_clause_iterator<SpecificClause>(
      |                                                     ^
/usr/include/clang/AST/StmtOpenMP.h:449:31: error: missing template arguments before '(' token
  449 |                 llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                               ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::ArrayRef<clang::OMPClause*> clang::OMPExecutableDirective::clauses() const':
/usr/include/clang/AST/StmtOpenMP.h:575:19: error: 'nullopt' is not a member of 'std'
  575 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/StmtOpenMP.h:575:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getCounters()':
/usr/include/clang/AST/StmtOpenMP.h:1070:33: error: missing template arguments before '(' token
 1070 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getPrivateCounters()':
/usr/include/clang/AST/StmtOpenMP.h:1078:33: error: missing template arguments before '(' token
 1078 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getInits()':
/usr/include/clang/AST/StmtOpenMP.h:1086:33: error: missing template arguments before '(' token
 1086 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getUpdates()':
/usr/include/clang/AST/StmtOpenMP.h:1094:33: error: missing template arguments before '(' token
 1094 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getFinals()':
/usr/include/clang/AST/StmtOpenMP.h:1102:33: error: missing template arguments before '(' token
 1102 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getDependentCounters()':
/usr/include/clang/AST/StmtOpenMP.h:1110:33: error: missing template arguments before '(' token
 1110 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getDependentInits()':
/usr/include/clang/AST/StmtOpenMP.h:1118:33: error: missing template arguments before '(' token
 1118 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getFinalsConditions()':
/usr/include/clang/AST/StmtOpenMP.h:1126:33: error: missing template arguments before '(' token
 1126 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
In file included from /usr/include/clang/Basic/FileEntry.h:17,
                 from /usr/include/clang/Basic/SourceManager.h:38,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/BinOpSimplification.cpp:21:
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:35:34: error: invalid use of '::'
   35 |   constexpr CustomizableOptional(std::nullopt_t) {}
      |                                  ^~~
/usr/include/clang/Basic/CustomizableOptional.h:35:51: error: expected ';' at end of member declaration
   35 |   constexpr CustomizableOptional(std::nullopt_t) {}
      |                                                   ^
      |                                                    ;
/usr/include/clang/Basic/CustomizableOptional.h:45:49: error: expected ')' before ',' token
   45 |   constexpr CustomizableOptional(std::in_place_t, ArgTypes &&...Args)
      |                                 ~               ^
      |                                                 )
/usr/include/clang/Basic/CustomizableOptional.h:49:45: error: 'optional' in namespace 'std' does not name a template type
   49 |   constexpr CustomizableOptional(const std::optional<T> &y)
      |                                             ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:49:40: note: 'std::optional' is only available from C++17 onwards
   49 |   constexpr CustomizableOptional(const std::optional<T> &y)
      |                                        ^~~
/usr/include/clang/Basic/CustomizableOptional.h:49:53: error: expected ',' or '...' before '<' token
   49 |   constexpr CustomizableOptional(const std::optional<T> &y)
      |                                                     ^
/usr/include/clang/Basic/CustomizableOptional.h:51:47: error: expected ')' before '<' token
   51 |   constexpr CustomizableOptional(std::optional<T> &&y)
      |                                 ~             ^
      |                                               )
/usr/include/clang/Basic/CustomizableOptional.h:102:26: error: 'optional' in namespace 'std' does not name a template type
  102 |   explicit operator std::optional<T> &() const & {
      |                          ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:102:21: note: 'std::optional' is only available from C++17 onwards
  102 |   explicit operator std::optional<T> &() const & {
      |                     ^~~
/usr/include/clang/Basic/CustomizableOptional.h:105:26: error: 'optional' in namespace 'std' does not name a template type
  105 |   explicit operator std::optional<T> &&() const && {
      |                          ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:105:21: note: 'std::optional' is only available from C++17 onwards
  105 |   explicit operator std::optional<T> &&() const && {
      |                     ^~~
/usr/include/clang/Basic/CustomizableOptional.h: In constructor 'constexpr clang::CustomizableOptional<T>::CustomizableOptional(const T&)':
/usr/include/clang/Basic/CustomizableOptional.h:37:61: error: 'in_place' is not a member of 'std'
   37 |   constexpr CustomizableOptional(const T &y) : Storage(std::in_place, y) {}
      |                                                             ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:37:61: note: 'std::in_place' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: In constructor 'constexpr clang::CustomizableOptional<T>::CustomizableOptional(T&&)':
/usr/include/clang/Basic/CustomizableOptional.h:41:22: error: 'in_place' is not a member of 'std'
   41 |       : Storage(std::in_place, std::move(y)) {}
      |                      ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:41:22: note: 'std::in_place' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: In constructor 'constexpr clang::CustomizableOptional<T>::CustomizableOptional(int)':
/usr/include/clang/Basic/CustomizableOptional.h:50:30: error: 'y' was not declared in this scope
   50 |       : CustomizableOptional(y ? *y : CustomizableOptional()) {}
      |                              ^
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:111:59: error: expected constructor, destructor, or type conversion before ';' token
  111 | CustomizableOptional(const T &) -> CustomizableOptional<T>;
      |                                                           ^
/usr/include/clang/Basic/CustomizableOptional.h:159:66: error: 'std::nullopt_t' has not been declared
  159 | constexpr bool operator==(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:164:16: error: declaration of 'operator==' as non-function
  164 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:164:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  164 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:164:43: error: expected primary-expression before 'const'
  164 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:169:66: error: 'std::nullopt_t' has not been declared
  169 | constexpr bool operator!=(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator!=(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:170:22: error: 'nullopt' is not a member of 'std'
  170 |   return !(X == std::nullopt);
      |                      ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:170:22: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:174:16: error: declaration of 'operator!=' as non-function
  174 | constexpr bool operator!=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:174:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  174 | constexpr bool operator!=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:174:43: error: expected primary-expression before 'const'
  174 | constexpr bool operator!=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:179:64: error: 'std::nullopt_t' has not been declared
  179 | constexpr bool operator<(const CustomizableOptional<T> &, std::nullopt_t) {
      |                                                                ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:184:16: error: declaration of 'operator<' as non-function
  184 | constexpr bool operator<(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:184:31: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  184 | constexpr bool operator<(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                               ^~~~~~~~~
      |                               nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:184:42: error: expected primary-expression before 'const'
  184 | constexpr bool operator<(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                          ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:189:66: error: 'std::nullopt_t' has not been declared
  189 | constexpr bool operator<=(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator<=(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:190:17: error: 'nullopt' is not a member of 'std'
  190 |   return !(std::nullopt < X);
      |                 ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:190:17: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:194:16: error: declaration of 'operator<=' as non-function
  194 | constexpr bool operator<=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:194:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  194 | constexpr bool operator<=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:194:43: error: expected primary-expression before 'const'
  194 | constexpr bool operator<=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:199:65: error: 'std::nullopt_t' has not been declared
  199 | constexpr bool operator>(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                 ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator>(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:200:15: error: 'nullopt' is not a member of 'std'
  200 |   return std::nullopt < X;
      |               ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:200:15: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:204:16: error: declaration of 'operator>' as non-function
  204 | constexpr bool operator>(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:204:31: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  204 | constexpr bool operator>(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                               ^~~~~~~~~
      |                               nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:204:42: error: expected primary-expression before 'const'
  204 | constexpr bool operator>(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                          ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:209:66: error: 'std::nullopt_t' has not been declared
  209 | constexpr bool operator>=(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator>=(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:210:15: error: 'nullopt' is not a member of 'std'
  210 |   return std::nullopt <= X;
      |               ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:210:15: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:214:16: error: declaration of 'operator>=' as non-function
  214 | constexpr bool operator>=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:214:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  214 | constexpr bool operator>=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:214:43: error: expected primary-expression before 'const'
  214 | constexpr bool operator>=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
In file included from /usr/include/clang/Basic/FileEntry.h:18:
/usr/include/clang/Basic/DirectoryEntry.h:134:51: error: expected ')' before ',' token
  134 |   explicit MapEntryOptionalStorage(std::in_place_t, ArgTypes &&...Args)
      |                                   ~               ^
      |                                                   )
/usr/include/clang/Basic/DirectoryEntry.h:180:43: error: expected ')' before ',' token
  180 |   explicit OptionalStorage(std::in_place_t, ArgTypes &&...Args)
      |                           ~               ^
      |                                           )
/usr/include/clang/Basic/DirectoryEntry.h:181:38: error: expected unqualified-id before ',' token
  181 |       : StorageImpl(std::in_place_t{}, std::forward<ArgTypes>(Args)...) {}
      |                                      ^
/usr/include/clang/Basic/DirectoryEntry.h:269:56: error: invalid use of '::'
  269 |   OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr(std::nullopt_t) {}
      |                                                        ^~~
/usr/include/clang/Basic/DirectoryEntry.h:269:73: error: expected ';' at end of member declaration
  269 |   OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr(std::nullopt_t) {}
      |                                                                         ^
      |                                                                          ;
/usr/include/clang/Basic/DirectoryEntry.h:277:18: error: 'std::nullopt_t' has not been declared
  277 |   operator=(std::nullopt_t) {
      |                  ^~~~~~~~~
/usr/include/clang/Basic/DirectoryEntry.h: In member function 'clang::OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr& clang::OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr::operator=(int)':
/usr/include/clang/Basic/DirectoryEntry.h:278:47: error: 'nullopt' is not a member of 'std'
  278 |     OptionalDirectoryEntryRef::operator=(std::nullopt);
      |                                               ^~~~~~~
/usr/include/clang/Basic/DirectoryEntry.h:278:47: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::FileEntry*, const void*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::FileEntry*, const void*>'
/usr/include/clang/Basic/FileEntry.h:124:51:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::FileEntry*, const void*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::FileEntry*, const void*>':
/usr/include/clang/Basic/FileEntry.h:124:51:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::FileEntry*, const void*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/Basic/FileEntry.h: At global scope:
/usr/include/clang/Basic/FileEntry.h:221:43: error: expected ')' before ',' token
  221 |   explicit OptionalStorage(std::in_place_t, ArgTypes &&...Args)
      |                           ~               ^
      |                                           )
/usr/include/clang/Basic/FileEntry.h:222:38: error: expected unqualified-id before ',' token
  222 |       : StorageImpl(std::in_place_t{}, std::forward<ArgTypes>(Args)...) {}
      |                                      ^
/usr/include/clang/Basic/FileEntry.h:305:46: error: invalid use of '::'
  305 |   OptionalFileEntryRefDegradesToFileEntryPtr(std::nullopt_t) {}
      |                                              ^~~
/usr/include/clang/Basic/FileEntry.h:305:63: error: expected ';' at end of member declaration
  305 |   OptionalFileEntryRefDegradesToFileEntryPtr(std::nullopt_t) {}
      |                                                               ^
      |                                                                ;
/usr/include/clang/Basic/FileEntry.h:311:62: error: 'std::nullopt_t' has not been declared
  311 |   OptionalFileEntryRefDegradesToFileEntryPtr &operator=(std::nullopt_t) {
      |                                                              ^~~~~~~~~
/usr/include/clang/Basic/FileEntry.h: In member function 'clang::OptionalFileEntryRefDegradesToFileEntryPtr& clang::OptionalFileEntryRefDegradesToFileEntryPtr::operator=(int)':
/usr/include/clang/Basic/FileEntry.h:312:42: error: 'nullopt' is not a member of 'std'
  312 |     OptionalFileEntryRef::operator=(std::nullopt);
      |                                          ^~~~~~~
/usr/include/clang/Basic/FileEntry.h:312:42: note: 'std::nullopt' is only available from C++17 onwards
In file included from /usr/include/llvm/Support/FormatProviders.h:21,
                 from /usr/include/llvm/Support/Chrono.h:13,
                 from /usr/include/llvm/Support/FileSystem.h:33,
                 from /usr/include/clang/Basic/FileManager.h:29,
                 from /usr/include/clang/Basic/SourceManager.h:39:
/usr/include/llvm/Support/NativeFormatting.h: At global scope:
/usr/include/llvm/Support/NativeFormatting.h:41:21: error: 'std::optional' has not been declared
   41 |                std::optional<size_t> Width = std::nullopt);
      |                     ^~~~~~~~
/usr/include/llvm/Support/NativeFormatting.h:41:29: error: expected ',' or '...' before '<' token
   41 |                std::optional<size_t> Width = std::nullopt);
      |                             ^
/usr/include/llvm/Support/NativeFormatting.h:43:24: error: 'std::optional' has not been declared
   43 |                   std::optional<size_t> Precision = std::nullopt);
      |                        ^~~~~~~~
/usr/include/llvm/Support/NativeFormatting.h:43:32: error: expected ',' or '...' before '<' token
   43 |                   std::optional<size_t> Precision = std::nullopt);
      |                                ^
/usr/include/llvm/Support/FormatProviders.h:32:17: error: 'is_one_of' was not declared in this scope; did you mean 'none_of'?
   32 |           bool, is_one_of<T, uint8_t, int16_t, uint16_t, int32_t, uint32_t,
      |                 ^~~~~~~~~
      |                 none_of
/usr/include/llvm/Support/FormatProviders.h:34:56: error: wrong number of template arguments (15, should be 2)
   34 |                           long long, unsigned long long>::value> {};
      |                                                        ^
/usr/include/c++/13/type_traits:62:12: note: provided for 'template<class _Tp, _Tp __v> struct std::integral_constant'
   62 |     struct integral_constant
      |            ^~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:34:57: error: expected '{' before '::' token
   34 |                           long long, unsigned long long>::value> {};
      |                                                         ^~
/usr/include/llvm/Support/FormatProviders.h:43:37: error: 'is_one_of' was not declared in this scope; did you mean 'none_of'?
   43 |                                     is_one_of<T, char *, const char *>::value> {
      |                                     ^~~~~~~~~
      |                                     none_of
/usr/include/llvm/Support/FormatProviders.h:43:70: error: wrong number of template arguments (4, should be 2)
   43 |                                     is_one_of<T, char *, const char *>::value> {
      |                                                                      ^
/usr/include/c++/13/type_traits:62:12: note: provided for 'template<class _Tp, _Tp __v> struct std::integral_constant'
   62 |     struct integral_constant
      |            ^~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:43:71: error: expected '{' before '::' token
   43 |                                     is_one_of<T, char *, const char *>::value> {
      |                                                                       ^~
/usr/include/llvm/Support/FormatProviders.h:62:15: error: 'optional' in namespace 'std' does not name a template type
   62 |   static std::optional<size_t> parseNumericPrecision(StringRef Str) {
      |               ^~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:62:10: note: 'std::optional' is only available from C++17 onwards
   62 |   static std::optional<size_t> parseNumericPrecision(StringRef Str) {
      |          ^~~
/usr/include/llvm/Support/FormatProviders.h: In instantiation of 'struct llvm::detail::use_pointer_formatter<std::__cxx11::basic_string<char> >':
/usr/include/llvm/Support/FormatProviders.h:219:33:   recursively required by substitution of 'template<class T> struct llvm::format_provider<T, typename std::enable_if<llvm::detail::use_pointer_formatter<T>::value, void>::type> [with T = std::__cxx11::basic_string<char>]'
/usr/include/llvm/Support/FormatProviders.h:219:33:   required from here
/usr/include/llvm/Support/FormatProviders.h:54:63: error: incomplete type 'llvm::detail::is_cstring<std::__cxx11::basic_string<char> >' used in nested name specifier
   54 |                                               !is_cstring<T>::value> {};
      |                                                               ^~~~~
/usr/include/llvm/Support/FormatProviders.h: In instantiation of 'struct llvm::detail::use_pointer_formatter<int>':
/usr/include/llvm/Support/FormatProviders.h:241:27:   recursively required by substitution of 'template<class T> struct llvm::format_provider<T, typename std::enable_if<llvm::detail::use_pointer_formatter<T>::value, void>::type> [with T = int]'
/usr/include/llvm/Support/FormatProviders.h:241:27:   required from here
/usr/include/llvm/Support/FormatProviders.h:54:63: error: incomplete type 'llvm::detail::is_cstring<int>' used in nested name specifier
/usr/include/llvm/Support/FormatProviders.h: In static member function 'static void llvm::format_provider<T, typename std::enable_if<llvm::detail::use_char_formatter<T>::value, void>::type>::format(const char&, llvm::raw_ostream&, llvm::StringRef)':
/usr/include/llvm/Support/FormatProviders.h:241:29: error: 'format' is not a member of 'llvm::format_provider<int>'
  241 |       format_provider<int>::format(X, Stream, Style);
      |                             ^~~~~~
/usr/include/llvm/Support/FormatProviders.h: In static member function 'static void llvm::format_provider<T, typename std::enable_if<llvm::detail::use_double_formatter<T>::value, void>::type>::format(const T&, llvm::raw_ostream&, llvm::StringRef)':
/usr/include/llvm/Support/FormatProviders.h:315:10: error: 'optional' is not a member of 'std'
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |          ^~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:315:10: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/FormatProviders.h:315:25: error: expected primary-expression before '>' token
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |                         ^
/usr/include/llvm/Support/FormatProviders.h:315:27: error: 'Precision' was not declared in this scope
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |                           ^~~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:315:39: error: there are no arguments to 'parseNumericPrecision' that depend on a template parameter, so a declaration of 'parseNumericPrecision' must be available [-fpermissive]
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |                                       ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/Error.h:18,
                 from /usr/include/llvm/Support/FileSystem.h:34:
/usr/include/llvm/ADT/StringExtras.h: In function 'std::string llvm::toString(const APInt&, unsigned int, bool, bool)':
/usr/include/llvm/ADT/StringExtras.h:322:29: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef)'
  322 |   return std::string(S.str());
      |                             ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/ADT/StringExtras.h:322:29: note:   candidate expects 3 arguments, 1 provided
  322 |   return std::string(S.str());
      |                             ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/llvm/Support/Error.h:26:
/usr/include/llvm/Support/Format.h: At global scope:
/usr/include/llvm/Support/Format.h:83:22: error: 'is_scalar_v' is not a member of 'std'; did you mean 'is_scalar'?
   83 |   static_assert(std::is_scalar_v<Arg>,
      |                      ^~~~~~~~~~~
      |                      is_scalar
/usr/include/llvm/Support/Format.h:83:37: error: expected primary-expression before '>' token
   83 |   static_assert(std::is_scalar_v<Arg>,
      |                                     ^
/usr/include/llvm/Support/Format.h:83:38: error: expected primary-expression before ',' token
   83 |   static_assert(std::is_scalar_v<Arg>,
      |                                      ^
/usr/include/llvm/Support/Format.h:219:8: error: 'optional' in namespace 'std' does not name a template type
  219 |   std::optional<uint64_t> FirstByteOffset;
      |        ^~~~~~~~
/usr/include/llvm/Support/Format.h:219:3: note: 'std::optional' is only available from C++17 onwards
  219 |   std::optional<uint64_t> FirstByteOffset;
      |   ^~~
/usr/include/llvm/Support/Format.h:228:57: error: 'std::optional' has not been declared
  228 |   FormattedBytes(ArrayRef<uint8_t> B, uint32_t IL, std::optional<uint64_t> O,
      |                                                         ^~~~~~~~
/usr/include/llvm/Support/Format.h:228:65: error: expected ',' or '...' before '<' token
  228 |   FormattedBytes(ArrayRef<uint8_t> B, uint32_t IL, std::optional<uint64_t> O,
      |                                                                 ^
/usr/include/llvm/Support/Format.h: In constructor 'llvm::FormattedBytes::FormattedBytes(llvm::ArrayRef<unsigned char>, uint32_t, int)':
/usr/include/llvm/Support/Format.h:230:19: error: class 'llvm::FormattedBytes' does not have any field named 'FirstByteOffset'
  230 |       : Bytes(B), FirstByteOffset(O), IndentLevel(IL), NumPerLine(NPL),
      |                   ^~~~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:230:35: error: 'O' was not declared in this scope
  230 |       : Bytes(B), FirstByteOffset(O), IndentLevel(IL), NumPerLine(NPL),
      |                                   ^
/usr/include/llvm/Support/Format.h:230:67: error: 'NPL' was not declared in this scope
  230 |       : Bytes(B), FirstByteOffset(O), IndentLevel(IL), NumPerLine(NPL),
      |                                                                   ^~~
/usr/include/llvm/Support/Format.h:231:23: error: 'BGS' was not declared in this scope
  231 |         ByteGroupSize(BGS), Upper(U), ASCII(A) {
      |                       ^~~
/usr/include/llvm/Support/Format.h:231:35: error: 'U' was not declared in this scope
  231 |         ByteGroupSize(BGS), Upper(U), ASCII(A) {
      |                                   ^
/usr/include/llvm/Support/Format.h:231:45: error: 'A' was not declared in this scope
  231 |         ByteGroupSize(BGS), Upper(U), ASCII(A) {
      |                                             ^
/usr/include/llvm/Support/Format.h: At global scope:
/usr/include/llvm/Support/Format.h:240:19: error: 'std::optional' has not been declared
  240 |              std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                   ^~~~~~~~
/usr/include/llvm/Support/Format.h:240:27: error: expected ',' or '...' before '<' token
  240 |              std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                           ^
/usr/include/llvm/Support/Format.h: In function 'llvm::FormattedBytes llvm::format_bytes(ArrayRef<unsigned char>, int)':
/usr/include/llvm/Support/Format.h:243:32: error: 'IndentLevel' was not declared in this scope
  243 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                ^~~~~~~~~~~
/usr/include/llvm/Support/Format.h:243:45: error: 'FirstByteOffset' was not declared in this scope
  243 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                             ^~~~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:243:62: error: 'NumPerLine' was not declared in this scope
  243 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                                              ^~~~~~~~~~
/usr/include/llvm/Support/Format.h:244:25: error: 'ByteGroupSize' was not declared in this scope
  244 |                         ByteGroupSize, Upper, false);
      |                         ^~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:244:40: error: 'Upper' was not declared in this scope; did you mean 'llvm::HexPrintStyle::Upper'?
  244 |                         ByteGroupSize, Upper, false);
      |                                        ^~~~~
      |                                        llvm::HexPrintStyle::Upper
/usr/include/llvm/Support/NativeFormatting.h:22:28: note: 'llvm::HexPrintStyle::Upper' declared here
   22 | enum class HexPrintStyle { Upper, Lower, PrefixUpper, PrefixLower };
      |                            ^~~~~
/usr/include/llvm/Support/Format.h: At global scope:
/usr/include/llvm/Support/Format.h:249:30: error: 'std::optional' has not been declared
  249 |                         std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                              ^~~~~~~~
/usr/include/llvm/Support/Format.h:249:38: error: expected ',' or '...' before '<' token
  249 |                         std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                                      ^
/usr/include/llvm/Support/Format.h: In function 'llvm::FormattedBytes llvm::format_bytes_with_ascii(ArrayRef<unsigned char>, int)':
/usr/include/llvm/Support/Format.h:252:32: error: 'IndentLevel' was not declared in this scope
  252 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                ^~~~~~~~~~~
/usr/include/llvm/Support/Format.h:252:45: error: 'FirstByteOffset' was not declared in this scope
  252 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                             ^~~~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:252:62: error: 'NumPerLine' was not declared in this scope
  252 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                                              ^~~~~~~~~~
/usr/include/llvm/Support/Format.h:253:25: error: 'ByteGroupSize' was not declared in this scope
  253 |                         ByteGroupSize, Upper, true);
      |                         ^~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:253:40: error: 'Upper' was not declared in this scope; did you mean 'llvm::HexPrintStyle::Upper'?
  253 |                         ByteGroupSize, Upper, true);
      |                                        ^~~~~
      |                                        llvm::HexPrintStyle::Upper
/usr/include/llvm/Support/NativeFormatting.h:22:28: note: 'llvm::HexPrintStyle::Upper' declared here
   22 | enum class HexPrintStyle { Upper, Lower, PrefixUpper, PrefixLower };
      |                            ^~~~~
/usr/include/llvm/Support/Error.h: At global scope:
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:59: error: template argument 1 is invalid
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                                           ^
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:60: error: template argument 1 is invalid
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                                            ^~
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:60: error: template argument 1 is invalid
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                                            ^~
/usr/include/llvm/Support/Error.h:512:17: error: 'std::enable_if_t' is not a type
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                 ^~~~~~~~~~~
/usr/include/llvm/Support/Error.h:512:28: error: expected ',' or '...' before '<' token
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                            ^
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:59: error: template argument 1 is invalid
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                           ^
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:60: error: template argument 1 is invalid
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                            ^~
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:60: error: template argument 1 is invalid
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                            ^~
/usr/include/llvm/Support/Error.h:530:17: error: 'std::enable_if_t' is not a type
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                 ^~~~~~~~~~~
/usr/include/llvm/Support/Error.h:530:28: error: expected ',' or '...' before '<' token
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                            ^
/usr/include/llvm/Support/Error.h:539:30: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                              ^~~~~~~~~~~~~~~~
      |                              is_convertible
/usr/include/llvm/Support/Error.h:539:55: error: template argument 1 is invalid
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                       ^
/usr/include/llvm/Support/Error.h:539:30: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                              ^~~~~~~~~~~~~~~~
      |                              is_convertible
/usr/include/llvm/Support/Error.h:539:56: error: template argument 1 is invalid
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                        ^~
/usr/include/llvm/Support/Error.h:539:30: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                              ^~~~~~~~~~~~~~~~
      |                              is_convertible
/usr/include/llvm/Support/Error.h:539:56: error: template argument 1 is invalid
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                        ^~
/usr/include/llvm/Support/Error.h:539:12: error: 'std::enable_if_t' is not a type
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |            ^~~~~~~~~~~
/usr/include/llvm/Support/Error.h:539:23: error: expected ',' or '...' before '<' token
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                       ^
/usr/include/llvm/Support/Error.h:537:12: error: 'template<class T> template<class OtherT> llvm::Expected<T>::Expected(llvm::Expected<OtherT>&&, int)' cannot be overloaded with 'template<class T> template<class OtherT> llvm::Expected<T>::Expected(llvm::Expected<OtherT>&&, int)'
  537 |   explicit Expected(
      |            ^~~~~~~~
/usr/include/llvm/Support/Error.h:529:3: note: previous declaration 'template<class T> template<class OtherT> llvm::Expected<T>::Expected(llvm::Expected<OtherT>&&, int)'
  529 |   Expected(Expected<OtherT> &&Other,
      |   ^~~~~~~~
/usr/include/llvm/Support/Error.h:1054:28: error: 'optional' in namespace 'std' does not name a template type
 1054 | template <typename T> std::optional<T> expectedToOptional(Expected<T> &&E) {
      |                            ^~~~~~~~
/usr/include/llvm/Support/Error.h:1054:23: note: 'std::optional' is only available from C++17 onwards
 1054 | template <typename T> std::optional<T> expectedToOptional(Expected<T> &&E) {
      |                       ^~~
/usr/include/llvm/Support/Error.h:1061:28: error: 'optional' in namespace 'std' does not name a template type
 1061 | template <typename T> std::optional<T> expectedToStdOptional(Expected<T> &&E) {
      |                            ^~~~~~~~
/usr/include/llvm/Support/Error.h:1061:23: note: 'std::optional' is only available from C++17 onwards
 1061 | template <typename T> std::optional<T> expectedToStdOptional(Expected<T> &&E) {
      |                       ^~~
/usr/include/llvm/Support/Error.h:1301:34: error: 'std::optional' has not been declared
 1301 |   FileError(const Twine &F, std::optional<size_t> LineNum,
      |                                  ^~~~~~~~
/usr/include/llvm/Support/Error.h:1301:42: error: expected ',' or '...' before '<' token
 1301 |   FileError(const Twine &F, std::optional<size_t> LineNum,
      |                                          ^
/usr/include/llvm/Support/Error.h:1309:43: error: 'std::optional' has not been declared
 1309 |   static Error build(const Twine &F, std::optional<size_t> Line, Error E) {
      |                                           ^~~~~~~~
/usr/include/llvm/Support/Error.h:1309:51: error: expected ',' or '...' before '<' token
 1309 |   static Error build(const Twine &F, std::optional<size_t> Line, Error E) {
      |                                                   ^
/usr/include/llvm/Support/Error.h:1321:8: error: 'optional' in namespace 'std' does not name a template type
 1321 |   std::optional<size_t> Line;
      |        ^~~~~~~~
/usr/include/llvm/Support/Error.h:1321:3: note: 'std::optional' is only available from C++17 onwards
 1321 |   std::optional<size_t> Line;
      |   ^~~
/usr/include/llvm/Support/Error.h: In member function 'virtual void llvm::FileError::log(llvm::raw_ostream&) const':
/usr/include/llvm/Support/Error.h:1279:9: error: 'Line' was not declared in this scope
 1279 |     if (Line)
      |         ^~~~
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/llvm/Support/Error.h:28:
/usr/include/llvm/Support/Error.h: In constructor 'llvm::FileError::FileError(const llvm::Twine&, int)':
/usr/include/llvm/Support/Error.h:1303:5: error: 'E' was not declared in this scope
 1303 |     assert(E && "Cannot create FileError from Error success value.");
      |     ^~~~~~
/usr/include/llvm/Support/Error.h:1306:5: error: 'Line' was not declared in this scope
 1306 |     Line = std::move(LineNum);
      |     ^~~~
/usr/include/llvm/Support/Error.h:1306:22: error: 'LineNum' was not declared in this scope
 1306 |     Line = std::move(LineNum);
      |                      ^~~~~~~
/usr/include/llvm/Support/Error.h: In static member function 'static llvm::Error llvm::FileError::build(const llvm::Twine&, int)':
/usr/include/llvm/Support/Error.h:1311:31: error: 'E' was not declared in this scope
 1311 |     handleAllErrors(std::move(E),
      |                               ^
/usr/include/llvm/Support/Error.h:1317:53: error: 'Line' was not declared in this scope
 1317 |         std::unique_ptr<FileError>(new FileError(F, Line, std::move(Payload))));
      |                                                     ^~~~
/usr/include/llvm/Support/Error.h: In function 'llvm::Error llvm::createFileError(const Twine&, Error)':
/usr/include/llvm/Support/Error.h:1328:35: error: 'optional' is not a member of 'std'
 1328 |   return FileError::build(F, std::optional<size_t>(), std::move(E));
      |                                   ^~~~~~~~
/usr/include/llvm/Support/Error.h:1328:35: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Error.h:1328:50: error: expected primary-expression before '>' token
 1328 |   return FileError::build(F, std::optional<size_t>(), std::move(E));
      |                                                  ^
/usr/include/llvm/Support/Error.h:1328:52: error: expected primary-expression before ')' token
 1328 |   return FileError::build(F, std::optional<size_t>(), std::move(E));
      |                                                    ^
/usr/include/llvm/Support/Error.h: In function 'llvm::Error llvm::createFileError(const Twine&, size_t, Error)':
/usr/include/llvm/Support/Error.h:1334:35: error: 'optional' is not a member of 'std'
 1334 |   return FileError::build(F, std::optional<size_t>(Line), std::move(E));
      |                                   ^~~~~~~~
/usr/include/llvm/Support/Error.h:1334:35: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Error.h:1334:50: error: expected primary-expression before '>' token
 1334 |   return FileError::build(F, std::optional<size_t>(Line), std::move(E));
      |                                                  ^
In file included from /usr/include/llvm/Support/SourceMgr.h:19,
                 from /usr/include/llvm/Support/VirtualFileSystem.h:26,
                 from /usr/include/clang/Basic/FileManager.h:30:
/usr/include/llvm/Support/MemoryBuffer.h: At global scope:
/usr/include/llvm/Support/MemoryBuffer.h:100:16: error: 'std::optional' has not been declared
  100 |           std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:100:24: error: expected ',' or '...' before '<' token
  100 |           std::optional<Align> Alignment = std::nullopt);
      |                        ^
/usr/include/llvm/Support/MemoryBuffer.h:114:25: error: 'std::optional' has not been declared
  114 |                    std::optional<Align> Alignment = std::nullopt);
      |                         ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:114:33: error: expected ',' or '...' before '<' token
  114 |                    std::optional<Align> Alignment = std::nullopt);
      |                                 ^
/usr/include/llvm/Support/MemoryBuffer.h:128:20: error: 'std::optional' has not been declared
  128 |               std::optional<Align> Alignment = std::nullopt);
      |                    ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:128:28: error: expected ',' or '...' before '<' token
  128 |               std::optional<Align> Alignment = std::nullopt);
      |                            ^
/usr/include/llvm/Support/MemoryBuffer.h:152:23: error: 'std::optional' has not been declared
  152 |                  std::optional<Align> Alignment = std::nullopt);
      |                       ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:152:31: error: expected ',' or '...' before '<' token
  152 |                  std::optional<Align> Alignment = std::nullopt);
      |                               ^
/usr/include/llvm/Support/MemoryBuffer.h:158:21: error: 'std::optional' has not been declared
  158 |                std::optional<Align> Alignment = std::nullopt);
      |                     ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:158:29: error: expected ',' or '...' before '<' token
  158 |                std::optional<Align> Alignment = std::nullopt);
      |                             ^
/usr/include/llvm/Support/MemoryBuffer.h:100:11: error: default argument missing for parameter 5 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getFile(const llvm::Twine&, bool, bool, bool, int)'
  100 |           std::optional<Align> Alignment = std::nullopt);
      |           ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:98:39: note: ...following parameter 2 which has a default argument
   98 |   getFile(const Twine &Filename, bool IsText = false,
      |                                  ~~~~~^~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:114:20: error: default argument missing for parameter 6 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getOpenFileSlice(llvm::sys::fs::file_t, const llvm::Twine&, uint64_t, int64_t, bool, int)'
  114 |                    std::optional<Align> Alignment = std::nullopt);
      |                    ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:113:41: note: ...following parameter 5 which has a default argument
  113 |                    int64_t Offset, bool IsVolatile = false,
      |                                    ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:128:15: error: default argument missing for parameter 6 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getOpenFile(llvm::sys::fs::file_t, const llvm::Twine&, uint64_t, bool, bool, int)'
  128 |               std::optional<Align> Alignment = std::nullopt);
      |               ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:127:20: note: ...following parameter 4 which has a default argument
  127 |               bool RequiresNullTerminator = true, bool IsVolatile = false,
      |               ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:152:18: error: default argument missing for parameter 4 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getFileOrSTDIN(const llvm::Twine&, bool, bool, int)'
  152 |                  std::optional<Align> Alignment = std::nullopt);
      |                  ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:150:46: note: ...following parameter 2 which has a default argument
  150 |   getFileOrSTDIN(const Twine &Filename, bool IsText = false,
      |                                         ~~~~~^~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:158:16: error: default argument missing for parameter 5 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getFileSlice(const llvm::Twine&, uint64_t, uint64_t, bool, int)'
  158 |                std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:157:21: note: ...following parameter 4 which has a default argument
  157 |                bool IsVolatile = false,
      |                ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:204:16: error: 'std::optional' has not been declared
  204 |           std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:204:24: error: expected ',' or '...' before '<' token
  204 |           std::optional<Align> Alignment = std::nullopt);
      |                        ^
/usr/include/llvm/Support/MemoryBuffer.h:210:21: error: 'std::optional' has not been declared
  210 |                std::optional<Align> Alignment = std::nullopt);
      |                     ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:210:29: error: expected ',' or '...' before '<' token
  210 |                std::optional<Align> Alignment = std::nullopt);
      |                             ^
/usr/include/llvm/Support/MemoryBuffer.h:220:30: error: 'std::optional' has not been declared
  220 |                         std::optional<Align> Alignment = std::nullopt);
      |                              ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:220:38: error: expected ',' or '...' before '<' token
  220 |                         std::optional<Align> Alignment = std::nullopt);
      |                                      ^
/usr/include/llvm/Support/MemoryBuffer.h:204:11: error: default argument missing for parameter 3 of 'static llvm::ErrorOr<std::unique_ptr<llvm::WritableMemoryBuffer> > llvm::WritableMemoryBuffer::getFile(const llvm::Twine&, bool, int)'
  204 |           std::optional<Align> Alignment = std::nullopt);
      |           ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:203:39: note: ...following parameter 2 which has a default argument
  203 |   getFile(const Twine &Filename, bool IsVolatile = false,
      |                                  ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:210:16: error: default argument missing for parameter 5 of 'static llvm::ErrorOr<std::unique_ptr<llvm::WritableMemoryBuffer> > llvm::WritableMemoryBuffer::getFileSlice(const llvm::Twine&, uint64_t, uint64_t, bool, int)'
  210 |                std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:209:21: note: ...following parameter 4 which has a default argument
  209 |                bool IsVolatile = false,
      |                ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:220:25: error: default argument missing for parameter 3 of 'static std::unique_ptr<llvm::WritableMemoryBuffer> llvm::WritableMemoryBuffer::getNewUninitMemBuffer(size_t, const llvm::Twine&, int)'
  220 |                         std::optional<Align> Alignment = std::nullopt);
      |                         ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:219:51: note: ...following parameter 2 which has a default argument
  219 |   getNewUninitMemBuffer(size_t Size, const Twine &BufferName = "",
      |                                      ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/SourceMgr.h:20:
/usr/include/llvm/Support/SMLoc.h:53:11: error: invalid use of '::'
   53 |   SMRange(std::nullopt_t) {}
      |           ^~~
/usr/include/llvm/Support/SMLoc.h:53:28: error: expected ';' at end of member declaration
   53 |   SMRange(std::nullopt_t) {}
      |                            ^
      |                             ;
/usr/include/llvm/Support/SourceMgr.h: In constructor 'llvm::SMDiagnostic::SMDiagnostic(llvm::StringRef, llvm::SourceMgr::DiagKind, llvm::StringRef)':
/usr/include/llvm/Support/SourceMgr.h:297:9: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |         ^~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/SourceMgr.h:297:9: note:   candidate expects 3 arguments, 1 provided
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |         ^~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/SourceMgr.h:297:66: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |                                                                  ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/SourceMgr.h:297:66: note:   candidate expects 3 arguments, 1 provided
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |                                                                  ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/VirtualFileSystem.h: At global scope:
/usr/include/llvm/Support/VirtualFileSystem.h:512:21: error: 'std::optional' has not been declared
  512 |                std::optional<uint32_t> User, std::optional<uint32_t> Group,
      |                     ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:512:29: error: expected ',' or '...' before '<' token
  512 |                std::optional<uint32_t> User, std::optional<uint32_t> Group,
      |                             ^
/usr/include/llvm/Support/VirtualFileSystem.h:536:21: error: 'std::optional' has not been declared
  536 |                std::optional<uint32_t> User = std::nullopt,
      |                     ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:536:29: error: expected ',' or '...' before '<' token
  536 |                std::optional<uint32_t> User = std::nullopt,
      |                             ^
/usr/include/llvm/Support/VirtualFileSystem.h:534:8: error: 'bool llvm::vfs::InMemoryFileSystem::addFile(const llvm::Twine&, time_t, std::unique_ptr<llvm::MemoryBuffer>, int)' cannot be overloaded with 'bool llvm::vfs::InMemoryFileSystem::addFile(const llvm::Twine&, time_t, std::unique_ptr<llvm::MemoryBuffer>, int)'
  534 |   bool addFile(const Twine &Path, time_t ModificationTime,
      |        ^~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:510:8: note: previous declaration 'bool llvm::vfs::InMemoryFileSystem::addFile(const llvm::Twine&, time_t, std::unique_ptr<llvm::MemoryBuffer>, int)'
  510 |   bool addFile(const Twine &Path, time_t ModificationTime,
      |        ^~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:567:24: error: 'std::optional' has not been declared
  567 |                   std::optional<uint32_t> User = std::nullopt,
      |                        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:567:32: error: expected ',' or '...' before '<' token
  567 |                   std::optional<uint32_t> User = std::nullopt,
      |                                ^
/usr/include/llvm/Support/VirtualFileSystem.h:579:26: error: 'std::optional' has not been declared
  579 |                     std::optional<uint32_t> User = std::nullopt,
      |                          ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:579:34: error: expected ',' or '...' before '<' token
  579 |                     std::optional<uint32_t> User = std::nullopt,
      |                                  ^
/usr/include/llvm/Support/VirtualFileSystem.h:882:10: error: 'optional' in namespace 'std' does not name a template type
  882 |     std::optional<std::string> ExternalRedirect;
      |          ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:882:5: note: 'std::optional' is only available from C++17 onwards
  882 |     std::optional<std::string> ExternalRedirect;
      |     ^~~
/usr/include/llvm/Support/VirtualFileSystem.h:891:10: error: 'optional' in namespace 'std' does not name a template type
  891 |     std::optional<StringRef> getExternalRedirect() const {
      |          ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:891:5: note: 'std::optional' is only available from C++17 onwards
  891 |     std::optional<StringRef> getExternalRedirect() const {
      |     ^~~
/usr/include/llvm/Support/VirtualFileSystem.h: In constructor 'llvm::vfs::RedirectingFileSystem::Entry::Entry(llvm::vfs::RedirectingFileSystem::EntryKind, llvm::StringRef)':
/usr/include/llvm/Support/VirtualFileSystem.h:776:51: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  776 |     Entry(EntryKind K, StringRef Name) : Kind(K), Name(Name) {}
      |                                                   ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/VirtualFileSystem.h:776:51: note:   candidate expects 3 arguments, 1 provided
  776 |     Entry(EntryKind K, StringRef Name) : Kind(K), Name(Name) {}
      |                                                   ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/VirtualFileSystem.h: In constructor 'llvm::vfs::RedirectingFileSystem::RemapEntry::RemapEntry(llvm::vfs::RedirectingFileSystem::EntryKind, llvm::StringRef, llvm::StringRef, llvm::vfs::RedirectingFileSystem::NameKind)':
/usr/include/llvm/Support/VirtualFileSystem.h:824:27: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  824 |         : Entry(K, Name), ExternalContentsPath(ExternalContentsPath),
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/VirtualFileSystem.h:824:27: note:   candidate expects 3 arguments, 1 provided
  824 |         : Entry(K, Name), ExternalContentsPath(ExternalContentsPath),
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/VirtualFileSystem.h: At global scope:
/usr/include/llvm/Support/VirtualFileSystem.h:1060:8: error: 'optional' in namespace 'std' does not name a template type
 1060 |   std::optional<bool> IsCaseSensitive;
      |        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:1060:3: note: 'std::optional' is only available from C++17 onwards
 1060 |   std::optional<bool> IsCaseSensitive;
      |   ^~~
/usr/include/llvm/Support/VirtualFileSystem.h:1061:8: error: 'optional' in namespace 'std' does not name a template type
 1061 |   std::optional<bool> IsOverlayRelative;
      |        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:1061:3: note: 'std::optional' is only available from C++17 onwards
 1061 |   std::optional<bool> IsOverlayRelative;
      |   ^~~
/usr/include/llvm/Support/VirtualFileSystem.h:1062:8: error: 'optional' in namespace 'std' does not name a template type
 1062 |   std::optional<bool> UseExternalNames;
      |        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:1062:3: note: 'std::optional' is only available from C++17 onwards
 1062 |   std::optional<bool> UseExternalNames;
      |   ^~~
/usr/include/llvm/Support/VirtualFileSystem.h: In member function 'void llvm::vfs::YAMLVFSWriter::setCaseSensitivity(bool)':
/usr/include/llvm/Support/VirtualFileSystem.h:1074:5: error: 'IsCaseSensitive' was not declared in this scope; did you mean 'CaseSensitive'?
 1074 |     IsCaseSensitive = CaseSensitive;
      |     ^~~~~~~~~~~~~~~
      |     CaseSensitive
/usr/include/llvm/Support/VirtualFileSystem.h: In member function 'void llvm::vfs::YAMLVFSWriter::setUseExternalNames(bool)':
/usr/include/llvm/Support/VirtualFileSystem.h:1077:48: error: 'UseExternalNames' was not declared in this scope; did you mean 'setUseExternalNames'?
 1077 |   void setUseExternalNames(bool UseExtNames) { UseExternalNames = UseExtNames; }
      |                                                ^~~~~~~~~~~~~~~~
      |                                                setUseExternalNames
/usr/include/llvm/Support/VirtualFileSystem.h: In member function 'void llvm::vfs::YAMLVFSWriter::setOverlayDir(llvm::StringRef)':
/usr/include/llvm/Support/VirtualFileSystem.h:1080:5: error: 'IsOverlayRelative' was not declared in this scope
 1080 |     IsOverlayRelative = true;
      |     ^~~~~~~~~~~~~~~~~
/usr/include/clang/Basic/FileManager.h: In member function 'clang::OptionalDirectoryEntryRef clang::FileManager::getOptionalDirectoryRef(llvm::StringRef, bool)':
/usr/include/clang/Basic/FileManager.h:171:18: error: 'expectedToOptional' is not a member of 'llvm'
  171 |     return llvm::expectedToOptional(getDirectoryRef(DirName, CacheFailure));
      |                  ^~~~~~~~~~~~~~~~~~
/usr/include/clang/Basic/FileManager.h: In member function 'clang::OptionalFileEntryRef clang::FileManager::getOptionalFileRef(llvm::StringRef, bool, bool)':
/usr/include/clang/Basic/FileManager.h:237:18: error: 'expectedToOptional' is not a member of 'llvm'
  237 |     return llvm::expectedToOptional(
      |                  ^~~~~~~~~~~~~~~~~~
/usr/include/clang/Basic/SourceManager.h: At global scope:
/usr/include/clang/Basic/SourceManager.h:215:8: error: 'optional' in namespace 'std' does not name a template type
  215 |   std::optional<llvm::MemoryBufferRef>
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:215:3: note: 'std::optional' is only available from C++17 onwards
  215 |   std::optional<llvm::MemoryBufferRef>
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:238:8: error: 'optional' in namespace 'std' does not name a template type
  238 |   std::optional<llvm::MemoryBufferRef> getBufferIfLoaded() const {
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:238:3: note: 'std::optional' is only available from C++17 onwards
  238 |   std::optional<llvm::MemoryBufferRef> getBufferIfLoaded() const {
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:246:8: error: 'optional' in namespace 'std' does not name a template type
  246 |   std::optional<StringRef> getBufferDataIfLoaded() const {
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:246:3: note: 'std::optional' is only available from C++17 onwards
  246 |   std::optional<StringRef> getBufferDataIfLoaded() const {
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:261:30: error: 'std::optional' has not been declared
  261 |   void setUnownedBuffer(std::optional<llvm::MemoryBufferRef> B) {
      |                              ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:261:38: error: expected ',' or '...' before '<' token
  261 |   void setUnownedBuffer(std::optional<llvm::MemoryBufferRef> B) {
      |                                      ^
/usr/include/clang/Basic/SourceManager.h: In constructor 'clang::SrcMgr::ContentCache::ContentCache()':
/usr/include/clang/Basic/SourceManager.h:183:24: error: 'nullopt' is not a member of 'std'
  183 |       : OrigEntry(std::nullopt), ContentsEntry(nullptr),
      |                        ^~~~~~~
/usr/include/clang/Basic/SourceManager.h:183:24: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/SourceManager.h: In member function 'void clang::SrcMgr::ContentCache::setUnownedBuffer(int)':
/usr/include/clang/Basic/SourceManager.h:263:9: error: 'B' was not declared in this scope
  263 |     if (B)
      |         ^
/usr/include/clang/Basic/SourceManager.h: At global scope:
/usr/include/clang/Basic/SourceManager.h:944:8: error: 'optional' in namespace 'std' does not name a template type
  944 |   std::optional<llvm::MemoryBufferRef>
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:944:3: note: 'std::optional' is only available from C++17 onwards
  944 |   std::optional<llvm::MemoryBufferRef>
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1026:8: error: 'optional' in namespace 'std' does not name a template type
 1026 |   std::optional<llvm::MemoryBufferRef>
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1026:3: note: 'std::optional' is only available from C++17 onwards
 1026 |   std::optional<llvm::MemoryBufferRef>
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1063:8: error: 'optional' in namespace 'std' does not name a template type
 1063 |   std::optional<StringRef> getNonBuiltinFilenameForID(FileID FID) const;
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1063:3: note: 'std::optional' is only available from C++17 onwards
 1063 |   std::optional<StringRef> getNonBuiltinFilenameForID(FileID FID) const;
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1082:8: error: 'optional' in namespace 'std' does not name a template type
 1082 |   std::optional<StringRef> getBufferDataOrNone(FileID FID) const;
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1082:3: note: 'std::optional' is only available from C++17 onwards
 1082 |   std::optional<StringRef> getBufferDataOrNone(FileID FID) const;
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1088:8: error: 'optional' in namespace 'std' does not name a template type
 1088 |   std::optional<StringRef> getBufferDataIfLoaded(FileID FID) const;
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1088:3: note: 'std::optional' is only available from C++17 onwards
 1088 |   std::optional<StringRef> getBufferDataIfLoaded(FileID FID) const;
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1699:39: error: 'std::optional' has not been declared
 1699 |                                  std::optional<unsigned> MaxNotes = 32) const;
      |                                       ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1699:47: error: expected ',' or '...' before '<' token
 1699 |                                  std::optional<unsigned> MaxNotes = 32) const;
      |                                               ^
/usr/include/clang/Basic/SourceManager.h: In member function 'llvm::MemoryBufferRef clang::SourceManager::getMemoryBufferForFileOrFake(const clang::FileEntry*)':
/usr/include/clang/Basic/SourceManager.h:951:18: error: 'getMemoryBufferForFileOrNone' was not declared in this scope; did you mean 'getMemoryBufferForFileOrFake'?
  951 |     if (auto B = getMemoryBufferForFileOrNone(File))
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  getMemoryBufferForFileOrFake
/usr/include/clang/Basic/SourceManager.h: In member function 'llvm::MemoryBufferRef clang::SourceManager::getBufferOrFake(clang::FileID, clang::SourceLocation) const':
/usr/include/clang/Basic/SourceManager.h:1040:18: error: 'getBufferOrNone' was not declared in this scope; did you mean 'getBufferOrFake'?
 1040 |     if (auto B = getBufferOrNone(FID, Loc))
      |                  ^~~~~~~~~~~~~~~
      |                  getBufferOrFake
/usr/include/clang/Basic/SourceManager.h: In member function 'clang::OptionalFileEntryRef clang::SourceManager::getFileEntryRefForID(clang::FileID) const':
/usr/include/clang/Basic/SourceManager.h:1056:17: error: 'nullopt' is not a member of 'std'
 1056 |     return std::nullopt;
      |                 ^~~~~~~
/usr/include/clang/Basic/SourceManager.h:1056:17: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/Support/MathExtras.h: In instantiation of 'constexpr size_t llvm::CTLog2() [with long unsigned int kValue = 8; size_t = long unsigned int]':
/usr/include/llvm/Support/Alignment.h:97:56:   required from 'static constexpr llvm::Align llvm::Align::Constant() [with long unsigned int kValue = 8]'
/usr/include/llvm/Support/Alignment.h:103:49:   required from 'static constexpr llvm::Align llvm::Align::Of() [with T = const clang::Expr*]'
/usr/include/llvm/Support/TrailingObjects.h:168:73:   required from 'static NextTy* llvm::trailing_objects_internal::TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys ...>::getTrailingObjectsImpl(BaseTy*, llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken<NextTy>) [with int Align = 8; BaseTy = clang::ConstantArrayType; TopTrailingObj = llvm::TrailingObjects<clang::ConstantArrayType, const clang::Expr*>; PrevTy = clang::ConstantArrayType; NextTy = const clang::Expr*; MoreTys = {}]'
/usr/include/llvm/Support/TrailingObjects.h:301:40:   required from 'T* llvm::TrailingObjects<BaseTy, TrailingTys>::getTrailingObjects() [with T = const clang::Expr*; BaseTy = clang::ConstantArrayType; TrailingTys = {const clang::Expr*}]'
/usr/include/clang/AST/Type.h:3077:39:   required from here
/usr/include/llvm/Support/MathExtras.h:399:28: error: non-constant condition for static assertion
  399 |   static_assert(kValue > 0 && llvm::isPowerOf2_64(kValue),
      |                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MathExtras.h:399:50:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(8)'
/usr/include/llvm/Support/MathExtras.h:399:28: error: 'constexpr' call flows off the end of the function
/usr/include/llvm/Support/MathExtras.h: In instantiation of 'constexpr size_t llvm::CTLog2() [with long unsigned int kValue = 4; size_t = long unsigned int]':
/usr/include/llvm/Support/MathExtras.h:401:32:   required from 'static const NextTy* llvm::trailing_objects_internal::TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys ...>::getTrailingObjectsImpl(const BaseTy*, llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken<NextTy>) [with int Align = 8; BaseTy = clang::ConstantArrayType; TopTrailingObj = llvm::TrailingObjects<clang::ConstantArrayType, const clang::Expr*>; PrevTy = clang::ConstantArrayType; NextTy = const clang::Expr*; MoreTys = {}]'
/usr/include/llvm/Support/TrailingObjects.h:289:40:   required from 'const T* llvm::TrailingObjects<BaseTy, TrailingTys>::getTrailingObjects() const [with T = const clang::Expr*; BaseTy = clang::ConstantArrayType; TrailingTys = {const clang::Expr*}]'
/usr/include/clang/AST/Type.h:3089:51:   required from here
/usr/include/llvm/Support/TrailingObjects.h:154:43:   in 'constexpr' expansion of 'llvm::Align::Of<const clang::Expr*>()'
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:399:28: error: non-constant condition for static assertion
/usr/include/llvm/Support/TrailingObjects.h:154:43:   in 'constexpr' expansion of 'llvm::Align::Of<const clang::Expr*>()'
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:399:50:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(4)'
/usr/include/llvm/Support/MathExtras.h:399:28: error: 'constexpr' call flows off the end of the function
/usr/include/llvm/Support/MathExtras.h: In instantiation of 'constexpr size_t llvm::CTLog2() [with long unsigned int kValue = 2; size_t = long unsigned int]':
/usr/include/llvm/Support/MathExtras.h:401:32:   required from 'static constexpr llvm::Align llvm::Align::Of() [with T = clang::FunctionType::FunctionTypeExtraBitfields]'
/usr/include/llvm/Support/TrailingObjects.h:154:43:   required from 'static const NextTy* llvm::trailing_objects_internal::TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys ...>::getTrailingObjectsImpl(const BaseTy*, llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken<NextTy>) [with int Align = 8; BaseTy = clang::FunctionProtoType; TopTrailingObj = llvm::TrailingObjects<clang::FunctionProtoType, clang::QualType, clang::SourceLocation, clang::FunctionType::FunctionTypeExtraBitfields, clang::FunctionType::ExceptionType, clang::Expr*, clang::FunctionDecl*, clang::FunctionType::ExtParameterInfo, clang::Qualifiers>; PrevTy = clang::SourceLocation; NextTy = clang::FunctionType::FunctionTypeExtraBitfields; MoreTys = {clang::FunctionType::ExceptionType, clang::Expr*, clang::FunctionDecl*, clang::FunctionType::ExtParameterInfo, clang::Qualifiers}]'
/usr/include/llvm/Support/TrailingObjects.h:289:40:   required from 'const T* llvm::TrailingObjects<BaseTy, TrailingTys>::getTrailingObjects() const [with T = clang::FunctionType::FunctionTypeExtraBitfields; BaseTy = clang::FunctionProtoType; TrailingTys = {clang::QualType, clang::SourceLocation, clang::FunctionType::FunctionTypeExtraBitfields, clang::FunctionType::ExceptionType, clang::Expr*, clang::FunctionDecl*, clang::FunctionType::ExtParameterInfo, clang::Qualifiers}]'
/usr/include/clang/AST/Type.h:4302:64:   required from here
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:401:32:   in 'constexpr' expansion of 'llvm::CTLog2<4>()'
/usr/include/llvm/Support/MathExtras.h:399:28: error: non-constant condition for static assertion
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:401:32:   in 'constexpr' expansion of 'llvm::CTLog2<4>()'
/usr/include/llvm/Support/MathExtras.h:399:50:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(2)'
/usr/include/llvm/Support/MathExtras.h:399:28: error: 'constexpr' call flows off the end of the function
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'llvm::mapped_iterator<ItTy, FuncTy, ReferenceTy>::mapped_iterator(ItTy, FuncTy) [with ItTy = const clang::ParmVarDecl* const*; FuncTy = clang::ObjCMethodDecl::GetTypeFn; ReferenceTy = clang::QualType]':
/usr/include/llvm/ADT/STLExtras.h:430:10:   required from 'llvm::mapped_iterator<ItTy, FuncTy> llvm::map_iterator(ItTy, FuncTy) [with ItTy = const clang::ParmVarDecl* const*; FuncTy = clang::ObjCMethodDecl::GetTypeFn; decltype (declval<FuncTy>()((* declval<ItTy>()))) = clang::QualType]'
/usr/include/clang/AST/DeclObjC.h:402:30:   required from here
/usr/include/llvm/ADT/STLExtras.h:414:61: error: cannot convert 'std::remove_reference<clang::ObjCMethodDecl::GetTypeFn&>::type' {aka 'clang::ObjCMethodDecl::GetTypeFn'} to 'int' in initialization
  414 |     : mapped_iterator::iterator_adaptor_base(std::move(U)), F(std::move(F)) {}
      |                                                             ^~~~~~~~~~~~~~~
make[2]: *** [clang_delta/CMakeFiles/clang_delta.dir/build.make:93: clang_delta/CMakeFiles/clang_delta.dir/BinOpSimplification.cpp.o] Error 1
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
make[2]: Entering directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
[  9%] Building CXX object clang_delta/CMakeFiles/clang_delta.dir/ClassTemplateToClass.cpp.o
cd /builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu/clang_delta && /usr/bin/g++ -DHAVE_CONFIG_H -I/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu -I/builddir/build/BUILD/cvise-2.4.0/clang_delta -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -std=c++14 -fno-rtti -fno-strict-aliasing -Wall -Wextra -Wno-unused-parameter -fvisibility-inlines-hidden   -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MT clang_delta/CMakeFiles/clang_delta.dir/ClassTemplateToClass.cpp.o -MF CMakeFiles/clang_delta.dir/ClassTemplateToClass.cpp.o.d -o CMakeFiles/clang_delta.dir/ClassTemplateToClass.cpp.o -c /builddir/build/BUILD/cvise-2.4.0/clang_delta/ClassTemplateToClass.cpp
In file included from /usr/include/clang/Basic/LLVM.h:21,
                 from /usr/include/clang/Rewrite/Core/Rewriter.h:17,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/Transformation.h:19,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/ClassTemplateToClass.h:14,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/ClassTemplateToClass.cpp:15:
/usr/include/llvm/Support/Casting.h:266:32: error: 'optional' is not a member of 'std'
  266 | struct CastIsPossible<To, std::optional<From>> {
      |                                ^~~~~~~~
/usr/include/llvm/Support/Casting.h:266:32: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:266:32: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:266:32: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:266:41: error: template argument 2 is invalid
  266 | struct CastIsPossible<To, std::optional<From>> {
      |                                         ^~~~
/usr/include/llvm/Support/Casting.h:266:45: error: expected unqualified-id before '>' token
  266 | struct CastIsPossible<To, std::optional<From>> {
      |                                             ^~
/usr/include/llvm/Support/Casting.h:369:16: error: 'optional' is not a member of 'std'
  369 |           std::optional<To>, From,
      |                ^~~~~~~~
/usr/include/llvm/Support/Casting.h:369:16: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:369:16: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:369:16: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:369:27: error: wrong number of template arguments (1, should be 3)
  369 |           std::optional<To>, From,
      |                           ^
/usr/include/llvm/Support/Casting.h:310:8: note: provided for 'template<class To, class From, class Derived> struct llvm::DefaultDoCastIfPossible'
  310 | struct DefaultDoCastIfPossible {
      |        ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/Casting.h:370:65: error: expected '{' before '>' token
  370 |           detail::SelfType<Derived, OptionalValueCast<To, From>>> {
      |                                                                 ^
/usr/include/llvm/Support/Casting.h:540:26: error: 'optional' is not a member of 'std'
  540 | struct CastInfo<To, std::optional<From>> : public OptionalValueCast<To, From> {
      |                          ^~~~~~~~
/usr/include/llvm/Support/Casting.h:540:26: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:540:26: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:540:26: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:540:35: error: template argument 2 is invalid
  540 | struct CastInfo<To, std::optional<From>> : public OptionalValueCast<To, From> {
      |                                   ^~~~
/usr/include/llvm/Support/Casting.h:540:39: error: expected unqualified-id before '>' token
  540 | struct CastInfo<To, std::optional<From>> : public OptionalValueCast<To, From> {
      |                                       ^~
/usr/include/llvm/Support/Casting.h:595:10: error: 'is_pointer_v' is not a member of 'std'; did you mean 'is_pointer'?
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |          ^~~~~~~~~~~~
      |          is_pointer
/usr/include/llvm/Support/Casting.h:595:24: error: expected primary-expression before '>' token
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                        ^
/usr/include/llvm/Support/Casting.h:595:26: error: expected primary-expression before '||' token
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                          ^~
/usr/include/llvm/Support/Casting.h:595:34: error: 'is_constructible_v' is not a member of 'std'; did you mean 'is_constructible'?
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                                  ^~~~~~~~~~~~~~~~~~
      |                                  is_constructible
/usr/include/llvm/Support/Casting.h:595:54: error: expected primary-expression before ',' token
  595 |     std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>;
      |                                                      ^
/usr/include/llvm/Support/Casting.h:610:50: error: 'optional' is not a member of 'std'
  610 | template <typename T> struct ValueIsPresent<std::optional<T>> {
      |                                                  ^~~~~~~~
/usr/include/llvm/Support/Casting.h:610:50: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:610:50: error: 'optional' is not a member of 'std'
/usr/include/llvm/Support/Casting.h:610:50: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Casting.h:610:59: error: template argument 1 is invalid
  610 | template <typename T> struct ValueIsPresent<std::optional<T>> {
      |                                                           ^
/usr/include/llvm/Support/Casting.h:610:60: error: expected unqualified-id before '>' token
  610 | template <typename T> struct ValueIsPresent<std::optional<T>> {
      |                                                            ^~
In file included from /usr/include/clang/Basic/LLVM.h:24:
/usr/include/llvm/ADT/None.h:26:14: error: 'nullopt_t' in namespace 'std' does not name a type; did you mean 'nullptr_t'?
   26 | typedef std::nullopt_t NoneType;
      |              ^~~~~~~~~
      |              nullptr_t
/usr/include/llvm/ADT/None.h:28:23: error: 'nullopt_t' in namespace 'std' does not name a type; did you mean 'nullptr_t'?
   28 | inline constexpr std::nullopt_t None = std::nullopt;
      |                       ^~~~~~~~~
      |                       nullptr_t
In file included from /usr/include/clang/Basic/LLVM.h:27:
/usr/include/llvm/ADT/SmallVector.h: In static member function 'static void llvm::SmallVectorTemplateBase<T, <anonymous> >::uninitialized_move(It1, It1, It2)':
/usr/include/llvm/ADT/SmallVector.h:352:10: error: 'uninitialized_move' is not a member of 'std'; did you mean 'uninitialized_copy'?
  352 |     std::uninitialized_move(I, E, Dest);
      |          ^~~~~~~~~~~~~~~~~~
      |          uninitialized_copy
/usr/include/clang/Basic/LLVM.h: At global scope:
/usr/include/clang/Basic/LLVM.h:40:47: error: 'optional' in namespace 'std' does not name a template type
   40 |   template <typename T> using Optional = std::optional<T>;
      |                                               ^~~~~~~~
/usr/include/clang/Basic/LLVM.h:40:42: note: 'std::optional' is only available from C++17 onwards
   40 |   template <typename T> using Optional = std::optional<T>;
      |                                          ^~~
/usr/include/clang/Basic/LLVM.h:72:15: error: 'Optional' has not been declared in 'llvm'
   72 |   using llvm::Optional;
      |               ^~~~~~~~
In file included from /usr/include/llvm/ADT/StringRef.h:12,
                 from /usr/include/clang/Basic/SourceLocation.h:18,
                 from /usr/include/clang/Rewrite/Core/Rewriter.h:18:
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: error: 'variant' is not a member of 'std'
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                    ^~~~~~~
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: note: 'std::variant' is only available from C++17 onwards
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: error: 'variant' is not a member of 'std'
/usr/include/llvm/ADT/DenseMapInfo.h:294:52: note: 'std::variant' is only available from C++17 onwards
/usr/include/llvm/ADT/DenseMapInfo.h:294:62: error: expected parameter pack before '...'
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                              ^~~
/usr/include/llvm/ADT/DenseMapInfo.h:294:62: error: template argument 1 is invalid
/usr/include/llvm/ADT/DenseMapInfo.h:294:65: error: expected unqualified-id before '>' token
  294 | template <typename... Ts> struct DenseMapInfo<std::variant<Ts...>> {
      |                                                                 ^~
In file included from /usr/include/llvm/ADT/STLFunctionalExtras.h:18,
                 from /usr/include/llvm/ADT/StringRef.h:13:
/usr/include/llvm/ADT/STLForwardCompat.h:46:35: error: 'optional' in namespace 'std' does not name a template type
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                                   ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:46:30: note: 'std::optional' is only available from C++17 onwards
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                              ^~~
/usr/include/llvm/ADT/STLForwardCompat.h:46:43: error: expected ',' or '...' before '<' token
   46 | auto transformOptional(const std::optional<T> &O, const Function &F)
      |                                           ^
/usr/include/llvm/ADT/STLForwardCompat.h:47:13: error: 'optional' in namespace 'std' does not name a template type
   47 |     -> std::optional<decltype(F(*O))> {
      |             ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:47:8: note: 'std::optional' is only available from C++17 onwards
   47 |     -> std::optional<decltype(F(*O))> {
      |        ^~~
/usr/include/llvm/ADT/STLForwardCompat.h:47:21: error: expected initializer before '<' token
   47 |     -> std::optional<decltype(F(*O))> {
      |                     ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:29: error: 'optional' is not a member of 'std'
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                             ^~~~~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:56:29: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/ADT/STLForwardCompat.h:56:39: error: expected primary-expression before '>' token
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                       ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:43: error: label 'O' referenced outside of any function
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                           ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:46: error: expected primary-expression before 'const'
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                              ^~~~~
/usr/include/llvm/ADT/STLForwardCompat.h:56:63: error: expression list treated as compound expression in initializer [-fpermissive]
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                                               ^
/usr/include/llvm/ADT/STLForwardCompat.h:56:64: error: expected ';' before '->' token
   56 | auto transformOptional(std::optional<T> &&O, const Function &F)
      |                                                                ^
      |                                                                ;
   57 |     -> std::optional<decltype(F(*std::move(O)))> {
      |     ~~                                                          
/usr/include/llvm/ADT/StringRef.h:104:54: error: expected ')' before 'Str'
  104 |     /*implicit*/ constexpr StringRef(std::string_view Str)
      |                                     ~                ^~~~
      |                                                      )
/usr/include/llvm/ADT/StringRef.h:248:14: error: expected type-specifier
  248 |     operator std::string_view() const {
      |              ^~~
/usr/include/llvm/ADT/StringRef.h: In member function 'size_t llvm::StringRef::find(char, size_t) const':
/usr/include/llvm/ADT/StringRef.h:296:19: error: 'string_view' is not a member of 'std'
  296 |       return std::string_view(*this).find(C, From);
      |                   ^~~~~~~~~~~
/usr/include/llvm/ADT/StringRef.h:296:19: note: 'std::string_view' is only available from C++17 onwards
In file included from /usr/include/llvm/Support/MathExtras.h:16,
                 from /usr/include/llvm/ADT/BitmaskEnum.h:16,
                 from /usr/include/clang/Basic/BitmaskEnum.h:18,
                 from /usr/include/clang/AST/DependenceFlags.h:11,
                 from /usr/include/clang/AST/NestedNameSpecifier.h:17,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/RewriteUtils.h:16,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/Transformation.h:20:
/usr/include/llvm/ADT/bit.h: At global scope:
/usr/include/llvm/ADT/bit.h:64:56: error: 'is_integral_v' is not a member of 'std'; did you mean 'is_integral'?
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_integral
/usr/include/llvm/ADT/bit.h:64:56: error: 'is_integral_v' is not a member of 'std'; did you mean 'is_integral'?
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_integral
/usr/include/llvm/ADT/bit.h:64:70: error: template argument 1 is invalid
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                                      ^
/usr/include/llvm/ADT/bit.h:64:73: error: expected unqualified-id before '>' token
   64 | template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
      |                                                                         ^
/usr/include/llvm/ADT/bit.h:109:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:109:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:109:70: error: template argument 1 is invalid
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                      ^
/usr/include/llvm/ADT/bit.h:109:73: error: expected unqualified-id before '>' token
  109 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                         ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countr_zero(T)':
/usr/include/llvm/ADT/bit.h:180:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  180 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:180:37: error: expected primary-expression before '>' token
  180 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:180:38: error: expected primary-expression before ',' token
  180 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countl_zero(T)':
/usr/include/llvm/ADT/bit.h:246:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  246 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:246:37: error: expected primary-expression before '>' token
  246 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:246:38: error: expected primary-expression before ',' token
  246 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countl_one(T)':
/usr/include/llvm/ADT/bit.h:259:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  259 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:259:37: error: expected primary-expression before '>' token
  259 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:259:38: error: expected primary-expression before ',' token
  259 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::countr_one(T)':
/usr/include/llvm/ADT/bit.h:272:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  272 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:272:37: error: expected primary-expression before '>' token
  272 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:272:38: error: expected primary-expression before ',' token
  272 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'int llvm::bit_width(T)':
/usr/include/llvm/ADT/bit.h:282:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  282 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:282:37: error: expected primary-expression before '>' token
  282 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:282:38: error: expected primary-expression before ',' token
  282 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'T llvm::bit_floor(T)':
/usr/include/llvm/ADT/bit.h:292:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  292 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:292:37: error: expected primary-expression before '>' token
  292 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:292:38: error: expected primary-expression before ',' token
  292 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: In function 'T llvm::bit_ceil(T)':
/usr/include/llvm/ADT/bit.h:307:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  307 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/ADT/bit.h:307:37: error: expected primary-expression before '>' token
  307 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/ADT/bit.h:307:38: error: expected primary-expression before ',' token
  307 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/ADT/bit.h: At global scope:
/usr/include/llvm/ADT/bit.h:348:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:348:56: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                        ^~~~~~~~~~~~~
      |                                                        is_unsigned
/usr/include/llvm/ADT/bit.h:348:70: error: template argument 1 is invalid
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                      ^
/usr/include/llvm/ADT/bit.h:348:73: error: expected unqualified-id before '>' token
  348 | template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
      |                                                                         ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countTrailingZeros(T)':
/usr/include/llvm/Support/MathExtras.h:78:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
   78 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:78:37: error: expected primary-expression before '>' token
   78 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:78:38: error: expected primary-expression before ',' token
   78 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countLeadingZeros(T)':
/usr/include/llvm/Support/MathExtras.h:90:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
   90 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:90:37: error: expected primary-expression before '>' token
   90 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:90:38: error: expected primary-expression before ',' token
   90 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'constexpr bool llvm::isPowerOf2_32(uint32_t)':
/usr/include/llvm/Support/MathExtras.h:325:16: error: 'has_single_bit' is not a member of 'llvm'
  325 |   return llvm::has_single_bit(Value);
      |                ^~~~~~~~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'constexpr bool llvm::isPowerOf2_64(uint64_t)':
/usr/include/llvm/Support/MathExtras.h:330:16: error: 'has_single_bit' is not a member of 'llvm'
  330 |   return llvm::has_single_bit(Value);
      |                ^~~~~~~~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countLeadingOnes(T)':
/usr/include/llvm/Support/MathExtras.h:341:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  341 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:341:37: error: expected primary-expression before '>' token
  341 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:341:38: error: expected primary-expression before ',' token
  341 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countTrailingOnes(T)':
/usr/include/llvm/Support/MathExtras.h:354:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  354 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:354:37: error: expected primary-expression before '>' token
  354 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:354:38: error: expected primary-expression before ',' token
  354 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h: In function 'unsigned int llvm::countPopulation(T)':
/usr/include/llvm/Support/MathExtras.h:364:22: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  364 |   static_assert(std::is_unsigned_v<T>,
      |                      ^~~~~~~~~~~~~
      |                      is_unsigned
/usr/include/llvm/Support/MathExtras.h:364:37: error: expected primary-expression before '>' token
  364 |   static_assert(std::is_unsigned_v<T>,
      |                                     ^
/usr/include/llvm/Support/MathExtras.h:364:38: error: expected primary-expression before ',' token
  364 |   static_assert(std::is_unsigned_v<T>,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h:366:26: error: 'popcount' is not a member of 'llvm'
  366 |   return (unsigned)llvm::popcount(Value);
      |                          ^~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'bool llvm::isShiftedMask_32(uint32_t, unsigned int&, unsigned int&)':
/usr/include/llvm/Support/MathExtras.h:379:19: error: 'popcount' is not a member of 'llvm'
  379 |   MaskLen = llvm::popcount(Value);
      |                   ^~~~~~~~
/usr/include/llvm/Support/MathExtras.h: In function 'bool llvm::isShiftedMask_64(uint64_t, unsigned int&, unsigned int&)':
/usr/include/llvm/Support/MathExtras.h:392:19: error: 'popcount' is not a member of 'llvm'
  392 |   MaskLen = llvm::popcount(Value);
      |                   ^~~~~~~~
/usr/include/llvm/Support/MathExtras.h: At global scope:
/usr/include/llvm/Support/MathExtras.h:620:23: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                       ^~~~~~~~~~~~~
      |                       is_unsigned
/usr/include/llvm/Support/MathExtras.h:620:23: error: 'is_unsigned_v' is not a member of 'std'; did you mean 'is_unsigned'?
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                       ^~~~~~~~~~~~~
      |                       is_unsigned
/usr/include/llvm/Support/MathExtras.h:620:38: error: template argument 1 is invalid
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                                      ^
/usr/include/llvm/Support/MathExtras.h:620:39: error: expected unqualified-id before ',' token
  620 | std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
      |                                       ^
In file included from /usr/include/clang/Basic/Diagnostic.h:17,
                 from /usr/include/clang/AST/NestedNameSpecifier.h:18:
/usr/include/clang/Basic/DiagnosticIDs.h:241:15: error: 'optional' in namespace 'std' does not name a template type
  241 |   static std::optional<diag::Group> getGroupForWarningOption(StringRef);
      |               ^~~~~~~~
/usr/include/clang/Basic/DiagnosticIDs.h:241:10: note: 'std::optional' is only available from C++17 onwards
  241 |   static std::optional<diag::Group> getGroupForWarningOption(StringRef);
      |          ^~~
/usr/include/clang/Basic/DiagnosticIDs.h:244:15: error: 'optional' in namespace 'std' does not name a template type
  244 |   static std::optional<diag::Group> getGroupForDiag(unsigned DiagID);
      |               ^~~~~~~~
/usr/include/clang/Basic/DiagnosticIDs.h:244:10: note: 'std::optional' is only available from C++17 onwards
  244 |   static std::optional<diag::Group> getGroupForDiag(unsigned DiagID);
      |          ^~~
In file included from /usr/include/llvm/ADT/Hashing.h:49,
                 from /usr/include/llvm/ADT/ArrayRef.h:12,
                 from /usr/include/clang/Basic/Diagnostic.h:21:
/usr/include/llvm/Support/SwapByteOrder.h: In function 'uint16_t llvm::ByteSwap_16(uint16_t)':
/usr/include/llvm/Support/SwapByteOrder.h:51:60: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_16'?
   51 | inline uint16_t ByteSwap_16(uint16_t value) { return llvm::byteswap(value); }
      |                                                            ^~~~~~~~
      |                                                            ByteSwap_16
/usr/include/llvm/Support/SwapByteOrder.h: In function 'uint32_t llvm::ByteSwap_32(uint32_t)':
/usr/include/llvm/Support/SwapByteOrder.h:54:60: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_32'?
   54 | inline uint32_t ByteSwap_32(uint32_t value) { return llvm::byteswap(value); }
      |                                                            ^~~~~~~~
      |                                                            ByteSwap_32
/usr/include/llvm/Support/SwapByteOrder.h: In function 'uint64_t llvm::ByteSwap_64(uint64_t)':
/usr/include/llvm/Support/SwapByteOrder.h:57:60: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   57 | inline uint64_t ByteSwap_64(uint64_t value) { return llvm::byteswap(value); }
      |                                                            ^~~~~~~~
      |                                                            ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'unsigned char llvm::sys::getSwappedBytes(unsigned char)':
/usr/include/llvm/Support/SwapByteOrder.h:69:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   69 | inline unsigned char      getSwappedBytes(unsigned char      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'signed char llvm::sys::getSwappedBytes(signed char)':
/usr/include/llvm/Support/SwapByteOrder.h:70:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   70 | inline   signed char      getSwappedBytes( signed  char      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'char llvm::sys::getSwappedBytes(char)':
/usr/include/llvm/Support/SwapByteOrder.h:71:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   71 | inline          char      getSwappedBytes(         char      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'short unsigned int llvm::sys::getSwappedBytes(short unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:73:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   73 | inline unsigned short     getSwappedBytes(unsigned short     C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'short int llvm::sys::getSwappedBytes(short int)':
/usr/include/llvm/Support/SwapByteOrder.h:74:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   74 | inline   signed short     getSwappedBytes(  signed short     C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'unsigned int llvm::sys::getSwappedBytes(unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:76:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   76 | inline unsigned int       getSwappedBytes(unsigned int       C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'int llvm::sys::getSwappedBytes(int)':
/usr/include/llvm/Support/SwapByteOrder.h:77:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   77 | inline   signed int       getSwappedBytes(  signed int       C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long unsigned int llvm::sys::getSwappedBytes(long unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:79:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   79 | inline unsigned long      getSwappedBytes(unsigned long      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long int llvm::sys::getSwappedBytes(long int)':
/usr/include/llvm/Support/SwapByteOrder.h:80:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   80 | inline   signed long      getSwappedBytes(  signed long      C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long long unsigned int llvm::sys::getSwappedBytes(long long unsigned int)':
/usr/include/llvm/Support/SwapByteOrder.h:82:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   82 | inline unsigned long long getSwappedBytes(unsigned long long C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'long long int llvm::sys::getSwappedBytes(long long int)':
/usr/include/llvm/Support/SwapByteOrder.h:83:80: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   83 | inline   signed long long getSwappedBytes(  signed long long C) { return llvm::byteswap(C); }
      |                                                                                ^~~~~~~~
      |                                                                                ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'float llvm::sys::getSwappedBytes(float)':
/usr/include/llvm/Support/SwapByteOrder.h:91:17: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
   91 |   out.i = llvm::byteswap(in.i);
      |                 ^~~~~~~~
      |                 ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'double llvm::sys::getSwappedBytes(double)':
/usr/include/llvm/Support/SwapByteOrder.h:101:17: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
  101 |   out.i = llvm::byteswap(in.i);
      |                 ^~~~~~~~
      |                 ByteSwap_64
/usr/include/llvm/Support/SwapByteOrder.h: In function 'std::enable_if_t<std::is_enum<_Tp>::value, T> llvm::sys::getSwappedBytes(T)':
/usr/include/llvm/Support/SwapByteOrder.h:108:13: error: 'byteswap' is not a member of 'llvm'; did you mean 'ByteSwap_64'?
  108 |       llvm::byteswap(static_cast<std::underlying_type_t<T>>(C)));
      |             ^~~~~~~~
      |             ByteSwap_64
/usr/include/llvm/ADT/Hashing.h: At global scope:
/usr/include/llvm/ADT/Hashing.h:127:55: error: 'optional' in namespace 'std' does not name a template type
  127 | template <typename T> hash_code hash_value(const std::optional<T> &arg);
      |                                                       ^~~~~~~~
/usr/include/llvm/ADT/Hashing.h:127:50: note: 'std::optional' is only available from C++17 onwards
  127 | template <typename T> hash_code hash_value(const std::optional<T> &arg);
      |                                                  ^~~
/usr/include/llvm/ADT/Hashing.h:127:63: error: expected ',' or '...' before '<' token
  127 | template <typename T> hash_code hash_value(const std::optional<T> &arg);
      |                                                               ^
/usr/include/llvm/ADT/Hashing.h: In function 'llvm::hash_code llvm::hash_value(const std::tuple<_Args1 ...>&)':
/usr/include/llvm/ADT/Hashing.h:658:15: error: 'apply' is not a member of 'std'
  658 |   return std::apply([](const auto &...xs) { return hash_combine(xs...); }, arg);
      |               ^~~~~
/usr/include/llvm/ADT/Hashing.h:658:15: note: 'std::apply' is only available from C++17 onwards
/usr/include/llvm/ADT/Hashing.h: At global scope:
/usr/include/llvm/ADT/Hashing.h:668:55: error: 'optional' in namespace 'std' does not name a template type
  668 | template <typename T> hash_code hash_value(const std::optional<T> &arg) {
      |                                                       ^~~~~~~~
/usr/include/llvm/ADT/Hashing.h:668:50: note: 'std::optional' is only available from C++17 onwards
  668 | template <typename T> hash_code hash_value(const std::optional<T> &arg) {
      |                                                  ^~~
/usr/include/llvm/ADT/Hashing.h:668:63: error: expected ',' or '...' before '<' token
  668 | template <typename T> hash_code hash_value(const std::optional<T> &arg) {
      |                                                               ^
/usr/include/llvm/ADT/Hashing.h: In function 'llvm::hash_code llvm::hash_value(int)':
/usr/include/llvm/ADT/Hashing.h:669:10: error: 'arg' was not declared in this scope
  669 |   return arg ? hash_combine(true, *arg) : hash_value(false);
      |          ^~~
In file included from /usr/include/llvm/ADT/ArrayRef.h:14:
/usr/include/llvm/ADT/STLExtras.h: At global scope:
/usr/include/llvm/ADT/STLExtras.h:81:22: error: 'void_t' is not a member of 'std'
   81 | struct detector<std::void_t<Op<Args...>>, Op, Args...> {
      |                      ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:81:22: note: 'std::void_t' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h:81:22: error: 'void_t' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:81:22: note: 'std::void_t' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h:81:39: error: wrong number of template arguments (1, should be at least 2)
   81 | struct detector<std::void_t<Op<Args...>>, Op, Args...> {
      |                                       ^~
/usr/include/llvm/ADT/STLExtras.h:77:70: note: provided for 'template<class, template<class ...> class Op, class ... Args> struct llvm::detail::detector'
   77 | template <class, template <class...> class Op, class... Args> struct detector {
      |                                                                      ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:144:24: error: 'disjunction' in namespace 'std' does not name a template type
  144 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                        ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:144:19: note: 'std::disjunction' is only available from C++17 onwards
  144 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                   ^~~
/usr/include/llvm/ADT/STLExtras.h:149:26: error: 'conjunction' in namespace 'std' does not name a template type
  149 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                          ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:149:21: note: 'std::conjunction' is only available from C++17 onwards
  149 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                     ^~~
/usr/include/llvm/ADT/STLExtras.h:155:37: error: 'is_one_of' was not declared in this scope
  155 |     : std::integral_constant<bool, !is_one_of<T, Us...>::value &&
      |                                     ^~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:155:55: error: template argument 2 is invalid
  155 |     : std::integral_constant<bool, !is_one_of<T, Us...>::value &&
      |                                                       ^
/usr/include/llvm/ADT/STLExtras.h:155:56: error: expected '{' before '::' token
  155 |     : std::integral_constant<bool, !is_one_of<T, Us...>::value &&
      |                                                        ^~
/usr/include/llvm/ADT/STLExtras.h:224:23: error: 'is_function_v' is not a member of 'std'; did you mean 'is_function'?
  224 |           bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
      |                       ^~~~~~~~~~~~~
      |                       is_function
/usr/include/llvm/ADT/STLExtras.h:224:77: error: expected primary-expression before '>>' token
  224 |           bool = std::is_function_v<std::remove_pointer_t<remove_cvref_t<T>>>>
      |                                                                             ^~
/usr/include/llvm/ADT/STLExtras.h:224:77: error: expected '>' before '>>' token
/usr/include/llvm/ADT/STLExtras.h:230:8: error: 'optional' in namespace 'std' does not name a template type
  230 |   std::optional<value_type> Obj;
      |        ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:230:3: note: 'std::optional' is only available from C++17 onwards
  230 |   std::optional<value_type> Obj;
      |   ^~~
/usr/include/llvm/ADT/STLExtras.h:232:23: error: 'is_pointer_v' is not a member of 'std'; did you mean 'is_pointer'?
  232 |   static_assert(!std::is_pointer_v<value_type>,
      |                       ^~~~~~~~~~~~
      |                       is_pointer
/usr/include/llvm/ADT/STLExtras.h:232:46: error: expected primary-expression before '>' token
  232 |   static_assert(!std::is_pointer_v<value_type>,
      |                                              ^
/usr/include/llvm/ADT/STLExtras.h:232:47: error: expected primary-expression before ',' token
  232 |   static_assert(!std::is_pointer_v<value_type>,
      |                                               ^
/usr/include/llvm/ADT/STLExtras.h:257:35: error: 'is_invocable_v' is not a member of 'std'
  257 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                   ^~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:257:35: error: 'is_invocable_v' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:257:58: error: pack expansion argument for non-pack parameter '_Tp' of alias template 'template<bool _Cond, class _Tp> using std::enable_if_t = typename std::enable_if::type'
  257 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                          ^
In file included from /usr/include/c++/13/bits/char_traits.h:50,
                 from /usr/include/c++/13/string:42,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/Transformation.h:14:
/usr/include/c++/13/type_traits:2609:24: note: declared here
 2609 |   template<bool _Cond, typename _Tp = void>
      |                        ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:257:66: error: expected unqualified-id before '=' token
  257 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                                  ^
/usr/include/llvm/ADT/STLExtras.h:263:35: error: 'is_invocable_v' is not a member of 'std'
  263 |             std::enable_if_t<std::is_invocable_v<T const, Pn...>, int> = 0>
      |                                   ^~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:263:35: error: 'is_invocable_v' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:263:64: error: template argument 1 is invalid
  263 |             std::enable_if_t<std::is_invocable_v<T const, Pn...>, int> = 0>
      |                                                                ^
/usr/include/llvm/ADT/STLExtras.h:263:72: error: expected unqualified-id before '=' token
  263 |             std::enable_if_t<std::is_invocable_v<T const, Pn...>, int> = 0>
      |                                                                        ^
/usr/include/llvm/ADT/STLExtras.h: In constructor 'llvm::callable_detail::Callable<T, <anonymous> >::Callable(const T&)':
/usr/include/llvm/ADT/STLExtras.h:237:26: error: class 'llvm::callable_detail::Callable<T, <anonymous> >' does not have any field named 'Obj'
  237 |   Callable(T const &O) : Obj(std::in_place, O) {}
      |                          ^~~
/usr/include/llvm/ADT/STLExtras.h:237:35: error: 'in_place' is not a member of 'std'
  237 |   Callable(T const &O) : Obj(std::in_place, O) {}
      |                                   ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:237:35: note: 'std::in_place' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >& llvm::callable_detail::Callable<T, <anonymous> >::operator=(const llvm::callable_detail::Callable<T, <anonymous> >&)':
/usr/include/llvm/ADT/STLExtras.h:243:5: error: 'Obj' was not declared in this scope
  243 |     Obj = std::nullopt;
      |     ^~~
/usr/include/llvm/ADT/STLExtras.h:243:16: error: 'nullopt' is not a member of 'std'
  243 |     Obj = std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:243:16: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >& llvm::callable_detail::Callable<T, <anonymous> >::operator=(llvm::callable_detail::Callable<T, <anonymous> >&&)':
/usr/include/llvm/ADT/STLExtras.h:250:5: error: 'Obj' was not declared in this scope
  250 |     Obj = std::nullopt;
      |     ^~~
/usr/include/llvm/ADT/STLExtras.h:250:16: error: 'nullopt' is not a member of 'std'
  250 |     Obj = std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:250:16: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'bool llvm::callable_detail::Callable<T, <anonymous> >::valid() const':
/usr/include/llvm/ADT/STLExtras.h:268:31: error: 'Obj' was not declared in this scope
  268 |   bool valid() const { return Obj != std::nullopt; }
      |                               ^~~
/usr/include/llvm/ADT/STLExtras.h:268:43: error: 'nullopt' is not a member of 'std'
  268 |   bool valid() const { return Obj != std::nullopt; }
      |                                           ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:268:43: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'bool llvm::callable_detail::Callable<T, <anonymous> >::reset()':
/usr/include/llvm/ADT/STLExtras.h:269:25: error: 'Obj' was not declared in this scope
  269 |   bool reset() { return Obj = std::nullopt; }
      |                         ^~~
/usr/include/llvm/ADT/STLExtras.h:269:36: error: 'nullopt' is not a member of 'std'
  269 |   bool reset() { return Obj = std::nullopt; }
      |                                    ^~~~~~~
/usr/include/llvm/ADT/STLExtras.h:269:36: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >::operator reference()':
/usr/include/llvm/ADT/STLExtras.h:271:34: error: 'Obj' was not declared in this scope
  271 |   operator reference() { return *Obj; }
      |                                  ^~~
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, <anonymous> >::operator const_reference() const':
/usr/include/llvm/ADT/STLExtras.h:272:46: error: 'Obj' was not declared in this scope
  272 |   operator const_reference() const { return *Obj; }
      |                                              ^~~
/usr/include/llvm/ADT/STLExtras.h: At global scope:
/usr/include/llvm/ADT/STLExtras.h:278:38: error: 'is_pointer_v' is not a member of 'std'; did you mean 'is_pointer'?
  278 |   static constexpr bool IsPtr = std::is_pointer_v<remove_cvref_t<T>>;
      |                                      ^~~~~~~~~~~~
      |                                      is_pointer
/usr/include/llvm/ADT/STLExtras.h:278:67: error: expected primary-expression before '>' token
  278 |   static constexpr bool IsPtr = std::is_pointer_v<remove_cvref_t<T>>;
      |                                                                   ^~
/usr/include/llvm/ADT/STLExtras.h:278:69: error: expected primary-expression before ';' token
  278 |   static constexpr bool IsPtr = std::is_pointer_v<remove_cvref_t<T>>;
      |                                                                     ^
/usr/include/llvm/ADT/STLExtras.h:284:3: error: 'StorageT' does not name a type
  284 |   StorageT Func = nullptr;
      |   ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:307:13: error: 'is_same_v' is not a member of 'std'; did you mean 'is_same'?
  307 |       !std::is_same_v<remove_cvref_t<FnPtrOrRef>, Callable>, int
      |             ^~~~~~~~~
      |             is_same
/usr/include/llvm/ADT/STLExtras.h:307:59: error: template argument 1 is invalid
  307 |       !std::is_same_v<remove_cvref_t<FnPtrOrRef>, Callable>, int
      |                                                           ^
/usr/include/llvm/ADT/STLExtras.h:308:7: error: expected unqualified-id before '=' token
  308 |     > = 0
      |       ^
/usr/include/llvm/ADT/STLExtras.h:313:35: error: 'is_invocable_v' is not a member of 'std'
  313 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                   ^~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:313:35: error: 'is_invocable_v' is not a member of 'std'
/usr/include/llvm/ADT/STLExtras.h:313:58: error: pack expansion argument for non-pack parameter '_Tp' of alias template 'template<bool _Cond, class _Tp> using std::enable_if_t = typename std::enable_if::type'
  313 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                          ^
/usr/include/c++/13/type_traits:2609:24: note: declared here
 2609 |   template<bool _Cond, typename _Tp = void>
      |                        ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:313:66: error: expected unqualified-id before '=' token
  313 |             std::enable_if_t<std::is_invocable_v<T, Pn...>, int> = 0>
      |                                                                  ^
/usr/include/llvm/ADT/STLExtras.h: In member function 'bool llvm::callable_detail::Callable<T, true>::valid() const':
/usr/include/llvm/ADT/STLExtras.h:318:31: error: 'Func' was not declared in this scope
  318 |   bool valid() const { return Func != nullptr; }
      |                               ^~~~
/usr/include/llvm/ADT/STLExtras.h: In member function 'void llvm::callable_detail::Callable<T, true>::reset()':
/usr/include/llvm/ADT/STLExtras.h:319:18: error: 'Func' was not declared in this scope
  319 |   void reset() { Func = nullptr; }
      |                  ^~~~
/usr/include/llvm/ADT/STLExtras.h: In member function 'llvm::callable_detail::Callable<T, true>::operator const T&() const':
/usr/include/llvm/ADT/STLExtras.h:324:14: error: 'Func' was not declared in this scope
  324 |       return Func;
      |              ^~~~
/usr/include/llvm/ADT/STLExtras.h:326:26: error: 'is_reference_v' is not a member of 'std'; did you mean 'is_reference'?
  326 |       static_assert(std::is_reference_v<T>,
      |                          ^~~~~~~~~~~~~~
      |                          is_reference
/usr/include/llvm/ADT/STLExtras.h:326:42: error: expected primary-expression before '>' token
  326 |       static_assert(std::is_reference_v<T>,
      |                                          ^
/usr/include/llvm/ADT/STLExtras.h:326:43: error: expected primary-expression before ',' token
  326 |       static_assert(std::is_reference_v<T>,
      |                                           ^
/usr/include/llvm/ADT/STLExtras.h:329:15: error: 'Func' was not declared in this scope
  329 |       return *Func;
      |               ^~~~
/usr/include/llvm/ADT/STLExtras.h: At global scope:
/usr/include/llvm/ADT/STLExtras.h:423:35: error: template argument 2 is invalid
  423 |   callable_detail::Callable<FuncTy> F{};
      |                                   ^
/usr/include/llvm/ADT/STLExtras.h:927:60: error: 'optional' in namespace 'std' does not name a template type
  927 | auto deref_or_none(const Iter &I, const Iter &End) -> std::optional<
      |                                                            ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:927:55: note: 'std::optional' is only available from C++17 onwards
  927 | auto deref_or_none(const Iter &I, const Iter &End) -> std::optional<
      |                                                       ^~~
/usr/include/llvm/ADT/STLExtras.h:927:68: error: expected initializer before '<' token
  927 | auto deref_or_none(const Iter &I, const Iter &End) -> std::optional<
      |                                                                    ^
/usr/include/llvm/ADT/STLExtras.h:935:21: error: 'optional' in namespace 'std' does not name a template type
  935 |   using type = std::optional<std::remove_const_t<
      |                     ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:935:16: note: 'std::optional' is only available from C++17 onwards
  935 |   using type = std::optional<std::remove_const_t<
      |                ^~~
/usr/include/llvm/ADT/STLExtras.h:1511:24: error: 'disjunction' in namespace 'std' does not name a template type
 1511 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                        ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1511:19: note: 'std::disjunction' is only available from C++17 onwards
 1511 | using is_one_of = std::disjunction<std::is_same<T, Ts>...>;
      |                   ^~~
/usr/include/llvm/ADT/STLExtras.h:1516:26: error: 'conjunction' in namespace 'std' does not name a template type
 1516 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                          ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1516:21: note: 'std::conjunction' is only available from C++17 onwards
 1516 | using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>;
      |                     ^~~
/usr/include/llvm/ADT/STLExtras.h:1675:38: error: 'conjunction' in namespace 'std' does not name a template type
 1675 | using sort_trivially_copyable = std::conjunction<
      |                                      ^~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1675:33: note: 'std::conjunction' is only available from C++17 onwards
 1675 | using sort_trivially_copyable = std::conjunction<
      |                                 ^~~
/usr/include/llvm/ADT/STLExtras.h: In function 'void llvm::sort(IteratorTy, IteratorTy)':
/usr/include/llvm/ADT/STLExtras.h:1684:25: error: 'sort_trivially_copyable' is not a member of 'llvm::detail'
 1684 |   if constexpr (detail::sort_trivially_copyable<IteratorTy>::value) {
      |                         ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h:1684:59: error: expected primary-expression before '>' token
 1684 |   if constexpr (detail::sort_trivially_copyable<IteratorTy>::value) {
      |                                                           ^
/usr/include/llvm/ADT/STLExtras.h:1684:62: error: '::value' has not been declared
 1684 |   if constexpr (detail::sort_trivially_copyable<IteratorTy>::value) {
      |                                                              ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In function 'bool llvm::detail::all_of_zip_predicate_first(Predicate&&, Args&& ...)':
/usr/include/llvm/ADT/STLExtras.h:2276:15: error: 'apply' is not a member of 'std'
 2276 |     if (!std::apply([&](auto &&...args) { return P(args...); }, *it))
      |               ^~~~~
/usr/include/llvm/ADT/STLExtras.h:2276:15: note: 'std::apply' is only available from C++17 onwards
/usr/include/llvm/ADT/ArrayRef.h: At global scope:
/usr/include/llvm/ADT/ArrayRef.h:70:27: error: invalid use of '::'
   70 |     /*implicit*/ ArrayRef(std::nullopt_t) {}
      |                           ^~~
/usr/include/llvm/ADT/ArrayRef.h:70:44: error: expected ';' at end of member declaration
   70 |     /*implicit*/ ArrayRef(std::nullopt_t) {}
      |                                            ^
      |                                             ;
/usr/include/llvm/ADT/ArrayRef.h:323:34: error: invalid use of '::'
  323 |     /*implicit*/ MutableArrayRef(std::nullopt_t) : ArrayRef<T>() {}
      |                                  ^~~
/usr/include/llvm/ADT/ArrayRef.h:472:65: error: expected constructor, destructor, or type conversion before ';' token
  472 |   template <typename T> ArrayRef(const T &OneElt) -> ArrayRef<T>;
      |                                                                 ^
/usr/include/llvm/ADT/ArrayRef.h:475:78: error: expected constructor, destructor, or type conversion before ';' token
  475 |   template <typename T> ArrayRef(const T *data, size_t length) -> ArrayRef<T>;
      |                                                                              ^
/usr/include/llvm/ADT/ArrayRef.h:478:77: error: expected constructor, destructor, or type conversion before ';' token
  478 |   template <typename T> ArrayRef(const T *data, const T *end) -> ArrayRef<T>;
      |                                                                             ^
/usr/include/llvm/ADT/ArrayRef.h:481:79: error: expected constructor, destructor, or type conversion before ';' token
  481 |   template <typename T> ArrayRef(const SmallVectorImpl<T> &Vec) -> ArrayRef<T>;
      |                                                                               ^
/usr/include/llvm/ADT/ArrayRef.h:485:56: error: expected constructor, destructor, or type conversion before ';' token
  485 |   ArrayRef(const SmallVector<T, N> &Vec) -> ArrayRef<T>;
      |                                                        ^
/usr/include/llvm/ADT/ArrayRef.h:488:75: error: expected constructor, destructor, or type conversion before ';' token
  488 |   template <typename T> ArrayRef(const std::vector<T> &Vec) -> ArrayRef<T>;
      |                                                                           ^
/usr/include/llvm/ADT/ArrayRef.h:492:55: error: expected constructor, destructor, or type conversion before ';' token
  492 |   ArrayRef(const std::array<T, N> &Vec) -> ArrayRef<T>;
      |                                                       ^
/usr/include/llvm/ADT/ArrayRef.h:495:72: error: expected constructor, destructor, or type conversion before ';' token
  495 |   template <typename T> ArrayRef(const ArrayRef<T> &Vec) -> ArrayRef<T>;
      |                                                                        ^
/usr/include/llvm/ADT/ArrayRef.h:498:66: error: expected constructor, destructor, or type conversion before ';' token
  498 |   template <typename T> ArrayRef(ArrayRef<T> &Vec) -> ArrayRef<T>;
      |                                                                  ^
/usr/include/llvm/ADT/ArrayRef.h:501:77: error: expected constructor, destructor, or type conversion before ';' token
  501 |   template <typename T, size_t N> ArrayRef(const T (&Arr)[N]) -> ArrayRef<T>;
      |                                                                             ^
/usr/include/llvm/ADT/ArrayRef.h:580:70: error: expected constructor, destructor, or type conversion before ';' token
  580 |   template <class T> MutableArrayRef(T &OneElt) -> MutableArrayRef<T>;
      |                                                                      ^
/usr/include/llvm/ADT/ArrayRef.h:585:64: error: expected constructor, destructor, or type conversion before ';' token
  585 |   MutableArrayRef(T *data, size_t length) -> MutableArrayRef<T>;
      |                                                                ^
/usr/include/llvm/ADT/ArrayRef.h:589:65: error: expected constructor, destructor, or type conversion before ';' token
  589 |   MutableArrayRef(SmallVectorImpl<T> &Vec) -> MutableArrayRef<T>;
      |                                                                 ^
/usr/include/llvm/ADT/ArrayRef.h:592:64: error: expected constructor, destructor, or type conversion before ';' token
  592 |   MutableArrayRef(SmallVector<T, N> &Vec) -> MutableArrayRef<T>;
      |                                                                ^
/usr/include/llvm/ADT/ArrayRef.h:595:80: error: expected constructor, destructor, or type conversion before ';' token
  595 |   template <class T> MutableArrayRef(std::vector<T> &Vec) -> MutableArrayRef<T>;
      |                                                                                ^
/usr/include/llvm/ADT/ArrayRef.h:599:63: error: expected constructor, destructor, or type conversion before ';' token
  599 |   MutableArrayRef(std::array<T, N> &Vec) -> MutableArrayRef<T>;
      |                                                               ^
/usr/include/llvm/ADT/ArrayRef.h:603:53: error: expected constructor, destructor, or type conversion before ';' token
  603 |   MutableArrayRef(T (&Arr)[N]) -> MutableArrayRef<T>;
      |                                                     ^
/usr/include/clang/Basic/Diagnostic.h: In static member function 'static clang::FixItHint clang::FixItHint::CreateInsertion(clang::SourceLocation, llvm::StringRef, bool)':
/usr/include/clang/Basic/Diagnostic.h:103:41: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  103 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
In file included from /usr/include/c++/13/string:54:
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:103:41: note:   candidate expects 3 arguments, 1 provided
  103 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: In static member function 'static clang::FixItHint clang::FixItHint::CreateReplacement(clang::CharSourceRange, llvm::StringRef)':
/usr/include/clang/Basic/Diagnostic.h:138:41: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  138 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:138:41: note:   candidate expects 3 arguments, 1 provided
  138 |     Hint.CodeToInsert = std::string(Code);
      |                                         ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: In member function 'void clang::StreamingDiagnostic::AddString(llvm::StringRef) const':
/usr/include/clang/Basic/Diagnostic.h:1202:78: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
 1202 |     DiagStorage->DiagArgumentsStr[DiagStorage->NumDiagArgs++] = std::string(V);
      |                                                                              ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:1202:78: note:   candidate expects 3 arguments, 1 provided
 1202 |     DiagStorage->DiagArgumentsStr[DiagStorage->NumDiagArgs++] = std::string(V);
      |                                                                              ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: In member function 'void clang::DiagnosticBuilder::addFlagValue(llvm::StringRef) const':
/usr/include/clang/Basic/Diagnostic.h:1369:76: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
 1369 |   void addFlagValue(StringRef V) const { DiagObj->FlagValue = std::string(V); }
      |                                                                            ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/Basic/Diagnostic.h:1369:76: note:   candidate expects 3 arguments, 1 provided
 1369 |   void addFlagValue(StringRef V) const { DiagObj->FlagValue = std::string(V); }
      |                                                                            ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/clang/Basic/Diagnostic.h: At global scope:
/usr/include/clang/Basic/Diagnostic.h:1514:23: error: 'optional' in namespace 'std' does not name a template type
 1514 |            const std::optional<SourceRange> &Opt) {
      |                       ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1514:18: note: 'std::optional' is only available from C++17 onwards
 1514 |            const std::optional<SourceRange> &Opt) {
      |                  ^~~
/usr/include/clang/Basic/Diagnostic.h:1514:31: error: expected ',' or '...' before '<' token
 1514 |            const std::optional<SourceRange> &Opt) {
      |                               ^
/usr/include/clang/Basic/Diagnostic.h:1513:1: error: redefinition of 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)'
 1513 | operator<<(const StreamingDiagnostic &DB,
      | ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1401:35: note: 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)' previously defined here
 1401 | inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
      |                                   ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h: In function 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)':
/usr/include/clang/Basic/Diagnostic.h:1515:7: error: 'Opt' was not declared in this scope
 1515 |   if (Opt)
      |       ^~~
/usr/include/clang/Basic/Diagnostic.h: At global scope:
/usr/include/clang/Basic/Diagnostic.h:1522:23: error: 'optional' in namespace 'std' does not name a template type
 1522 |            const std::optional<CharSourceRange> &Opt) {
      |                       ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1522:18: note: 'std::optional' is only available from C++17 onwards
 1522 |            const std::optional<CharSourceRange> &Opt) {
      |                  ^~~
/usr/include/clang/Basic/Diagnostic.h:1522:31: error: expected ',' or '...' before '<' token
 1522 |            const std::optional<CharSourceRange> &Opt) {
      |                               ^
/usr/include/clang/Basic/Diagnostic.h:1521:1: error: redefinition of 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)'
 1521 | operator<<(const StreamingDiagnostic &DB,
      | ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1401:35: note: 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)' previously defined here
 1401 | inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
      |                                   ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h: In function 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)':
/usr/include/clang/Basic/Diagnostic.h:1523:7: error: 'Opt' was not declared in this scope
 1523 |   if (Opt)
      |       ^~~
/usr/include/clang/Basic/Diagnostic.h: At global scope:
/usr/include/clang/Basic/Diagnostic.h:1529:54: error: 'optional' in namespace 'std' does not name a template type
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      |                                                      ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1529:49: note: 'std::optional' is only available from C++17 onwards
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      |                                                 ^~~
/usr/include/clang/Basic/Diagnostic.h:1529:62: error: expected ',' or '...' before '<' token
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      |                                                              ^
/usr/include/clang/Basic/Diagnostic.h:1529:1: error: redefinition of 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)'
 1529 | operator<<(const StreamingDiagnostic &DB, const std::optional<FixItHint> &Opt) {
      | ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h:1401:35: note: 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)' previously defined here
 1401 | inline const StreamingDiagnostic &operator<<(const StreamingDiagnostic &DB,
      |                                   ^~~~~~~~
/usr/include/clang/Basic/Diagnostic.h: In function 'const clang::StreamingDiagnostic& clang::operator<<(const StreamingDiagnostic&, int)':
/usr/include/clang/Basic/Diagnostic.h:1530:7: error: 'Opt' was not declared in this scope
 1530 |   if (Opt)
      |       ^~~
/usr/include/clang/Basic/Diagnostic.h: In member function 'llvm::ArrayRef<clang::CharSourceRange> clang::StoredDiagnostic::getRanges() const':
/usr/include/clang/Basic/Diagnostic.h:1724:70: error: missing template arguments before '(' token
 1724 |   ArrayRef<CharSourceRange> getRanges() const { return llvm::ArrayRef(Ranges); }
      |                                                                      ^
/usr/include/clang/Basic/Diagnostic.h: In member function 'llvm::ArrayRef<clang::FixItHint> clang::StoredDiagnostic::getFixIts() const':
/usr/include/clang/Basic/Diagnostic.h:1732:64: error: missing template arguments before '(' token
 1732 |   ArrayRef<FixItHint> getFixIts() const { return llvm::ArrayRef(FixIts); }
      |                                                                ^
In file included from /usr/include/llvm/Support/Allocator.h:21,
                 from /usr/include/llvm/ADT/FoldingSet.h:22,
                 from /usr/include/clang/AST/NestedNameSpecifier.h:21:
/usr/include/llvm/Support/Alignment.h: At global scope:
/usr/include/llvm/Support/Alignment.h:117:41: error: expected template-name before '<' token
  117 | struct MaybeAlign : public std::optional<Align> {
      |                                         ^
/usr/include/llvm/Support/Alignment.h:117:41: error: expected '{' before '<' token
/usr/include/llvm/Support/Alignment.h:117:41: error: expected unqualified-id before '<' token
/usr/include/llvm/Support/Alignment.h:217:35: error: 'A' has incomplete type
  217 | inline unsigned encode(MaybeAlign A) { return A ? A->ShiftValue + 1 : 0; }
      |                        ~~~~~~~~~~~^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:220:50: error: return type 'struct llvm::MaybeAlign' is incomplete
  220 | inline MaybeAlign decodeMaybeAlign(unsigned Value) {
      |                                                  ^
/usr/include/llvm/Support/Alignment.h:220:19: error: ambiguating new declaration of 'void llvm::decodeMaybeAlign(unsigned int)'
  220 | inline MaybeAlign decodeMaybeAlign(unsigned Value) {
      |                   ^~~~~~~~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:53:28: note: old declaration 'llvm::MaybeAlign llvm::decodeMaybeAlign(unsigned int)'
   53 |   friend struct MaybeAlign decodeMaybeAlign(unsigned Value);
      |                            ^~~~~~~~~~~~~~~~
/usr/include/llvm/Support/Alignment.h: In function 'void llvm::decodeMaybeAlign(unsigned int)':
/usr/include/llvm/Support/Alignment.h:222:23: error: invalid use of incomplete type 'struct llvm::MaybeAlign'
  222 |     return MaybeAlign();
      |                       ^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:224:7: error: 'uint8_t llvm::Align::ShiftValue' is private within this context
  224 |   Out.ShiftValue = Value - 1;
      |       ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:41:11: note: declared private here
   41 |   uint8_t ShiftValue = 0; /// The log2 of the required alignment.
      |           ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h: In function 'unsigned int llvm::encode(Align)':
/usr/include/llvm/Support/Alignment.h:230:61: error: invalid use of incomplete type 'struct llvm::MaybeAlign'
  230 | inline unsigned encode(Align A) { return encode(MaybeAlign(A)); }
      |                                                             ^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h: At global scope:
/usr/include/llvm/Support/Alignment.h:295:35: error: 'Lhs' has incomplete type
  295 | inline bool operator==(MaybeAlign Lhs, Align Rhs) { return Lhs && *Lhs == Rhs; }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:296:35: error: 'Lhs' has incomplete type
  296 | inline bool operator!=(MaybeAlign Lhs, Align Rhs) { return !(Lhs == Rhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:297:46: error: 'Rhs' has incomplete type
  297 | inline bool operator==(Align Lhs, MaybeAlign Rhs) { return Rhs == Lhs; }
      |                                   ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:298:46: error: 'Rhs' has incomplete type
  298 | inline bool operator!=(Align Lhs, MaybeAlign Rhs) { return !(Rhs == Lhs); }
      |                                   ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:300:35: error: 'Lhs' has incomplete type
  300 | inline bool operator==(MaybeAlign Lhs, MaybeAlign Rhs) {
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:300:51: error: 'Rhs' has incomplete type
  300 | inline bool operator==(MaybeAlign Lhs, MaybeAlign Rhs) {
      |                                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:303:35: error: 'Lhs' has incomplete type
  303 | inline bool operator!=(MaybeAlign Lhs, MaybeAlign Rhs) { return !(Lhs == Rhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:303:51: error: 'Rhs' has incomplete type
  303 | inline bool operator!=(MaybeAlign Lhs, MaybeAlign Rhs) { return !(Lhs == Rhs); }
      |                                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:305:45: error: 'std::nullopt_t' has not been declared
  305 | inline bool operator==(MaybeAlign Lhs, std::nullopt_t) { return !bool(Lhs); }
      |                                             ^~~~~~~~~
/usr/include/llvm/Support/Alignment.h:305:35: error: 'Lhs' has incomplete type
  305 | inline bool operator==(MaybeAlign Lhs, std::nullopt_t) { return !bool(Lhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:306:45: error: 'std::nullopt_t' has not been declared
  306 | inline bool operator!=(MaybeAlign Lhs, std::nullopt_t) { return bool(Lhs); }
      |                                             ^~~~~~~~~
/usr/include/llvm/Support/Alignment.h:306:35: error: 'Lhs' has incomplete type
  306 | inline bool operator!=(MaybeAlign Lhs, std::nullopt_t) { return bool(Lhs); }
      |                        ~~~~~~~~~~~^~~
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/llvm/Support/Alignment.h:307:13: error: declaration of 'operator==' as non-function
  307 | inline bool operator==(std::nullopt_t, MaybeAlign Rhs) { return !bool(Rhs); }
      |             ^~~~~~~~
/usr/include/llvm/Support/Alignment.h:307:29: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  307 | inline bool operator==(std::nullopt_t, MaybeAlign Rhs) { return !bool(Rhs); }
      |                             ^~~~~~~~~
      |                             nullptr_t
/usr/include/llvm/Support/Alignment.h:307:51: error: expected primary-expression before 'Rhs'
  307 | inline bool operator==(std::nullopt_t, MaybeAlign Rhs) { return !bool(Rhs); }
      |                                                   ^~~
/usr/include/llvm/Support/Alignment.h:308:13: error: declaration of 'operator!=' as non-function
  308 | inline bool operator!=(std::nullopt_t, MaybeAlign Rhs) { return bool(Rhs); }
      |             ^~~~~~~~
/usr/include/llvm/Support/Alignment.h:308:29: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  308 | inline bool operator!=(std::nullopt_t, MaybeAlign Rhs) { return bool(Rhs); }
      |                             ^~~~~~~~~
      |                             nullptr_t
/usr/include/llvm/Support/Alignment.h:308:51: error: expected primary-expression before 'Rhs'
  308 | inline bool operator!=(std::nullopt_t, MaybeAlign Rhs) { return bool(Rhs); }
      |                                                   ^~~
/usr/include/llvm/Support/Alignment.h: In function 'std::string llvm::DebugStr(const MaybeAlign&)':
/usr/include/llvm/Support/Alignment.h:317:7: error: could not convert 'MA' from 'const llvm::MaybeAlign' to 'bool'
  317 |   if (MA)
      |       ^~
      |       |
      |       const llvm::MaybeAlign
/usr/include/llvm/Support/Alignment.h:318:29: error: base operand of '->' has non-pointer type 'const llvm::MaybeAlign'
  318 |     return std::to_string(MA->value());
      |                             ^~
/usr/include/llvm/Support/Allocator.h: At global scope:
/usr/include/llvm/Support/Allocator.h:232:8: error: 'optional' in namespace 'std' does not name a template type
  232 |   std::optional<int64_t> identifyObject(const void *Ptr) {
      |        ^~~~~~~~
/usr/include/llvm/Support/Allocator.h:232:3: note: 'std::optional' is only available from C++17 onwards
  232 |   std::optional<int64_t> identifyObject(const void *Ptr) {
      |   ^~~
/usr/include/llvm/Support/Allocator.h: In member function 'int64_t llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold, GrowthDelay>::identifyKnownObject(const void*)':
/usr/include/llvm/Support/Allocator.h:259:10: error: 'optional' is not a member of 'std'
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |          ^~~~~~~~
/usr/include/llvm/Support/Allocator.h:259:10: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Allocator.h:259:26: error: expected primary-expression before '>' token
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |                          ^
/usr/include/llvm/Support/Allocator.h:259:28: error: 'Out' was not declared in this scope
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |                            ^~~
/usr/include/llvm/Support/Allocator.h:259:34: error: there are no arguments to 'identifyObject' that depend on a template parameter, so a declaration of 'identifyObject' must be available [-fpermissive]
  259 |     std::optional<int64_t> Out = identifyObject(Ptr);
      |                                  ^~~~~~~~~~~~~~
/usr/include/llvm/Support/Allocator.h:259:34: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from /usr/include/llvm/ADT/APSInt.h:18,
                 from /usr/include/llvm/ADT/APFixedPoint.h:19,
                 from /usr/include/clang/AST/APValue.h:17,
                 from /usr/include/clang/AST/Expr.h:16,
                 from /usr/include/clang/AST/ASTConcept.h:17,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:16,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/ClassTemplateToClass.cpp:17:
/usr/include/llvm/ADT/APInt.h: At global scope:
/usr/include/llvm/ADT/APInt.h:1506:8: error: 'optional' in namespace 'std' does not name a template type
 1506 |   std::optional<uint64_t> tryZExtValue() const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:1506:3: note: 'std::optional' is only available from C++17 onwards
 1506 |   std::optional<uint64_t> tryZExtValue() const {
      |   ^~~
/usr/include/llvm/ADT/APInt.h:1528:8: error: 'optional' in namespace 'std' does not name a template type
 1528 |   std::optional<int64_t> trySExtValue() const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:1528:3: note: 'std::optional' is only available from C++17 onwards
 1528 |   std::optional<int64_t> trySExtValue() const {
      |   ^~~
/usr/include/llvm/ADT/APInt.h: In member function 'unsigned int llvm::APInt::countPopulation() const':
/usr/include/llvm/ADT/APInt.h:1621:20: error: 'popcount' is not a member of 'llvm'; did you mean 'count'?
 1621 |       return llvm::popcount(U.VAL);
      |                    ^~~~~~~~
      |                    count
/usr/include/llvm/ADT/APInt.h: At global scope:
/usr/include/llvm/ADT/APInt.h:2279:6: error: 'optional' in namespace 'std' does not name a template type
 2279 | std::optional<APInt> SolveQuadraticEquationWrap(APInt A, APInt B, APInt C,
      |      ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:2279:1: note: 'std::optional' is only available from C++17 onwards
 2279 | std::optional<APInt> SolveQuadraticEquationWrap(APInt A, APInt B, APInt C,
      | ^~~
/usr/include/llvm/ADT/APInt.h:2284:6: error: 'optional' in namespace 'std' does not name a template type
 2284 | std::optional<unsigned> GetMostSignificantDifferentBit(const APInt &A,
      |      ^~~~~~~~
/usr/include/llvm/ADT/APInt.h:2284:1: note: 'std::optional' is only available from C++17 onwards
 2284 | std::optional<unsigned> GetMostSignificantDifferentBit(const APInt &A,
      | ^~~
/usr/include/llvm/ADT/APSInt.h:103:8: error: 'optional' in namespace 'std' does not name a template type
  103 |   std::optional<int64_t> tryExtValue() const {
      |        ^~~~~~~~
/usr/include/llvm/ADT/APSInt.h:103:3: note: 'std::optional' is only available from C++17 onwards
  103 |   std::optional<int64_t> tryExtValue() const {
      |   ^~~
In file included from /usr/include/llvm/ADT/APFixedPoint.h:23:
/usr/include/llvm/Support/raw_ostream.h:252:38: error: 'string_view' in namespace 'std' does not name a type
  252 |   raw_ostream &operator<<(const std::string_view &Str) {
      |                                      ^~~~~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:252:33: note: 'std::string_view' is only available from C++17 onwards
  252 |   raw_ostream &operator<<(const std::string_view &Str) {
      |                                 ^~~
/usr/include/llvm/Support/raw_ostream.h: In member function 'llvm::raw_ostream& llvm::raw_ostream::operator<<(const int&)':
/usr/include/llvm/Support/raw_ostream.h:253:22: error: request for member 'data' in 'Str', which is of non-class type 'const int'
  253 |     return write(Str.data(), Str.length());
      |                      ^~~~
/usr/include/llvm/Support/raw_ostream.h:253:34: error: request for member 'length' in 'Str', which is of non-class type 'const int'
  253 |     return write(Str.data(), Str.length());
      |                                  ^~~~~~
/usr/include/llvm/Support/raw_ostream.h: At global scope:
/usr/include/llvm/Support/raw_ostream.h:459:16: error: 'optional' in namespace 'std' does not name a template type
  459 |   mutable std::optional<bool> HasColors;
      |                ^~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:459:11: note: 'std::optional' is only available from C++17 onwards
  459 |   mutable std::optional<bool> HasColors;
      |           ^~~
/usr/include/llvm/Support/raw_ostream.h:757:47: error: 'std::nullopt_t' has not been declared
  757 | raw_ostream &operator<<(raw_ostream &OS, std::nullopt_t);
      |                                               ^~~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:761:53: error: 'optional' in namespace 'std' does not name a template type
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                     ^~~~~~~~
/usr/include/llvm/Support/raw_ostream.h:761:48: note: 'std::optional' is only available from C++17 onwards
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                ^~~
/usr/include/llvm/Support/raw_ostream.h:761:61: error: expected ',' or '...' before '<' token
  761 | raw_ostream &operator<<(raw_ostream &OS, const std::optional<T> &O) {
      |                                                             ^
/usr/include/llvm/Support/raw_ostream.h: In function 'llvm::raw_ostream& llvm::operator<<(raw_ostream&, int)':
/usr/include/llvm/Support/raw_ostream.h:762:7: error: 'O' was not declared in this scope; did you mean 'OS'?
  762 |   if (O)
      |       ^
      |       OS
/usr/include/llvm/Support/raw_ostream.h:765:16: error: 'nullopt' is not a member of 'std'
  765 |     OS << std::nullopt;
      |                ^~~~~~~
/usr/include/llvm/Support/raw_ostream.h:765:16: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/APFixedPoint.h: In member function 'std::string llvm::APFixedPoint::toString() const':
/usr/include/llvm/ADT/APFixedPoint.h:238:31: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef)'
  238 |     return std::string(S.str());
      |                               ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/ADT/APFixedPoint.h:238:31: note:   candidate expects 3 arguments, 1 provided
  238 |     return std::string(S.str());
      |                               ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/llvm/ADT/FloatingPointMode.h:18,
                 from /usr/include/llvm/ADT/APFloat.h:20,
                 from /usr/include/clang/AST/APValue.h:18:
/usr/include/llvm/ADT/StringSwitch.h: At global scope:
/usr/include/llvm/ADT/StringSwitch.h:50:8: error: 'optional' in namespace 'std' does not name a template type
   50 |   std::optional<T> Result;
      |        ^~~~~~~~
/usr/include/llvm/ADT/StringSwitch.h:50:3: note: 'std::optional' is only available from C++17 onwards
   50 |   std::optional<T> Result;
      |   ^~~
/usr/include/llvm/ADT/StringSwitch.h: In constructor 'llvm::StringSwitch<T, R>::StringSwitch(llvm::StringRef)':
/usr/include/llvm/ADT/StringSwitch.h:54:13: error: class 'llvm::StringSwitch<T, R>' does not have any field named 'Result'
   54 |   : Str(S), Result() { }
      |             ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In constructor 'llvm::StringSwitch<T, R>::StringSwitch(llvm::StringSwitch<T, R>&&)':
/usr/include/llvm/ADT/StringSwitch.h:64:23: error: class 'llvm::StringSwitch<T, R>' does not have any field named 'Result'
   64 |     : Str(other.Str), Result(std::move(other.Result)) { }
      |                       ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::Case(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:70:10: error: 'Result' was not declared in this scope
   70 |     if (!Result && Str == S) {
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::EndsWith(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:77:10: error: 'Result' was not declared in this scope
   77 |     if (!Result && Str.endswith(S)) {
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::StartsWith(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:84:10: error: 'Result' was not declared in this scope
   84 |     if (!Result && Str.startswith(S)) {
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::CaseLower(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:143:10: error: 'Result' was not declared in this scope
  143 |     if (!Result && Str.equals_insensitive(S))
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::EndsWithLower(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:150:10: error: 'Result' was not declared in this scope
  150 |     if (!Result && Str.endswith_insensitive(S))
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>& llvm::StringSwitch<T, R>::StartsWithLower(llvm::StringLiteral, T)':
/usr/include/llvm/ADT/StringSwitch.h:157:10: error: 'Result' was not declared in this scope
  157 |     if (!Result && Str.startswith_insensitive(S))
      |          ^~~~~~
/usr/include/llvm/ADT/StringSwitch.h: In member function 'R llvm::StringSwitch<T, R>::Default(T)':
/usr/include/llvm/ADT/StringSwitch.h:183:9: error: 'Result' was not declared in this scope
  183 |     if (Result)
      |         ^~~~~~
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/llvm/ADT/StringSwitch.h:18:
/usr/include/llvm/ADT/StringSwitch.h: In member function 'llvm::StringSwitch<T, R>::operator R()':
/usr/include/llvm/ADT/StringSwitch.h:189:5: error: 'Result' was not declared in this scope
  189 |     assert(Result && "Fell off the end of a string-switch");
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>'
/usr/include/clang/AST/APValue.h:190:11:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
In file included from /usr/include/clang/AST/APValue.h:22:
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>':
/usr/include/clang/AST/APValue.h:190:11:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::ValueDecl*, const clang::Expr*, clang::TypeInfoLValue, clang::DynamicAllocLValue>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/Type.h:22,
                 from /usr/include/clang/AST/DeclarationName.h:16,
                 from /usr/include/clang/AST/DeclBase.h:18,
                 from /usr/include/clang/AST/Decl.h:19,
                 from /usr/include/clang/AST/Expr.h:19:
/usr/include/clang/AST/TemplateName.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::OverloadedTemplateStorage::decls() const':
/usr/include/clang/AST/TemplateName.h:130:26: error: missing template arguments before '(' token
  130 |     return llvm::ArrayRef(begin(), end());
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>'
/usr/include/clang/AST/TemplateName.h:211:15:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>':
/usr/include/clang/AST/TemplateName.h:211:15:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Decl*, clang::UncommonTemplateNameStorage*, clang::QualifiedTemplateName*, clang::DependentTemplateName*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/TemplateName.h: At global scope:
/usr/include/clang/AST/TemplateName.h:383:41: error: 'std::optional' has not been declared
  383 |                                    std::optional<unsigned> PackIndex)
      |                                         ^~~~~~~~
/usr/include/clang/AST/TemplateName.h:383:49: error: expected ',' or '...' before '<' token
  383 |                                    std::optional<unsigned> PackIndex)
      |                                                 ^
/usr/include/clang/AST/TemplateName.h:399:8: error: 'optional' in namespace 'std' does not name a template type
  399 |   std::optional<unsigned> getPackIndex() const {
      |        ^~~~~~~~
/usr/include/clang/AST/TemplateName.h:399:3: note: 'std::optional' is only available from C++17 onwards
  399 |   std::optional<unsigned> getPackIndex() const {
      |   ^~~
/usr/include/clang/AST/TemplateName.h:412:28: error: 'std::optional' has not been declared
  412 |                       std::optional<unsigned> PackIndex);
      |                            ^~~~~~~~
/usr/include/clang/AST/TemplateName.h:412:36: error: expected ',' or '...' before '<' token
  412 |                       std::optional<unsigned> PackIndex);
      |                                    ^
/usr/include/clang/AST/TemplateName.h: In constructor 'clang::SubstTemplateTemplateParmStorage::SubstTemplateTemplateParmStorage(clang::TemplateName, clang::Decl*, unsigned int, int)':
/usr/include/clang/AST/TemplateName.h:385:37: error: 'PackIndex' was not declared in this scope
  385 |                                     PackIndex ? *PackIndex + 1 : 0),
      |                                     ^~~~~~~~~
In file included from /usr/include/clang/AST/Type.h:40:
/usr/include/llvm/ADT/Twine.h: At global scope:
/usr/include/llvm/ADT/Twine.h:292:35: error: 'string_view' in namespace 'std' does not name a type
  292 |     /*implicit*/ Twine(const std::string_view &Str)
      |                                   ^~~~~~~~~~~
/usr/include/llvm/ADT/Twine.h:292:30: note: 'std::string_view' is only available from C++17 onwards
  292 |     /*implicit*/ Twine(const std::string_view &Str)
      |                              ^~~
/usr/include/llvm/ADT/Twine.h: In constructor 'llvm::Twine::Twine(const int&)':
/usr/include/llvm/ADT/Twine.h:294:34: error: request for member 'data' in 'Str', which is of non-class type 'const int'
  294 |       LHS.ptrAndLength.ptr = Str.data();
      |                                  ^~~~
/usr/include/llvm/ADT/Twine.h:295:37: error: request for member 'length' in 'Str', which is of non-class type 'const int'
  295 |       LHS.ptrAndLength.length = Str.length();
      |                                     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::Type*, const clang::ExtQuals*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::Type*, const clang::ExtQuals*>'
/usr/include/clang/AST/Type.h:744:28:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::Type*, const clang::ExtQuals*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::Type*, const clang::ExtQuals*>':
/usr/include/clang/AST/Type.h:744:28:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::Type*, const clang::ExtQuals*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Type.h: At global scope:
/usr/include/clang/AST/Type.h:2555:8: error: 'optional' in namespace 'std' does not name a template type
 2555 |   std::optional<NullabilityKind> getNullability() const;
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:2555:3: note: 'std::optional' is only available from C++17 onwards
 2555 |   std::optional<NullabilityKind> getNullability() const;
      |   ^~~
/usr/include/clang/AST/Type.h:2579:8: error: 'optional' in namespace 'std' does not name a template type
 2579 |   std::optional<ArrayRef<QualType>>
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:2579:3: note: 'std::optional' is only available from C++17 onwards
 2579 |   std::optional<ArrayRef<QualType>>
      |   ^~~
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::FunctionProtoType::getParamTypes() const':
/usr/include/clang/AST/Type.h:4240:26: error: missing template arguments before '(' token
 4240 |     return llvm::ArrayRef(param_type_begin(), param_type_end());
      |                          ^
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::FunctionProtoType::param_types() const':
/usr/include/clang/AST/Type.h:4387:26: error: missing template arguments before '(' token
 4387 |     return llvm::ArrayRef(param_type_begin(), param_type_end());
      |                          ^
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::FunctionProtoType::exceptions() const':
/usr/include/clang/AST/Type.h:4401:26: error: missing template arguments before '(' token
 4401 |     return llvm::ArrayRef(exception_begin(), exception_end());
      |                          ^
/usr/include/clang/AST/Type.h: At global scope:
/usr/include/clang/AST/Type.h:4925:8: error: 'optional' in namespace 'std' does not name a template type
 4925 |   std::optional<NullabilityKind> getImmediateNullability() const;
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:4925:3: note: 'std::optional' is only available from C++17 onwards
 4925 |   std::optional<NullabilityKind> getImmediateNullability() const;
      |   ^~~
/usr/include/clang/AST/Type.h:4955:15: error: 'optional' in namespace 'std' does not name a template type
 4955 |   static std::optional<NullabilityKind> stripOuterNullability(QualType &T);
      |               ^~~~~~~~
/usr/include/clang/AST/Type.h:4955:10: note: 'std::optional' is only available from C++17 onwards
 4955 |   static std::optional<NullabilityKind> stripOuterNullability(QualType &T);
      |          ^~~
/usr/include/clang/AST/Type.h:5096:50: error: 'std::optional' has not been declared
 5096 |                             unsigned Index, std::optional<unsigned> PackIndex);
      |                                                  ^~~~~~~~
/usr/include/clang/AST/Type.h:5096:58: error: expected ',' or '...' before '<' token
 5096 |                             unsigned Index, std::optional<unsigned> PackIndex);
      |                                                          ^
/usr/include/clang/AST/Type.h:5119:8: error: 'optional' in namespace 'std' does not name a template type
 5119 |   std::optional<unsigned> getPackIndex() const {
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:5119:3: note: 'std::optional' is only available from C++17 onwards
 5119 |   std::optional<unsigned> getPackIndex() const {
      |   ^~~
/usr/include/clang/AST/Type.h:5135:28: error: 'std::optional' has not been declared
 5135 |                       std::optional<unsigned> PackIndex) {
      |                            ^~~~~~~~
/usr/include/clang/AST/Type.h:5135:36: error: expected ',' or '...' before '<' token
 5135 |                       std::optional<unsigned> PackIndex) {
      |                                    ^
/usr/include/clang/AST/Type.h: In member function 'void clang::SubstTemplateTypeParmType::Profile(llvm::FoldingSetNodeID&)':
/usr/include/clang/AST/Type.h:5130:13: error: 'getPackIndex' was not declared in this scope; did you mean 'getIndex'?
 5130 |             getPackIndex());
      |             ^~~~~~~~~~~~
      |             getIndex
/usr/include/clang/AST/Type.h: In static member function 'static void clang::SubstTemplateTypeParmType::Profile(llvm::FoldingSetNodeID&, clang::QualType, const clang::Decl*, unsigned int, int)':
/usr/include/clang/AST/Type.h:5139:19: error: 'PackIndex' was not declared in this scope
 5139 |     ID.AddInteger(PackIndex ? *PackIndex - 1 : 0);
      |                   ^~~~~~~~~
/usr/include/clang/AST/Type.h: At global scope:
/usr/include/clang/AST/Type.h:5849:26: error: 'std::optional' has not been declared
 5849 |                     std::optional<unsigned> NumExpansions)
      |                          ^~~~~~~~
/usr/include/clang/AST/Type.h:5849:34: error: expected ',' or '...' before '<' token
 5849 |                     std::optional<unsigned> NumExpansions)
      |                                  ^
/usr/include/clang/AST/Type.h:5867:8: error: 'optional' in namespace 'std' does not name a template type
 5867 |   std::optional<unsigned> getNumExpansions() const {
      |        ^~~~~~~~
/usr/include/clang/AST/Type.h:5867:3: note: 'std::optional' is only available from C++17 onwards
 5867 |   std::optional<unsigned> getNumExpansions() const {
      |   ^~~
/usr/include/clang/AST/Type.h:5881:28: error: 'std::optional' has not been declared
 5881 |                       std::optional<unsigned> NumExpansions) {
      |                            ^~~~~~~~
/usr/include/clang/AST/Type.h:5881:36: error: expected ',' or '...' before '<' token
 5881 |                       std::optional<unsigned> NumExpansions) {
      |                                    ^
/usr/include/clang/AST/Type.h: In constructor 'clang::PackExpansionType::PackExpansionType(clang::QualType, clang::QualType, int)':
/usr/include/clang/AST/Type.h:5856:9: error: 'NumExpansions' was not declared in this scope
 5856 |         NumExpansions ? *NumExpansions + 1 : 0;
      |         ^~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In member function 'void clang::PackExpansionType::Profile(llvm::FoldingSetNodeID&)':
/usr/include/clang/AST/Type.h:5877:31: error: 'getNumExpansions' was not declared in this scope
 5877 |     Profile(ID, getPattern(), getNumExpansions());
      |                               ^~~~~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In static member function 'static void clang::PackExpansionType::Profile(llvm::FoldingSetNodeID&, clang::QualType, int)':
/usr/include/clang/AST/Type.h:5883:19: error: 'NumExpansions' was not declared in this scope
 5883 |     ID.AddBoolean(NumExpansions.has_value());
      |                   ^~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In member function 'llvm::ArrayRef<clang::QualType> clang::ObjCObjectType::getTypeArgsAsWritten() const':
/usr/include/clang/AST/Type.h:6138:26: error: missing template arguments before '(' token
 6138 |     return llvm::ArrayRef(getTypeArgStorage(), ObjCObjectTypeBits.NumTypeArgs);
      |                          ^
/usr/include/clang/AST/Type.h: In constructor 'clang::DecayedType::DecayedType(clang::QualType, clang::QualType, clang::QualType)':
/usr/include/clang/AST/Type.h:7484:25: error: 'stripOuterNullability' is not a member of 'clang::AttributedType'
 7484 |   (void)AttributedType::stripOuterNullability(Adjusted);
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/clang/AST/Type.h: In member function 'clang::QualType clang::DecayedType::getPointeeType() const':
/usr/include/clang/AST/Type.h:7491:25: error: 'stripOuterNullability' is not a member of 'clang::AttributedType'
 7491 |   (void)AttributedType::stripOuterNullability(Decayed);
      |                         ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/ADT/StringMap.h:17,
                 from /usr/include/clang/Basic/IdentifierTable.h:23,
                 from /usr/include/clang/AST/DeclarationName.h:18:
/usr/include/llvm/ADT/StringMapEntry.h: At global scope:
/usr/include/llvm/ADT/StringMapEntry.h:88:34: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
   88 | class StringMapEntryStorage<std::nullopt_t> : public StringMapEntryBase {
      |                                  ^~~~~~~~~
      |                                  nullptr_t
/usr/include/llvm/ADT/StringMapEntry.h:88:34: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
   88 | class StringMapEntryStorage<std::nullopt_t> : public StringMapEntryBase {
      |                                  ^~~~~~~~~
      |                                  nullptr_t
/usr/include/llvm/ADT/StringMapEntry.h:88:43: error: template argument 1 is invalid
   88 | class StringMapEntryStorage<std::nullopt_t> : public StringMapEntryBase {
      |                                           ^
In file included from /usr/include/clang/AST/DeclBase.h:31:
/usr/include/llvm/Support/VersionTuple.h:76:8: error: 'optional' in namespace 'std' does not name a template type
   76 |   std::optional<unsigned> getMinor() const {
      |        ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:76:3: note: 'std::optional' is only available from C++17 onwards
   76 |   std::optional<unsigned> getMinor() const {
      |   ^~~
/usr/include/llvm/Support/VersionTuple.h:83:8: error: 'optional' in namespace 'std' does not name a template type
   83 |   std::optional<unsigned> getSubminor() const {
      |        ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:83:3: note: 'std::optional' is only available from C++17 onwards
   83 |   std::optional<unsigned> getSubminor() const {
      |   ^~~
/usr/include/llvm/Support/VersionTuple.h:90:8: error: 'optional' in namespace 'std' does not name a template type
   90 |   std::optional<unsigned> getBuild() const {
      |        ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:90:3: note: 'std::optional' is only available from C++17 onwards
   90 |   std::optional<unsigned> getBuild() const {
      |   ^~~
/usr/include/llvm/Support/VersionTuple.h: In static member function 'static unsigned int llvm::DenseMapInfo<llvm::VersionTuple>::getHashValue(const llvm::VersionTuple&)':
/usr/include/llvm/Support/VersionTuple.h:203:28: error: 'const class llvm::VersionTuple' has no member named 'getMinor'; did you mean 'getMajor'?
  203 |     if (auto Minor = Value.getMinor())
      |                            ^~~~~~~~
      |                            getMajor
/usr/include/llvm/Support/VersionTuple.h:205:31: error: 'const class llvm::VersionTuple' has no member named 'getSubminor'; did you mean 'unsigned int:31 llvm::VersionTuple::Subminor'? (not accessible from this context)
  205 |     if (auto Subminor = Value.getSubminor())
      |                               ^~~~~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:37:12: note: declared private here
   37 |   unsigned Subminor : 31;
      |            ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:207:28: error: 'const class llvm::VersionTuple' has no member named 'getBuild'; did you mean 'unsigned int:31 llvm::VersionTuple::Build'? (not accessible from this context)
  207 |     if (auto Build = Value.getBuild())
      |                            ^~~~~~~~
/usr/include/llvm/Support/VersionTuple.h:40:12: note: declared private here
   40 |   unsigned Build : 31;
      |            ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::DeclContext*, clang::Decl::MultipleDC*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::DeclContext*, clang::Decl::MultipleDC*>'
/usr/include/clang/AST/DeclBase.h:269:49:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::DeclContext*, clang::Decl::MultipleDC*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::DeclContext*, clang::Decl::MultipleDC*>':
/usr/include/clang/AST/DeclBase.h:269:49:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::DeclContext*, clang::Decl::MultipleDC*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::NamedDecl*, clang::DeclListNode*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::NamedDecl*, clang::DeclListNode*>'
/usr/include/clang/AST/DeclBase.h:1290:11:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::NamedDecl*, clang::DeclListNode*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::NamedDecl*, clang::DeclListNode*>':
/usr/include/clang/AST/DeclBase.h:1290:11:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::NamedDecl*, clang::DeclListNode*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/ExternalASTSource.h:17,
                 from /usr/include/clang/AST/Decl.h:21:
/usr/include/clang/AST/CharUnits.h: At global scope:
/usr/include/clang/AST/CharUnits.h:194:48: error: return type 'struct llvm::MaybeAlign' is incomplete
  194 |       llvm::MaybeAlign getAsMaybeAlign() const {
      |                                                ^
/usr/include/clang/AST/CharUnits.h: In member function 'void clang::CharUnits::getAsMaybeAlign() const':
/usr/include/clang/AST/CharUnits.h:195:41: error: invalid use of incomplete type 'struct llvm::MaybeAlign'
  195 |         return llvm::MaybeAlign(Quantity);
      |                                         ^
/usr/include/llvm/Support/Alignment.h:117:8: note: forward declaration of 'struct llvm::MaybeAlign'
  117 | struct MaybeAlign : public std::optional<Align> {
      |        ^~~~~~~~~~
/usr/include/clang/AST/ExternalASTSource.h: At global scope:
/usr/include/clang/AST/ExternalASTSource.h:163:16: error: 'optional' in namespace 'std' does not name a template type
  163 |   virtual std::optional<ASTSourceDescriptor> getSourceDescriptor(unsigned ID);
      |                ^~~~~~~~
/usr/include/clang/AST/ExternalASTSource.h:163:11: note: 'std::optional' is only available from C++17 onwards
  163 |   virtual std::optional<ASTSourceDescriptor> getSourceDescriptor(unsigned ID);
      |           ^~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >'
/usr/include/clang/AST/Redeclarable.h:105:61:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >':
/usr/include/clang/AST/Redeclarable.h:105:61:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<llvm::PointerUnion<clang::Decl*, const void*>, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain> >'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Decl*, const void*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Decl*, const void*>'
/usr/include/clang/AST/Redeclarable.h:119:40:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Decl*, const void*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Decl*, const void*>':
/usr/include/clang/AST/Redeclarable.h:119:40:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Decl*, const void*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>'
/usr/include/clang/AST/ExternalASTSource.h:402:13:   required from 'struct clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>'
/usr/include/clang/AST/Redeclarable.h:134:61:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>':
/usr/include/clang/AST/ExternalASTSource.h:402:13:   required from 'struct clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>'
/usr/include/clang/AST/Redeclarable.h:134:61:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Decl*, clang::LazyGenerationalUpdatePtr<const clang::Decl*, clang::Decl*, &clang::ExternalASTSource::CompleteRedeclChain>::LazyData*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Decl.h:440:8: error: 'optional' in namespace 'std' does not name a template type
  440 |   std::optional<Visibility>
      |        ^~~~~~~~
/usr/include/clang/AST/Decl.h:440:3: note: 'std::optional' is only available from C++17 onwards
  440 |   std::optional<Visibility>
      |   ^~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>'
/usr/include/clang/AST/Decl.h:776:51:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>':
/usr/include/clang/AST/Decl.h:776:51:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::DeclaratorDecl::ExtInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, clang::EvaluatedStmt*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, clang::EvaluatedStmt*>'
/usr/include/clang/AST/Decl.h:961:20:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, clang::EvaluatedStmt*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, clang::EvaluatedStmt*>':
/usr/include/clang/AST/Decl.h:961:20:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, clang::EvaluatedStmt*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>'
/usr/include/clang/AST/Decl.h:2006:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>':
/usr/include/clang/AST/Decl.h:2006:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::NamedDecl*, clang::MemberSpecializationInfo*, clang::FunctionTemplateSpecializationInfo*, clang::DependentFunctionTemplateSpecializationInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Decl.h:2477:12: error: 'std::optional' has not been declared
 2477 |       std::optional<unsigned> *AlignmentParam = nullptr,
      |            ^~~~~~~~
/usr/include/clang/AST/Decl.h:2477:20: error: expected ',' or '...' before '<' token
 2477 |       std::optional<unsigned> *AlignmentParam = nullptr,
      |                    ^
/usr/include/clang/AST/Decl.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::IndirectFieldDecl::chain() const':
/usr/include/clang/AST/Decl.h:3220:26: error: missing template arguments before '(' token
 3220 |     return llvm::ArrayRef(Chaining, ChainingSize);
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>'
/usr/include/clang/AST/Decl.h:3307:9:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>':
/usr/include/clang/AST/Decl.h:3307:9:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TypedefNameDecl::ModedTInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypedefNameDecl*, clang::QualifierInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypedefNameDecl*, clang::QualifierInfo*>'
/usr/include/clang/AST/Decl.h:3460:52:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypedefNameDecl*, clang::QualifierInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypedefNameDecl*, clang::QualifierInfo*>':
/usr/include/clang/AST/Decl.h:3460:52:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypedefNameDecl*, clang::QualifierInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::Type*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::Type*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/Decl.h:3736:54:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::Type*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::Type*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/Decl.h:3736:54:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::Type*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/Basic/ObjCRuntime.h:21,
                 from /usr/include/clang/Basic/LangOptions.h:20,
                 from /usr/include/clang/AST/Stmt.h:22,
                 from /usr/include/clang/AST/Expr.h:23:
/usr/include/llvm/Support/HashBuilder.h: At global scope:
/usr/include/llvm/Support/HashBuilder.h:84:8: error: 'optional' in namespace 'std' does not name a template type
   84 |   std::optional<HasherT> OptionalHasher;
      |        ^~~~~~~~
/usr/include/llvm/Support/HashBuilder.h:84:3: note: 'std::optional' is only available from C++17 onwards
   84 |   std::optional<HasherT> OptionalHasher;
      |   ^~~
/usr/include/llvm/Support/HashBuilder.h: In member function 'void llvm::HashBuilderBase<HasherT>::update(llvm::StringRef)':
/usr/include/llvm/Support/HashBuilder.h:62:17: error: missing template arguments before '(' token
   62 |         ArrayRef(reinterpret_cast<const uint8_t *>(Data.data()), Data.size()));
      |                 ^
/usr/include/llvm/Support/HashBuilder.h: In constructor 'llvm::HashBuilderBase<HasherT>::HashBuilderBase(ArgTypes&& ...)':
/usr/include/llvm/Support/HashBuilder.h:80:9: error: class 'llvm::HashBuilderBase<HasherT>' does not have any field named 'OptionalHasher'
   80 |       : OptionalHasher(std::in_place, std::forward<ArgTypes>(Args)...),
      |         ^~~~~~~~~~~~~~
/usr/include/llvm/Support/HashBuilder.h:80:29: error: 'in_place' is not a member of 'std'
   80 |       : OptionalHasher(std::in_place, std::forward<ArgTypes>(Args)...),
      |                             ^~~~~~~~
/usr/include/llvm/Support/HashBuilder.h:80:29: note: 'std::in_place' is only available from C++17 onwards
/usr/include/llvm/Support/HashBuilder.h:81:17: error: 'OptionalHasher' was not declared in this scope
   81 |         Hasher(*OptionalHasher) {}
      |                 ^~~~~~~~~~~~~~
/usr/include/llvm/Support/HashBuilder.h: In member function 'llvm::HashBuilderImpl<HasherT, Endianness>& llvm::HashBuilderImpl<HasherT, Endianness>::add(llvm::ArrayRef<U>)':
/usr/include/llvm/Support/HashBuilder.h:134:28: error: missing template arguments before '(' token
  134 |       this->update(ArrayRef(reinterpret_cast<const uint8_t *>(Value.begin()),
      |                            ^
/usr/include/llvm/Support/HashBuilder.h: In member function 'llvm::HashBuilderImpl<HasherT, Endianness>& llvm::HashBuilderImpl<HasherT, Endianness>::add(llvm::StringRef)':
/usr/include/llvm/Support/HashBuilder.h:162:26: error: missing template arguments before '(' token
  162 |     this->update(ArrayRef(reinterpret_cast<const uint8_t *>(Value.begin()),
      |                          ^
/usr/include/llvm/Support/HashBuilder.h: In member function 'llvm::HashBuilderImpl<HasherT, Endianness>& llvm::HashBuilderImpl<HasherT, Endianness>::add(const std::tuple<_Args1 ...>&)':
/usr/include/llvm/Support/HashBuilder.h:268:10: error: 'apply' is not a member of 'std'
  268 |     std::apply([this](const auto &...Args) { this->add(Args...); }, Arg);
      |          ^~~~~
/usr/include/llvm/Support/HashBuilder.h:268:10: note: 'std::apply' is only available from C++17 onwards
/usr/include/llvm/Support/HashBuilder.h: In member function 'std::enable_if_t<typename llvm::detail::detector<void, llvm::HashBuilderImpl<HasherT, Endianness>::HasByteSwapT, T>::value_t::value, llvm::HashBuilderImpl<HasherT, Endianness>&> llvm::HashBuilderImpl<HasherT, Endianness>::adjustForEndiannessAndAdd(const T&)':
/usr/include/llvm/Support/HashBuilder.h:319:26: error: missing template arguments before '(' token
  319 |     this->update(ArrayRef(reinterpret_cast<const uint8_t *>(&SwappedValue),
      |                          ^
/usr/include/llvm/Support/HashBuilder.h: In member function 'std::enable_if_t<(llvm::hashbuilder_detail::IsHashableData<T>::value && (Endianness == llvm::support::endian::system_endianness())), llvm::HashBuilderImpl<HasherT, Endianness>&> llvm::HashBuilderImpl<HasherT, Endianness>::addRangeElementsImpl(T*, T*, std::forward_iterator_tag)':
/usr/include/llvm/Support/HashBuilder.h:341:26: error: missing template arguments before '(' token
  341 |     this->update(ArrayRef(reinterpret_cast<const uint8_t *>(First),
      |                          ^
/usr/include/clang/Basic/LangOptions.h: At global scope:
/usr/include/clang/Basic/LangOptions.h:470:8: error: 'optional' in namespace 'std' does not name a template type
  470 |   std::optional<TargetCXXABI::Kind> CXXABI;
      |        ^~~~~~~~
/usr/include/clang/Basic/LangOptions.h:470:3: note: 'std::optional' is only available from C++17 onwards
  470 |   std::optional<TargetCXXABI::Kind> CXXABI;
      |   ^~~
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<const clang::Attr*> clang::AttributedStmt::getAttrs() const':
/usr/include/clang/AST/Stmt.h:1927:26: error: missing template arguments before '(' token
 1927 |     return llvm::ArrayRef(getAttrArrayPtr(), AttributedStmtBits.NumAttrs);
      |                          ^
/usr/include/clang/AST/Stmt.h: At global scope:
/usr/include/clang/AST/Stmt.h:2152:8: error: 'optional' in namespace 'std' does not name a template type
 2152 |   std::optional<const Stmt *> getNondiscardedCase(const ASTContext &Ctx) const;
      |        ^~~~~~~~
/usr/include/clang/AST/Stmt.h:2152:3: note: 'std::optional' is only available from C++17 onwards
 2152 |   std::optional<const Stmt *> getNondiscardedCase(const ASTContext &Ctx) const;
      |   ^~~
/usr/include/clang/AST/Stmt.h:2153:8: error: 'optional' in namespace 'std' does not name a template type
 2153 |   std::optional<Stmt *> getNondiscardedCase(const ASTContext &Ctx);
      |        ^~~~~~~~
/usr/include/clang/AST/Stmt.h:2153:3: note: 'std::optional' is only available from C++17 onwards
 2153 |   std::optional<Stmt *> getNondiscardedCase(const ASTContext &Ctx);
      |   ^~~
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<llvm::StringRef> clang::MSAsmStmt::getAllConstraints() const':
/usr/include/clang/AST/Stmt.h:3338:26: error: missing template arguments before '(' token
 3338 |     return llvm::ArrayRef(Constraints, NumInputs + NumOutputs);
      |                          ^
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<llvm::StringRef> clang::MSAsmStmt::getClobbers() const':
/usr/include/clang/AST/Stmt.h:3342:26: error: missing template arguments before '(' token
 3342 |     return llvm::ArrayRef(Clobbers, NumClobbers);
      |                          ^
/usr/include/clang/AST/Stmt.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::MSAsmStmt::getAllExprs() const':
/usr/include/clang/AST/Stmt.h:3346:26: error: missing template arguments before '(' token
 3346 |     return llvm::ArrayRef(reinterpret_cast<Expr **>(Exprs),
      |                          ^
In file included from /usr/include/clang/AST/Expr.h:24:
/usr/include/clang/AST/TemplateBase.h: At global scope:
/usr/include/clang/AST/TemplateBase.h:204:44: error: 'std::optional' has not been declared
  204 |   TemplateArgument(TemplateName Name, std::optional<unsigned> NumExpansions) {
      |                                            ^~~~~~~~
/usr/include/clang/AST/TemplateBase.h:204:52: error: expected ',' or '...' before '<' token
  204 |   TemplateArgument(TemplateName Name, std::optional<unsigned> NumExpansions) {
      |                                                    ^
/usr/include/clang/AST/TemplateBase.h:309:8: error: 'optional' in namespace 'std' does not name a template type
  309 |   std::optional<unsigned> getNumTemplateExpansions() const;
      |        ^~~~~~~~
/usr/include/clang/AST/TemplateBase.h:309:3: note: 'std::optional' is only available from C++17 onwards
  309 |   std::optional<unsigned> getNumTemplateExpansions() const;
      |   ^~~
/usr/include/clang/AST/TemplateBase.h: In constructor 'clang::TemplateArgument::TemplateArgument(clang::TemplateName, int)':
/usr/include/clang/AST/TemplateBase.h:207:9: error: 'NumExpansions' was not declared in this scope
  207 |     if (NumExpansions)
      |         ^~~~~~~~~~~~~
/usr/include/clang/AST/TemplateBase.h: In static member function 'static clang::TemplateArgument clang::TemplateArgument::getEmptyPack()':
/usr/include/clang/AST/TemplateBase.h:236:34: error: 'nullopt' is not a member of 'std'
  236 |     return TemplateArgument(std::nullopt);
      |                                  ^~~~~~~
/usr/include/clang/AST/TemplateBase.h:236:34: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::APSInt clang::TemplateArgument::getAsIntegral() const':
/usr/include/clang/AST/TemplateBase.h:322:18: error: expected primary-expression before '(' token
  322 |     return APSInt(APInt(Integer.BitWidth, ArrayRef(Integer.pVal, NumWords)),
      |                  ^
/usr/include/clang/AST/TemplateBase.h:322:24: error: expected primary-expression before '(' token
  322 |     return APSInt(APInt(Integer.BitWidth, ArrayRef(Integer.pVal, NumWords)),
      |                        ^
/usr/include/clang/AST/TemplateBase.h:322:51: error: missing template arguments before '(' token
  322 |     return APSInt(APInt(Integer.BitWidth, ArrayRef(Integer.pVal, NumWords)),
      |                                                   ^
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::TemplateArgument::pack_elements() const':
/usr/include/clang/AST/TemplateBase.h:367:26: error: missing template arguments before '(' token
  367 |     return llvm::ArrayRef(pack_begin(), pack_end());
      |                          ^
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::TemplateArgument::getPackAsArray() const':
/usr/include/clang/AST/TemplateBase.h:380:26: error: missing template arguments before '(' token
  380 |     return llvm::ArrayRef(Args.Args, Args.NumArgs);
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/TemplateBase.h:418:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/TemplateBase.h:418:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateArgumentLocInfo::TemplateTemplateArgLocInfo*, clang::Expr*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/TemplateBase.h: In member function 'llvm::ArrayRef<clang::TemplateArgumentLoc> clang::ASTTemplateArgumentListInfo::arguments() const':
/usr/include/clang/AST/TemplateBase.h:645:26: error: missing template arguments before '(' token
  645 |     return llvm::ArrayRef(getTemplateArgs(), getNumTemplateArgs());
      |                          ^
In file included from /usr/include/clang/AST/Expr.h:28:
/usr/include/clang/Basic/SyncScope.h: In member function 'virtual llvm::ArrayRef<unsigned int> clang::AtomicScopeOpenCLModel::getRuntimeValues() const':
/usr/include/clang/Basic/SyncScope.h:148:26: error: missing template arguments before '(' token
  148 |     return llvm::ArrayRef(Scopes);
      |                          ^
/usr/include/clang/Basic/SyncScope.h: In member function 'virtual llvm::ArrayRef<unsigned int> clang::AtomicScopeHIPModel::getRuntimeValues() const':
/usr/include/clang/Basic/SyncScope.h:200:26: error: missing template arguments before '(' token
  200 |     return llvm::ArrayRef(Scopes);
      |                          ^
/usr/include/clang/AST/Expr.h: At global scope:
/usr/include/clang/AST/Expr.h:543:8: error: 'optional' in namespace 'std' does not name a template type
  543 |   std::optional<llvm::APSInt>
      |        ^~~~~~~~
/usr/include/clang/AST/Expr.h:543:3: note: 'std::optional' is only available from C++17 onwards
  543 |   std::optional<llvm::APSInt>
      |   ^~~
/usr/include/clang/AST/Expr.h: In member function 'void clang::CallExpr::computeDependence()':
/usr/include/clang/AST/Expr.h:3024:29: error: missing template arguments before '(' token
 3024 |         this, llvm::ArrayRef(
      |                             ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Stmt*> clang::CallExpr::getRawSubExprs()':
/usr/include/clang/AST/Expr.h:3071:26: error: missing template arguments before '(' token
 3071 |     return llvm::ArrayRef(getTrailingStmts(),
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, clang::FieldDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, clang::FieldDecl*>'
/usr/include/clang/AST/Expr.h:4818:43:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, clang::FieldDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, clang::FieldDecl*>':
/usr/include/clang/AST/Expr.h:4818:43:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, clang::FieldDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::InitListExpr::inits()':
/usr/include/clang/AST/Expr.h:4838:51: error: missing template arguments before '(' token
 4838 |   ArrayRef<Expr *> inits() { return llvm::ArrayRef(getInits(), getNumInits()); }
      |                                                   ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::InitListExpr::inits() const':
/usr/include/clang/AST/Expr.h:4841:26: error: missing template arguments before '(' token
 4841 |     return llvm::ArrayRef(getInits(), getNumInits());
      |                          ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::ParenListExpr::exprs()':
/usr/include/clang/AST/Expr.h:5583:51: error: missing template arguments before '(' token
 5583 |   ArrayRef<Expr *> exprs() { return llvm::ArrayRef(getExprs(), getNumExprs()); }
      |                                                   ^
/usr/include/clang/AST/Expr.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::RecoveryExpr::subExpressions()':
/usr/include/clang/AST/Expr.h:6434:26: error: missing template arguments before '(' token
 6434 |     return llvm::ArrayRef(B, B + NumExprs);
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>'
/usr/include/c++/13/bits/stl_pair.h:194:11:   required from 'struct std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >'
/usr/include/llvm/Support/type_traits.h:75:7:   required from 'union llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/c++/13/type_traits:1040:25:   required by substitution of 'template<class _Tp, class ... _Args> using std::__is_constructible_impl = std::__bool_constant<__is_constructible(_Tp, _Args ...)> [with _Tp = llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >; _Args = {const llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >&}]'
/usr/include/c++/13/type_traits:1076:12:   required from 'struct std::is_copy_constructible<llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > > >'
/usr/include/llvm/Support/type_traits.h:98:8:   required from 'struct llvm::is_trivially_copy_constructible<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:329:74:   required from 'class llvm::SmallVectorImpl<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:1199:22:   required from 'class llvm::SmallVector<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >, 4>'
/usr/include/clang/AST/ASTConcept.h:53:57:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>':
/usr/include/c++/13/bits/stl_pair.h:194:11:   required from 'struct std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >'
/usr/include/llvm/Support/type_traits.h:75:7:   required from 'union llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/c++/13/type_traits:1040:25:   required by substitution of 'template<class _Tp, class ... _Args> using std::__is_constructible_impl = std::__bool_constant<__is_constructible(_Tp, _Args ...)> [with _Tp = llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >; _Args = {const llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >&}]'
/usr/include/c++/13/type_traits:1076:12:   required from 'struct std::is_copy_constructible<llvm::detail::copy_construction_triviality_helper<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > > >'
/usr/include/llvm/Support/type_traits.h:98:8:   required from 'struct llvm::is_trivially_copy_constructible<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:329:74:   required from 'class llvm::SmallVectorImpl<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> > >'
/usr/include/llvm/ADT/SmallVector.h:1199:22:   required from 'class llvm::SmallVector<std::pair<const clang::Expr*, llvm::PointerUnion<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*> >, 4>'
/usr/include/clang/AST/ASTConcept.h:53:57:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, std::pair<clang::SourceLocation, llvm::StringRef>*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/Attr.h:365,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:17:
/usr/include/clang/AST/Attrs.inc: At global scope:
/usr/include/clang/AST/Attrs.inc:7459:17: error: 'optional' in namespace 'std' does not name a template type
 7459 |     static std::optional<MapTypeTy>
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7459:12: note: 'std::optional' is only available from C++17 onwards
 7459 |     static std::optional<MapTypeTy>
      |            ^~~
/usr/include/clang/AST/Attrs.inc:7461:17: error: 'optional' in namespace 'std' does not name a template type
 7461 |     static std::optional<OMPDeclareTargetDeclAttr*> getActiveAttr(const ValueDecl *VD);
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7461:12: note: 'std::optional' is only available from C++17 onwards
 7461 |     static std::optional<OMPDeclareTargetDeclAttr*> getActiveAttr(const ValueDecl *VD);
      |            ^~~
/usr/include/clang/AST/Attrs.inc:7462:17: error: 'optional' in namespace 'std' does not name a template type
 7462 |     static std::optional<DevTypeTy> getDeviceType(const ValueDecl *VD);
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7462:12: note: 'std::optional' is only available from C++17 onwards
 7462 |     static std::optional<DevTypeTy> getDeviceType(const ValueDecl *VD);
      |            ^~~
/usr/include/clang/AST/Attrs.inc:7463:17: error: 'optional' in namespace 'std' does not name a template type
 7463 |     static std::optional<SourceLocation> getLocation(const ValueDecl *VD);
      |                 ^~~~~~~~
/usr/include/clang/AST/Attrs.inc:7463:12: note: 'std::optional' is only available from C++17 onwards
 7463 |     static std::optional<SourceLocation> getLocation(const ValueDecl *VD);
      |            ^~~
In file included from /usr/include/clang/AST/DeclCXX.h:29,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:20:
/usr/include/clang/AST/TypeLoc.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::ObjCTypeParamTypeLoc::getProtocolLocs() const':
/usr/include/clang/AST/TypeLoc.h:817:26: error: missing template arguments before '(' token
  817 |     return llvm::ArrayRef(getProtocolLocArray(), getNumProtocols());
      |                          ^
/usr/include/clang/AST/TypeLoc.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::ObjCObjectTypeLoc::getProtocolLocs() const':
/usr/include/clang/AST/TypeLoc.h:1023:26: error: missing template arguments before '(' token
 1023 |     return llvm::ArrayRef(getProtocolLocArray(), getNumProtocols());
      |                          ^
/usr/include/clang/AST/TypeLoc.h: In member function 'llvm::ArrayRef<clang::ParmVarDecl*> clang::FunctionTypeLoc::getParams() const':
/usr/include/clang/AST/TypeLoc.h:1450:26: error: missing template arguments before '(' token
 1450 |     return llvm::ArrayRef(getParmArray(), getNumParams());
      |                          ^
In file included from /usr/include/clang/AST/DeclCXX.h:42:
/usr/include/llvm/ADT/TinyPtrVector.h: In member function 'llvm::TinyPtrVector<EltTy>::operator llvm::ArrayRef<T>() const':
/usr/include/llvm/ADT/TinyPtrVector.h:138:19: error: 'nullopt' is not a member of 'std'
  138 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/llvm/ADT/TinyPtrVector.h:138:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/TinyPtrVector.h: In member function 'llvm::TinyPtrVector<EltTy>::operator llvm::MutableArrayRef<T>()':
/usr/include/llvm/ADT/TinyPtrVector.h:147:19: error: 'nullopt' is not a member of 'std'
  147 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/llvm/ADT/TinyPtrVector.h:147:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>'
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<clang::LambdaCapture*>'
/usr/include/clang/AST/DeclCXX.h:417:35:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>':
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<clang::LambdaCapture*>'
/usr/include/clang/AST/DeclCXX.h:417:35:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::LambdaCapture*, llvm::SmallVector<clang::LambdaCapture*, 4>*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>'
/usr/include/clang/AST/DeclCXX.h:470:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>':
/usr/include/clang/AST/DeclCXX.h:470:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::MemberSpecializationInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::CXXBaseSpecifier> clang::CXXRecordDecl::DefinitionData::bases() const':
/usr/include/clang/AST/DeclCXX.h:360:28: error: missing template arguments before '(' token
  360 |       return llvm::ArrayRef(getBases(), NumBases);
      |                            ^
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::CXXBaseSpecifier> clang::CXXRecordDecl::DefinitionData::vbases() const':
/usr/include/clang/AST/DeclCXX.h:364:28: error: missing template arguments before '(' token
  364 |       return llvm::ArrayRef(getVBases(), NumVBases);
      |                            ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>'
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<const clang::CXXMethodDecl*>'
/usr/include/clang/AST/DeclCXX.h:2104:49:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>':
/usr/include/llvm/ADT/TinyPtrVector.h:40:12:   required from 'class llvm::TinyPtrVector<const clang::CXXMethodDecl*>'
/usr/include/clang/AST/DeclCXX.h:2104:49:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<const clang::CXXMethodDecl*, llvm::SmallVector<const clang::CXXMethodDecl*, 4>*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>'
/usr/include/clang/AST/DeclCXX.h:2224:7:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>':
/usr/include/clang/AST/DeclCXX.h:2224:7:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::FieldDecl*, clang::IndirectFieldDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::UsingPackDecl::expansions() const':
/usr/include/clang/AST/DeclCXX.h:3742:26: error: missing template arguments before '(' token
 3742 |     return llvm::ArrayRef(getTrailingObjects<NamedDecl *>(), NumExpansions);
      |                          ^
/usr/include/clang/AST/DeclCXX.h: In member function 'llvm::ArrayRef<clang::BindingDecl*> clang::DecompositionDecl::bindings() const':
/usr/include/clang/AST/DeclCXX.h:4112:26: error: missing template arguments before '(' token
 4112 |     return llvm::ArrayRef(getTrailingObjects<BindingDecl *>(), NumBindings);
      |                          ^
In file included from /usr/include/clang/AST/ASTContext.h:20,
                 from /usr/include/clang/AST/DeclTemplate.h:18,
                 from /usr/include/clang/AST/DeclFriend.h:20,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:21:
/usr/include/clang/AST/ComparisonCategories.h: At global scope:
/usr/include/clang/AST/ComparisonCategories.h:62:6: error: 'optional' in namespace 'std' does not name a template type
   62 | std::optional<ComparisonCategoryType>
      |      ^~~~~~~~
/usr/include/clang/AST/ComparisonCategories.h:62:1: note: 'std::optional' is only available from C++17 onwards
   62 | std::optional<ComparisonCategoryType>
      | ^~~
In file included from /usr/include/clang/AST/ASTContext.h:25:
/usr/include/clang/AST/PrettyPrinter.h: In member function 'virtual std::string clang::PrintingCallbacks::remapPath(llvm::StringRef) const':
/usr/include/clang/AST/PrettyPrinter.h:39:28: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
   39 |     return std::string(Path);
      |                            ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/AST/PrettyPrinter.h:39:28: note:   candidate expects 3 arguments, 1 provided
   39 |     return std::string(Path);
      |                            ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/clang/AST/ASTContext.h:26:
/usr/include/clang/AST/RawCommentList.h: In constructor 'clang::RawComment::CommentLine::CommentLine(llvm::StringRef, clang::PresumedLoc, clang::PresumedLoc)':
/usr/include/clang/AST/RawCommentList.h:148:11: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  148 |         : Text(Text), Begin(Begin), End(End) {}
      |           ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/AST/RawCommentList.h:148:11: note:   candidate expects 3 arguments, 1 provided
  148 |         : Text(Text), Begin(Begin), End(End) {}
      |           ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/clang/Basic/CodeGenOptions.h:20,
                 from /usr/include/clang/Basic/ProfileList.h:16,
                 from /usr/include/clang/AST/ASTContext.h:33:
/usr/include/llvm/Support/CodeGen.h: At global scope:
/usr/include/llvm/Support/CodeGen.h:66:15: error: 'optional' in namespace 'std' does not name a template type
   66 |   inline std::optional<Level> getLevel(IDType ID) {
      |               ^~~~~~~~
/usr/include/llvm/Support/CodeGen.h:66:10: note: 'std::optional' is only available from C++17 onwards
   66 |   inline std::optional<Level> getLevel(IDType ID) {
      |          ^~~
/usr/include/llvm/Support/CodeGen.h:74:15: error: 'optional' in namespace 'std' does not name a template type
   74 |   inline std::optional<Level> parseLevel(char C) {
      |               ^~~~~~~~
/usr/include/llvm/Support/CodeGen.h:74:10: note: 'std::optional' is only available from C++17 onwards
   74 |   inline std::optional<Level> parseLevel(char C) {
      |          ^~~
/usr/include/clang/Basic/CodeGenOptions.h:443:8: error: 'optional' in namespace 'std' does not name a template type
  443 |   std::optional<uint64_t> DiagnosticsHotnessThreshold = 0;
      |        ^~~~~~~~
/usr/include/clang/Basic/CodeGenOptions.h:443:3: note: 'std::optional' is only available from C++17 onwards
  443 |   std::optional<uint64_t> DiagnosticsHotnessThreshold = 0;
      |   ^~~
/usr/include/clang/Basic/CodeGenOptions.h:447:8: error: 'optional' in namespace 'std' does not name a template type
  447 |   std::optional<uint32_t> DiagnosticsMisExpectTolerance = 0;
      |        ^~~~~~~~
/usr/include/clang/Basic/CodeGenOptions.h:447:3: note: 'std::optional' is only available from C++17 onwards
  447 |   std::optional<uint32_t> DiagnosticsMisExpectTolerance = 0;
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:44:8: error: 'optional' in namespace 'std' does not name a template type
   44 |   std::optional<ExclusionType> inSection(StringRef Section, StringRef Prefix,
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:44:3: note: 'std::optional' is only available from C++17 onwards
   44 |   std::optional<ExclusionType> inSection(StringRef Section, StringRef Prefix,
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:54:8: error: 'optional' in namespace 'std' does not name a template type
   54 |   std::optional<ExclusionType>
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:54:3: note: 'std::optional' is only available from C++17 onwards
   54 |   std::optional<ExclusionType>
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:57:8: error: 'optional' in namespace 'std' does not name a template type
   57 |   std::optional<ExclusionType>
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:57:3: note: 'std::optional' is only available from C++17 onwards
   57 |   std::optional<ExclusionType>
      |   ^~~
/usr/include/clang/Basic/ProfileList.h:60:8: error: 'optional' in namespace 'std' does not name a template type
   60 |   std::optional<ExclusionType>
      |        ^~~~~~~~
/usr/include/clang/Basic/ProfileList.h:60:3: note: 'std::optional' is only available from C++17 onwards
   60 |   std::optional<ExclusionType>
      |   ^~~
In file included from /usr/include/clang/AST/ASTContext.h:40:
/usr/include/llvm/ADT/MapVector.h:42:12: error: 'is_integral_v' is not a member of 'std'; did you mean 'is_integral'?
   42 |       std::is_integral_v<typename MapType::mapped_type>,
      |            ^~~~~~~~~~~~~
      |            is_integral
/usr/include/llvm/ADT/MapVector.h:42:55: error: expected '(' before '>' token
   42 |       std::is_integral_v<typename MapType::mapped_type>,
      |                                                       ^
      |                                                       (
/usr/include/llvm/ADT/MapVector.h:42:56: error: expected primary-expression before ',' token
   42 |       std::is_integral_v<typename MapType::mapped_type>,
      |                                                        ^
/usr/include/llvm/ADT/MapVector.h: In member function 'ValueT llvm::MapVector<KeyT, ValueT, MapType, VectorType>::lookup(const KeyT&) const':
/usr/include/llvm/ADT/MapVector.h:112:24: error: 'is_copy_constructible_v' is not a member of 'std'; did you mean 'is_copy_constructible'?
  112 |     static_assert(std::is_copy_constructible_v<ValueT>,
      |                        ^~~~~~~~~~~~~~~~~~~~~~~
      |                        is_copy_constructible
/usr/include/llvm/ADT/MapVector.h:112:54: error: expected primary-expression before '>' token
  112 |     static_assert(std::is_copy_constructible_v<ValueT>,
      |                                                      ^
/usr/include/llvm/ADT/MapVector.h:112:55: error: expected primary-expression before ',' token
  112 |     static_assert(std::is_copy_constructible_v<ValueT>,
      |                                                       ^
/usr/include/clang/AST/ASTContext.h: At global scope:
/usr/include/clang/AST/ASTContext.h:1593:37: error: 'std::optional' has not been declared
 1593 |                                std::optional<unsigned> PackIndex) const;
      |                                     ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:1593:45: error: expected ',' or '...' before '<' token
 1593 |                                std::optional<unsigned> PackIndex) const;
      |                                             ^
/usr/include/clang/AST/ASTContext.h:1656:38: error: 'std::optional' has not been declared
 1656 |                                 std::optional<unsigned> NumExpansions,
      |                                      ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:1656:46: error: expected ',' or '...' before '<' token
 1656 |                                 std::optional<unsigned> NumExpansions,
      |                                              ^
/usr/include/clang/AST/ASTContext.h:2178:37: error: 'std::optional' has not been declared
 2178 |                                std::optional<unsigned> PackIndex) const;
      |                                     ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:2178:45: error: expected ',' or '...' before '<' token
 2178 |                                std::optional<unsigned> PackIndex) const;
      |                                             ^
/usr/include/clang/AST/ASTContext.h:2292:8: error: 'optional' in namespace 'std' does not name a template type
 2292 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(QualType Ty) const {
      |        ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:2292:3: note: 'std::optional' is only available from C++17 onwards
 2292 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(QualType Ty) const {
      |   ^~~
/usr/include/clang/AST/ASTContext.h:2298:8: error: 'optional' in namespace 'std' does not name a template type
 2298 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(const Type *Ty) const {
      |        ^~~~~~~~
/usr/include/clang/AST/ASTContext.h:2298:3: note: 'std::optional' is only available from C++17 onwards
 2298 |   std::optional<CharUnits> getTypeSizeInCharsIfKnown(const Type *Ty) const {
      |   ^~~
/usr/include/clang/AST/ASTContext.h: In member function 'bool clang::ASTContext::hasSameNullabilityTypeQualifier(clang::QualType, clang::QualType, bool) const':
/usr/include/clang/AST/ASTContext.h:2549:34: error: 'const class clang::Type' has no member named 'getNullability'
 2549 |     auto SubTnullability = SubT->getNullability();
      |                                  ^~~~~~~~~~~~~~
/usr/include/clang/AST/ASTContext.h:2550:38: error: 'const class clang::Type' has no member named 'getNullability'
 2550 |     auto SuperTnullability = SuperT->getNullability();
      |                                      ^~~~~~~~~~~~~~
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<clang::NamedDecl*> clang::TemplateParameterList::asArray()':
/usr/include/clang/AST/DeclTemplate.h:133:58: error: missing template arguments before '(' token
  133 |   ArrayRef<NamedDecl *> asArray() { return llvm::ArrayRef(begin(), end()); }
      |                                                          ^
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<const clang::NamedDecl*> clang::TemplateParameterList::asArray() const':
/usr/include/clang/AST/DeclTemplate.h:135:26: error: missing template arguments before '(' token
  135 |     return llvm::ArrayRef(begin(), size());
      |                          ^
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::TemplateArgumentList::asArray() const':
/usr/include/clang/AST/DeclTemplate.h:291:26: error: missing template arguments before '(' token
  291 |     return llvm::ArrayRef(data(), size());
      |                          ^
/usr/include/clang/AST/DeclTemplate.h: In member function 'llvm::ArrayRef<clang::TemplateArgumentLoc> clang::DependentFunctionTemplateSpecializationInfo::arguments() const':
/usr/include/clang/AST/DeclTemplate.h:743:26: error: missing template arguments before '(' token
  743 |     return llvm::ArrayRef(getTemplateArgs(), getNumTemplateArgs());
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>'
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>'
/usr/include/clang/AST/DeclTemplate.h:1236:17:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>':
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>'
/usr/include/clang/AST/DeclTemplate.h:1236:17:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::TemplateTypeParmDecl*, clang::DefaultArgStorage<clang::TemplateTypeParmDecl, clang::TypeSourceInfo*>::Chain*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclTemplate.h: At global scope:
/usr/include/clang/AST/DeclTemplate.h:1241:29: error: 'std::optional' has not been declared
 1241 |                        std::optional<unsigned> NumExpanded)
      |                             ^~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:1241:37: error: expected ',' or '...' before '<' token
 1241 |                        std::optional<unsigned> NumExpanded)
      |                                     ^
/usr/include/clang/AST/DeclTemplate.h:1252:15: error: 'std::optional' has not been declared
 1252 |          std::optional<unsigned> NumExpanded = std::nullopt);
      |               ^~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:1252:23: error: expected ',' or '...' before '<' token
 1252 |          std::optional<unsigned> NumExpanded = std::nullopt);
      |                       ^
/usr/include/clang/AST/DeclTemplate.h:1252:10: error: default argument missing for parameter 11 of 'static clang::TemplateTypeParmDecl* clang::TemplateTypeParmDecl::Create(const clang::ASTContext&, clang::DeclContext*, clang::SourceLocation, clang::SourceLocation, unsigned int, unsigned int, clang::IdentifierInfo*, bool, bool, bool, int)'
 1252 |          std::optional<unsigned> NumExpanded = std::nullopt);
      |          ^~~~~~~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:1251:50: note: ...following parameter 10 which has a default argument
 1251 |          bool Typename, bool ParameterPack, bool HasTypeConstraint = false,
      |                                             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/clang/AST/DeclTemplate.h: In constructor 'clang::TemplateTypeParmDecl::TemplateTypeParmDecl(clang::DeclContext*, clang::SourceLocation, clang::SourceLocation, clang::IdentifierInfo*, bool, bool, int)':
/usr/include/clang/AST/DeclTemplate.h:1245:33: error: request for member 'value_or' in '((clang::TemplateTypeParmDecl*)this)->clang::TemplateTypeParmDecl::NumExpanded', which is of non-class type 'unsigned int'
 1245 |         NumExpanded(NumExpanded.value_or(0)) {}
      |                                 ^~~~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>'
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>'
/usr/include/clang/AST/DeclTemplate.h:1419:17:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>':
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>'
/usr/include/clang/AST/DeclTemplate.h:1419:17:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, clang::NonTypeTemplateParmDecl*, clang::DefaultArgStorage<clang::NonTypeTemplateParmDecl, clang::Expr*>::Chain*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>'
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>'
/usr/include/clang/AST/DeclTemplate.h:1632:17:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>':
/usr/include/clang/AST/DeclTemplate.h:324:50:   required from 'class clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>'
/usr/include/clang/AST/DeclTemplate.h:1632:17:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateArgumentLoc*, clang::TemplateTemplateParmDecl*, clang::DefaultArgStorage<clang::TemplateTemplateParmDecl, clang::TemplateArgumentLoc*>::Chain*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
/usr/include/clang/AST/DeclTemplate.h:1843:5:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/clang/AST/DeclTemplate.h:1843:5:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>'
/usr/include/clang/AST/DeclTemplate.h:1978:31:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>':
/usr/include/clang/AST/DeclTemplate.h:1978:31:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::ClassTemplateDecl*, clang::ClassTemplatePartialSpecializationDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::NamedDecl*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::NamedDecl*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/DeclTemplate.h:2481:15:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::NamedDecl*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::NamedDecl*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/DeclTemplate.h:2481:15:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::NamedDecl*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
/usr/include/clang/AST/DeclTemplate.h:2705:3:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>':
/usr/include/clang/AST/DeclTemplate.h:2705:3:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplateSpecializationDecl::SpecializedPartialSpecialization*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>'
/usr/include/clang/AST/DeclTemplate.h:2832:31:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>':
/usr/include/clang/AST/DeclTemplate.h:2832:31:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::VarTemplateDecl*, clang::VarTemplatePartialSpecializationDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>'
/usr/include/clang/AST/DeclTemplate.h:3424:53:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>':
/usr/include/clang/AST/DeclTemplate.h:3424:53:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateTypeParmDecl*, clang::NonTypeTemplateParmDecl*, clang::TemplateTemplateParmDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/DeclTemplate.h: At global scope:
/usr/include/clang/AST/DeclTemplate.h:3453:13: error: 'optional' in namespace 'std' does not name a template type
 3453 | inline std::optional<unsigned> getExpandedPackSize(const NamedDecl *Param) {
      |             ^~~~~~~~
/usr/include/clang/AST/DeclTemplate.h:3453:8: note: 'std::optional' is only available from C++17 onwards
 3453 | inline std::optional<unsigned> getExpandedPackSize(const NamedDecl *Param) {
      |        ^~~
/usr/include/clang/AST/DeclFriend.h:113:69: error: 'nullopt' is not a member of 'std'
  113 |          ArrayRef<TemplateParameterList *> FriendTypeTPLists = std::nullopt);
      |                                                                     ^~~~~~~
/usr/include/clang/AST/DeclFriend.h:113:69: note: 'std::nullopt' is only available from C++17 onwards
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:22:
/usr/include/clang/AST/DeclObjC.h:391:64: error: 'nullopt' is not a member of 'std'
  391 |                        ArrayRef<SourceLocation> SelLocs = std::nullopt);
      |                                                                ^~~~~~~
/usr/include/clang/AST/DeclObjC.h:391:64: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/DeclObjC.h: In member function 'llvm::ArrayRef<clang::ParmVarDecl*> clang::ObjCMethodDecl::parameters() const':
/usr/include/clang/AST/DeclObjC.h:376:26: error: missing template arguments before '(' token
  376 |     return llvm::ArrayRef(const_cast<ParmVarDecl **>(getParams()), NumParams);
      |                          ^
/usr/include/clang/AST/DeclObjC.h: In member function 'std::string clang::ObjCImplementationDecl::getNameAsString() const':
/usr/include/clang/AST/DeclObjC.h:2713:69: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef)'
 2713 |   std::string getNameAsString() const { return std::string(getName()); }
      |                                                                     ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/clang/AST/DeclObjC.h:2713:69: note:   candidate expects 3 arguments, 1 provided
 2713 |   std::string getNameAsString() const { return std::string(getName()); }
      |                                                                     ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/llvm/Frontend/OpenMP/OMPContext.h:19,
                 from /usr/include/clang/AST/OpenMPClause.h:37,
                 from /usr/include/clang/AST/DeclOpenMP.h:21,
                 from /usr/include/clang/AST/RecursiveASTVisitor.h:23:
/usr/include/llvm/ADT/BitVector.h: In member function 'llvm::BitVector::size_type llvm::BitVector::count() const':
/usr/include/llvm/ADT/BitVector.h:158:24: error: 'popcount' is not a member of 'llvm'; did you mean 'count'?
  158 |       NumBits += llvm::popcount(Bit);
      |                        ^~~~~~~~
      |                        count
In file included from /usr/include/clang/Basic/Diagnostic.h:22:
/usr/include/llvm/ADT/DenseMap.h: In instantiation of 'class llvm::SmallDenseMap<llvm::omp::TraitProperty, llvm::APInt>':
/usr/include/llvm/Frontend/OpenMP/OMPContext.h:151:39:   required from here
/usr/include/llvm/ADT/DenseMap.h:890:30: error: non-constant condition for static assertion
  890 |   static_assert(isPowerOf2_64(InlineBuckets),
      |                 ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/usr/include/llvm/ADT/DenseMap.h:890:30:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(4)'
/usr/include/llvm/ADT/DenseMap.h:890:30: error: 'constexpr' call flows off the end of the function
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPVarListClause<T>::getVarRefs() const':
/usr/include/clang/AST/OpenMPClause.h:339:26: error: missing template arguments before '(' token
  339 |     return llvm::ArrayRef(
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPPrivateClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:2560:26: error: missing template arguments before '(' token
 2560 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPFirstprivateClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:2669:26: error: missing template arguments before '(' token
 2669 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPFirstprivateClause::getInits() const':
/usr/include/clang/AST/OpenMPClause.h:2683:26: error: missing template arguments before '(' token
 2683 |     return llvm::ArrayRef(getPrivateCopies().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:2831:26: error: missing template arguments before '(' token
 2831 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getSourceExprs() const':
/usr/include/clang/AST/OpenMPClause.h:2845:26: error: missing template arguments before '(' token
 2845 |     return llvm::ArrayRef(getPrivateCopies().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getDestinationExprs() const':
/usr/include/clang/AST/OpenMPClause.h:2859:26: error: missing template arguments before '(' token
 2859 |     return llvm::ArrayRef(getSourceExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLastprivateClause::getAssignmentOps() const':
/usr/include/clang/AST/OpenMPClause.h:2872:26: error: missing template arguments before '(' token
 2872 |     return llvm::ArrayRef(getDestinationExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3160:26: error: missing template arguments before '(' token
 3160 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getLHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3173:26: error: missing template arguments before '(' token
 3173 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getRHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3188:26: error: missing template arguments before '(' token
 3188 |     return llvm::ArrayRef(getLHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getReductionOps() const':
/usr/include/clang/AST/OpenMPClause.h:3202:26: error: missing template arguments before '(' token
 3202 |     return llvm::ArrayRef(getRHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getInscanCopyOps() const':
/usr/include/clang/AST/OpenMPClause.h:3214:26: error: missing template arguments before '(' token
 3214 |     return llvm::ArrayRef(getReductionOps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getInscanCopyArrayTemps() const':
/usr/include/clang/AST/OpenMPClause.h:3225:26: error: missing template arguments before '(' token
 3225 |     return llvm::ArrayRef(getInscanCopyOps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPReductionClause::getInscanCopyArrayElems() const':
/usr/include/clang/AST/OpenMPClause.h:3237:26: error: missing template arguments before '(' token
 3237 |     return llvm::ArrayRef(getInscanCopyArrayTemps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3479:26: error: missing template arguments before '(' token
 3479 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getLHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3492:26: error: missing template arguments before '(' token
 3492 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getRHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3506:26: error: missing template arguments before '(' token
 3506 |     return llvm::ArrayRef(getLHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPTaskReductionClause::getReductionOps() const':
/usr/include/clang/AST/OpenMPClause.h:3520:26: error: missing template arguments before '(' token
 3520 |     return llvm::ArrayRef(getRHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3710:26: error: missing template arguments before '(' token
 3710 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getLHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3723:26: error: missing template arguments before '(' token
 3723 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getRHSExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3737:26: error: missing template arguments before '(' token
 3737 |     return llvm::ArrayRef(getLHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getReductionOps() const':
/usr/include/clang/AST/OpenMPClause.h:3751:26: error: missing template arguments before '(' token
 3751 |     return llvm::ArrayRef(getRHSExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPInReductionClause::getTaskgroupDescriptors() const':
/usr/include/clang/AST/OpenMPClause.h:3762:26: error: missing template arguments before '(' token
 3762 |     return llvm::ArrayRef(getReductionOps().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getPrivates() const':
/usr/include/clang/AST/OpenMPClause.h:3968:26: error: missing template arguments before '(' token
 3968 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getInits() const':
/usr/include/clang/AST/OpenMPClause.h:3975:26: error: missing template arguments before '(' token
 3975 |     return llvm::ArrayRef(getPrivates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getUpdates() const':
/usr/include/clang/AST/OpenMPClause.h:3983:26: error: missing template arguments before '(' token
 3983 |     return llvm::ArrayRef(getInits().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getFinals() const':
/usr/include/clang/AST/OpenMPClause.h:3991:26: error: missing template arguments before '(' token
 3991 |     return llvm::ArrayRef(getUpdates().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPLinearClause::getUsedExprs() const':
/usr/include/clang/AST/OpenMPClause.h:3999:26: error: missing template arguments before '(' token
 3999 |     return llvm::ArrayRef(getFinals().end() + 2, varlist_size() + 1);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyinClause::getSourceExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4328:26: error: missing template arguments before '(' token
 4328 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyinClause::getDestinationExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4341:26: error: missing template arguments before '(' token
 4341 |     return llvm::ArrayRef(getSourceExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyinClause::getAssignmentOps() const':
/usr/include/clang/AST/OpenMPClause.h:4355:26: error: missing template arguments before '(' token
 4355 |     return llvm::ArrayRef(getDestinationExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyprivateClause::getSourceExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4493:26: error: missing template arguments before '(' token
 4493 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyprivateClause::getDestinationExprs() const':
/usr/include/clang/AST/OpenMPClause.h:4506:26: error: missing template arguments before '(' token
 4506 |     return llvm::ArrayRef(getSourceExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPCopyprivateClause::getAssignmentOps() const':
/usr/include/clang/AST/OpenMPClause.h:4520:26: error: missing template arguments before '(' token
 4520 |     return llvm::ArrayRef(getDestinationExprs().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'clang::OMPMappableExprListClause<T>::const_component_lists_iterator clang::OMPMappableExprListClause<T>::component_lists_begin() const':
/usr/include/clang/AST/OpenMPClause.h:5638:51: error: 'nullopt' is not a member of 'std'
 5638 |         SupportsMapper ? getUDMapperRefs() : std::nullopt);
      |                                                   ^~~~~~~
/usr/include/clang/AST/OpenMPClause.h:5638:51: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/OpenMPClause.h: In member function 'clang::OMPMappableExprListClause<T>::const_component_lists_iterator clang::OMPMappableExprListClause<T>::component_lists_end() const':
/usr/include/clang/AST/OpenMPClause.h:5645:30: error: 'nullopt' is not a member of 'std'
 5645 |         SupportsMapper, std::nullopt);
      |                              ^~~~~~~
/usr/include/clang/AST/OpenMPClause.h:5645:30: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/OpenMPClause.h: In member function 'clang::OMPMappableExprListClause<T>::const_component_lists_iterator clang::OMPMappableExprListClause<T>::decl_component_lists_begin(const clang::ValueDecl*) const':
/usr/include/clang/AST/OpenMPClause.h:5658:51: error: 'nullopt' is not a member of 'std'
 5658 |         SupportsMapper ? getUDMapperRefs() : std::nullopt);
      |                                                   ^~~~~~~
/usr/include/clang/AST/OpenMPClause.h:5658:51: note: 'std::nullopt' is only available from C++17 onwards
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/clang/AST/OpenMPClause.h:41:
/usr/include/clang/AST/OpenMPClause.h: In constructor 'clang::OMPMapClause::OMPMapClause(llvm::ArrayRef<clang::OpenMPMapModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, clang::OpenMPMapClauseKind, bool, clang::SourceLocation, const clang::OMPVarListLocTy&, const clang::OMPMappableExprListSizeTy&)':
/usr/include/clang/AST/OpenMPClause.h:5810:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 5810 |     assert(std::size(MapTypeModifiers) == MapModifiers.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h:5814:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 5814 |     assert(std::size(MapTypeModifiersLoc) == MapModifiersLoc.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::OpenMPMapModifierKind> clang::OMPMapClause::getMapTypeModifiers() const':
/usr/include/clang/AST/OpenMPClause.h:5948:26: error: missing template arguments before '(' token
 5948 |     return llvm::ArrayRef(MapTypeModifiers);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::OMPMapClause::getMapTypeModifiersLoc() const':
/usr/include/clang/AST/OpenMPClause.h:5953:26: error: missing template arguments before '(' token
 5953 |     return llvm::ArrayRef(MapTypeModifiersLoc);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In constructor 'clang::OMPToClause::OMPToClause(llvm::ArrayRef<clang::OpenMPMotionModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, const clang::OMPVarListLocTy&, const clang::OMPMappableExprListSizeTy&)':
/usr/include/clang/AST/OpenMPClause.h:6788:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6788 |     assert(std::size(MotionModifiers) == TheMotionModifiers.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h:6792:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6792 |     assert(std::size(MotionModifiersLoc) == TheMotionModifiersLoc.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::OpenMPMotionModifierKind> clang::OMPToClause::getMotionModifiers() const':
/usr/include/clang/AST/OpenMPClause.h:6904:26: error: missing template arguments before '(' token
 6904 |     return llvm::ArrayRef(MotionModifiers);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::OMPToClause::getMotionModifiersLoc() const':
/usr/include/clang/AST/OpenMPClause.h:6909:26: error: missing template arguments before '(' token
 6909 |     return llvm::ArrayRef(MotionModifiersLoc);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In constructor 'clang::OMPFromClause::OMPFromClause(llvm::ArrayRef<clang::OpenMPMotionModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, const clang::OMPVarListLocTy&, const clang::OMPMappableExprListSizeTy&)':
/usr/include/clang/AST/OpenMPClause.h:6989:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6989 |     assert(std::size(MotionModifiers) == TheMotionModifiers.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h:6993:5: error: 'size' is not a member of 'std'; did you mean 'llvm::size'?
 6993 |     assert(std::size(MotionModifiersLoc) == TheMotionModifiersLoc.size() &&
      |     ^~~~~~
/usr/include/llvm/ADT/STLExtras.h:1716:6: note: 'llvm::size' declared here
 1716 | auto size(R &&Range,
      |      ^~~~
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::OpenMPMotionModifierKind> clang::OMPFromClause::getMotionModifiers() const':
/usr/include/clang/AST/OpenMPClause.h:7104:26: error: missing template arguments before '(' token
 7104 |     return llvm::ArrayRef(MotionModifiers);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<clang::SourceLocation> clang::OMPFromClause::getMotionModifiersLoc() const':
/usr/include/clang/AST/OpenMPClause.h:7109:26: error: missing template arguments before '(' token
 7109 |     return llvm::ArrayRef(MotionModifiersLoc);
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPUseDevicePtrClause::getPrivateCopies() const':
/usr/include/clang/AST/OpenMPClause.h:7204:26: error: missing template arguments before '(' token
 7204 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPUseDevicePtrClause::getInits() const':
/usr/include/clang/AST/OpenMPClause.h:7218:26: error: missing template arguments before '(' token
 7218 |     return llvm::ArrayRef(getPrivateCopies().end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPNontemporalClause::getPrivateRefs() const':
/usr/include/clang/AST/OpenMPClause.h:7652:26: error: missing template arguments before '(' token
 7652 |     return llvm::ArrayRef(varlist_end(), varlist_size());
      |                          ^
/usr/include/clang/AST/OpenMPClause.h: In member function 'llvm::MutableArrayRef<clang::OMPClause*> clang::OMPChildren::getClauses()':
/usr/include/clang/AST/OpenMPClause.h:8934:33: error: missing template arguments before '(' token
 8934 |     return llvm::MutableArrayRef(getTrailingObjects<OMPClause *>(),
      |                                 ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::MutableArrayRef<clang::OMPClause*> clang::OMPDeclarativeDirective<T>::getClauses()':
/usr/include/clang/AST/DeclOpenMP.h:37:19: error: 'nullopt' is not a member of 'std'
   37 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/DeclOpenMP.h:37:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::ArrayRef<clang::OMPClause*> clang::OMPDeclarativeDirective<T>::clauses() const':
/usr/include/clang/AST/DeclOpenMP.h:93:19: error: 'nullopt' is not a member of 'std'
   93 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/DeclOpenMP.h:93:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPThreadPrivateDecl::getVars() const':
/usr/include/clang/AST/DeclOpenMP.h:121:26: error: missing template arguments before '(' token
  121 |     return llvm::ArrayRef(Storage, Data->getNumChildren());
      |                          ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPThreadPrivateDecl::getVars()':
/usr/include/clang/AST/DeclOpenMP.h:126:33: error: missing template arguments before '(' token
  126 |     return llvm::MutableArrayRef(Storage, Data->getNumChildren());
      |                                 ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::ArrayRef<const clang::Expr*> clang::OMPAllocateDecl::getVars() const':
/usr/include/clang/AST/DeclOpenMP.h:484:26: error: missing template arguments before '(' token
  484 |     return llvm::ArrayRef(Storage, Data->getNumChildren());
      |                          ^
/usr/include/clang/AST/DeclOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPAllocateDecl::getVars()':
/usr/include/clang/AST/DeclOpenMP.h:489:33: error: missing template arguments before '(' token
  489 |     return llvm::MutableArrayRef(Storage, Data->getNumChildren());
      |                                 ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/ExprCXX.h:849:48:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/ExprCXX.h:849:48:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:27:
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:2265:45: error: 'std::optional' has not been declared
 2265 |              SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                             ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2265:53: error: expected ',' or '...' before '<' token
 2265 |              SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                                     ^
/usr/include/clang/AST/ExprCXX.h:2280:41: error: 'std::optional' has not been declared
 2280 |          SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                         ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2280:49: error: expected ',' or '...' before '<' token
 2280 |          SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
      |                                                 ^
/usr/include/clang/AST/ExprCXX.h:2325:8: error: 'optional' in namespace 'std' does not name a template type
 2325 |   std::optional<Expr *> getArraySize() {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2325:3: note: 'std::optional' is only available from C++17 onwards
 2325 |   std::optional<Expr *> getArraySize() {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h:2339:8: error: 'optional' in namespace 'std' does not name a template type
 2339 |   std::optional<const Expr *> getArraySize() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:2339:3: note: 'std::optional' is only available from C++17 onwards
 2339 |   std::optional<const Expr *> getArraySize() const {
      |   ^~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::IdentifierInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::IdentifierInfo*>'
/usr/include/clang/AST/ExprCXX.h:2544:58:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TypeSourceInfo*, clang::IdentifierInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TypeSourceInfo*, clang::IdentifierInfo*>':
/usr/include/clang/AST/ExprCXX.h:2544:58:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TypeSourceInfo*, clang::IdentifierInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::TypeSourceInfo*> clang::TypeTraitExpr::getArgs() const':
/usr/include/clang/AST/ExprCXX.h:2799:26: error: missing template arguments before '(' token
 2799 |     return llvm::ArrayRef(getTrailingObjects<TypeSourceInfo *>(), getNumArgs());
      |                          ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::BlockDecl*, clang::CompoundLiteralExpr*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*>'
/usr/include/llvm/Support/TrailingObjects.h:77:22:   required from 'class llvm::trailing_objects_internal::AlignmentCalcHelper<llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/llvm/Support/TrailingObjects.h:212:7:   required from 'class llvm::TrailingObjects<clang::ExprWithCleanups, llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/clang/AST/ExprCXX.h:3418:21:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::BlockDecl*, clang::CompoundLiteralExpr*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*>':
/usr/include/llvm/Support/TrailingObjects.h:77:22:   required from 'class llvm::trailing_objects_internal::AlignmentCalcHelper<llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/llvm/Support/TrailingObjects.h:212:7:   required from 'class llvm::TrailingObjects<clang::ExprWithCleanups, llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> >'
/usr/include/clang/AST/ExprCXX.h:3418:21:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::BlockDecl*, clang::CompoundLiteralExpr*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<llvm::PointerUnion<clang::BlockDecl*, clang::CompoundLiteralExpr*> > clang::ExprWithCleanups::getObjects() const':
/usr/include/clang/AST/ExprCXX.h:3445:26: error: missing template arguments before '(' token
 3445 |     return llvm::ArrayRef(getTrailingObjects<CleanupObject>(), getNumObjects());
      |                          ^
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4141:26: error: 'std::optional' has not been declared
 4141 |                     std::optional<unsigned> NumExpansions)
      |                          ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4141:34: error: expected ',' or '...' before '<' token
 4141 |                     std::optional<unsigned> NumExpansions)
      |                                  ^
/usr/include/clang/AST/ExprCXX.h:4164:8: error: 'optional' in namespace 'std' does not name a template type
 4164 |   std::optional<unsigned> getNumExpansions() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4164:3: note: 'std::optional' is only available from C++17 onwards
 4164 |   std::optional<unsigned> getNumExpansions() const {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::PackExpansionExpr::PackExpansionExpr(clang::QualType, clang::Expr*, clang::SourceLocation, int)':
/usr/include/clang/AST/ExprCXX.h:4145:39: error: invalid type argument of unary '*' (have 'unsigned int')
 4145 |         NumExpansions(NumExpansions ? *NumExpansions + 1 : 0),
      |                                       ^~~~~~~~~~~~~~
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4235:23: error: 'std::optional' has not been declared
 4235 |                  std::optional<unsigned> Length,
      |                       ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4235:31: error: expected ',' or '...' before '<' token
 4235 |                  std::optional<unsigned> Length,
      |                               ^
/usr/include/clang/AST/ExprCXX.h:4256:15: error: 'std::optional' has not been declared
 4256 |          std::optional<unsigned> Length = std::nullopt,
      |               ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4256:23: error: expected ',' or '...' before '<' token
 4256 |          std::optional<unsigned> Length = std::nullopt,
      |                       ^
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::SizeOfPackExpr::SizeOfPackExpr(clang::QualType, clang::SourceLocation, clang::NamedDecl*, clang::SourceLocation, clang::SourceLocation, int)':
/usr/include/clang/AST/ExprCXX.h:4239:25: error: invalid type argument of unary '*' (have 'unsigned int')
 4239 |         Length(Length ? *Length : PartialArgs.size()), Pack(Pack) {
      |                         ^~~~~~~
/usr/include/clang/AST/ExprCXX.h:4239:35: error: 'PartialArgs' was not declared in this scope
 4239 |         Length(Length ? *Length : PartialArgs.size()), Pack(Pack) {
      |                                   ^~~~~~~~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::TemplateArgument> clang::SizeOfPackExpr::getPartialArguments() const':
/usr/include/clang/AST/ExprCXX.h:4296:26: error: missing template arguments before '(' token
 4296 |     return llvm::ArrayRef(Args, Args + Length);
      |                          ^
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4340:37: error: 'std::optional' has not been declared
 4340 |                                std::optional<unsigned> PackIndex, bool RefParam)
      |                                     ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4340:45: error: expected ',' or '...' before '<' token
 4340 |                                std::optional<unsigned> PackIndex, bool RefParam)
      |                                             ^
/usr/include/clang/AST/ExprCXX.h:4366:8: error: 'optional' in namespace 'std' does not name a template type
 4366 |   std::optional<unsigned> getPackIndex() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4366:3: note: 'std::optional' is only available from C++17 onwards
 4366 |   std::optional<unsigned> getPackIndex() const {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::SubstNonTypeTemplateParmExpr::SubstNonTypeTemplateParmExpr(clang::QualType, clang::ExprValueKind, clang::SourceLocation, clang::Expr*, clang::Decl*, unsigned int, int)':
/usr/include/clang/AST/ExprCXX.h:4343:46: error: 'RefParam' was not declared in this scope
 4343 |         AssociatedDeclAndRef(AssociatedDecl, RefParam), Index(Index),
      |                                              ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4344:31: error: invalid type argument of unary '*' (have 'unsigned int')
 4344 |         PackIndex(PackIndex ? *PackIndex + 1 : 0) {
      |                               ^~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>'
/usr/include/clang/AST/ExprCXX.h:4567:63:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>':
/usr/include/clang/AST/ExprCXX.h:4567:63:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, clang::LifetimeExtendedTemporaryDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprCXX.h: At global scope:
/usr/include/clang/AST/ExprCXX.h:4693:20: error: 'std::optional' has not been declared
 4693 |               std::optional<unsigned> NumExpansions)
      |                    ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4693:28: error: expected ',' or '...' before '<' token
 4693 |               std::optional<unsigned> NumExpansions)
      |                            ^
/usr/include/clang/AST/ExprCXX.h:4730:8: error: 'optional' in namespace 'std' does not name a template type
 4730 |   std::optional<unsigned> getNumExpansions() const {
      |        ^~~~~~~~
/usr/include/clang/AST/ExprCXX.h:4730:3: note: 'std::optional' is only available from C++17 onwards
 4730 |   std::optional<unsigned> getNumExpansions() const {
      |   ^~~
/usr/include/clang/AST/ExprCXX.h: In constructor 'clang::CXXFoldExpr::CXXFoldExpr(clang::QualType, clang::UnresolvedLookupExpr*, clang::SourceLocation, clang::Expr*, clang::BinaryOperatorKind, clang::SourceLocation, clang::Expr*, clang::SourceLocation, int)':
/usr/include/clang/AST/ExprCXX.h:4696:39: error: invalid type argument of unary '*' (have 'unsigned int')
 4696 |         NumExpansions(NumExpansions ? *NumExpansions + 1 : 0), Opcode(Opcode) {
      |                                       ^~~~~~~~~~~~~~
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getInitExprs()':
/usr/include/clang/AST/ExprCXX.h:4837:20: error: missing template arguments before '(' token
 4837 |     return ArrayRef(getTrailingObjects<Expr *>(), NumExprs);
      |                    ^
/usr/include/clang/AST/ExprCXX.h: In member function 'const llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getInitExprs() const':
/usr/include/clang/AST/ExprCXX.h:4841:20: error: missing template arguments before '(' token
 4841 |     return ArrayRef(getTrailingObjects<Expr *>(), NumExprs);
      |                    ^
/usr/include/clang/AST/ExprCXX.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getUserSpecifiedInitExprs()':
/usr/include/clang/AST/ExprCXX.h:4845:20: error: missing template arguments before '(' token
 4845 |     return ArrayRef(getTrailingObjects<Expr *>(), NumUserSpecifiedExprs);
      |                    ^
/usr/include/clang/AST/ExprCXX.h: In member function 'const llvm::ArrayRef<clang::Expr*> clang::CXXParenListInitExpr::getUserSpecifiedInitExprs() const':
/usr/include/clang/AST/ExprCXX.h:4849:20: error: missing template arguments before '(' token
 4849 |     return ArrayRef(getTrailingObjects<Expr *>(), NumUserSpecifiedExprs);
      |                    ^
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>'
/usr/include/clang/AST/ExprConcepts.h:216:66:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>':
/usr/include/clang/AST/ExprConcepts.h:216:66:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::concepts::Requirement::SubstitutionDiagnostic*, clang::TypeSourceInfo*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
/usr/include/clang/AST/ExprConcepts.h:336:56:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/clang/AST/ExprConcepts.h:336:56:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Expr*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
/usr/include/clang/AST/ExprConcepts.h:283:33:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>':
/usr/include/clang/AST/ExprConcepts.h:283:33:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::TemplateParameterList*, clang::concepts::Requirement::SubstitutionDiagnostic*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:29:
/usr/include/clang/AST/ExprObjC.h: At global scope:
/usr/include/clang/AST/ExprObjC.h:274:8: error: 'optional' in namespace 'std' does not name a template type
  274 |   std::optional<unsigned> NumExpansions;
      |        ^~~~~~~~
/usr/include/clang/AST/ExprObjC.h:274:3: note: 'std::optional' is only available from C++17 onwards
  274 |   std::optional<unsigned> NumExpansions;
      |   ^~~
/usr/include/clang/AST/ExprObjC.h: In member function 'clang::ObjCDictionaryElement clang::ObjCDictionaryLiteral::getKeyValueElement(unsigned int) const':
/usr/include/clang/AST/ExprObjC.h:365:42: error: 'nullopt' is not a member of 'std'
  365 |                                     std::nullopt};
      |                                          ^~~~~~~
/usr/include/clang/AST/ExprObjC.h:365:42: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/ExprObjC.h:365:49: error: too many initializers for 'clang::ObjCDictionaryElement'
  365 |                                     std::nullopt};
      |                                                 ^
/usr/include/clang/AST/ExprObjC.h:371:16: error: 'struct clang::ObjCDictionaryElement' has no member named 'NumExpansions'
  371 |         Result.NumExpansions = Expansion.NumExpansionsPlusOne - 1;
      |                ^~~~~~~~~~~~~
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>'
/usr/include/clang/AST/ExprObjC.h:645:65:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>':
/usr/include/clang/AST/ExprObjC.h:645:65:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::Stmt*, const clang::Type*, clang::ObjCInterfaceDecl*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/AST/ExprObjC.h: In member function 'clang::SourceLocation clang::ObjCMessageExpr::getSelectorLoc(unsigned int) const':
/usr/include/clang/AST/ExprObjC.h:1420:25: error: missing template arguments before '(' token
 1420 |           llvm::ArrayRef(const_cast<Expr **>(getArgs()), getNumArgs()),
      |                         ^
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:30:
/usr/include/clang/AST/ExprOpenMP.h: In member function 'llvm::ArrayRef<clang::Expr*> clang::OMPArrayShapingExpr::getDimensions() const':
/usr/include/clang/AST/ExprOpenMP.h:205:26: error: missing template arguments before '(' token
  205 |     return llvm::ArrayRef(getTrailingObjects<Expr *>(), NumDims);
      |                          ^
/usr/include/clang/AST/ExprOpenMP.h: In member function 'llvm::ArrayRef<clang::SourceRange> clang::OMPArrayShapingExpr::getBracketsRanges() const':
/usr/include/clang/AST/ExprOpenMP.h:210:26: error: missing template arguments before '(' token
  210 |     return llvm::ArrayRef(getTrailingObjects<SourceRange>(), NumDims);
      |                          ^
In file included from /usr/include/clang/AST/RecursiveASTVisitor.h:37:
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::OMPClause*> clang::OMPExecutableDirective::getClauses()':
/usr/include/clang/AST/StmtOpenMP.h:280:19: error: 'nullopt' is not a member of 'std'
  280 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/StmtOpenMP.h:280:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/StmtOpenMP.h: In static member function 'static llvm::iterator_range<clang::OMPExecutableDirective::used_clauses_child_iterator> clang::OMPExecutableDirective::used_clauses_children(llvm::ArrayRef<clang::OMPClause*>)':
/usr/include/clang/AST/StmtOpenMP.h:404:36: error: expected primary-expression before '(' token
  404 |         used_clauses_child_iterator(llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                                    ^
/usr/include/clang/AST/StmtOpenMP.h:404:51: error: missing template arguments before '(' token
  404 |         used_clauses_child_iterator(llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                                                   ^
/usr/include/clang/AST/StmtOpenMP.h:404:78: error: could not convert '{clang::OMPExecutableDirective::used_clauses_child_iterator(Clauses), <expression error>}' from '<brace-enclosed initializer list>' to 'llvm::iterator_range<clang::OMPExecutableDirective::used_clauses_child_iterator>'
  404 |         used_clauses_child_iterator(llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                                                                              ^
      |                                                                              |
      |                                                                              <brace-enclosed initializer list>
/usr/include/clang/AST/StmtOpenMP.h: In static member function 'static llvm::iterator_range<clang::OMPExecutableDirective::specific_clause_iterator<SpecificClause> > clang::OMPExecutableDirective::getClausesOfKind(llvm::ArrayRef<clang::OMPClause*>)':
/usr/include/clang/AST/StmtOpenMP.h:448:53: error: expected primary-expression before '(' token
  448 |             specific_clause_iterator<SpecificClause>(
      |                                                     ^
/usr/include/clang/AST/StmtOpenMP.h:449:31: error: missing template arguments before '(' token
  449 |                 llvm::ArrayRef(Clauses.end(), (size_t)0))};
      |                               ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::ArrayRef<clang::OMPClause*> clang::OMPExecutableDirective::clauses() const':
/usr/include/clang/AST/StmtOpenMP.h:575:19: error: 'nullopt' is not a member of 'std'
  575 |       return std::nullopt;
      |                   ^~~~~~~
/usr/include/clang/AST/StmtOpenMP.h:575:19: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getCounters()':
/usr/include/clang/AST/StmtOpenMP.h:1070:33: error: missing template arguments before '(' token
 1070 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getPrivateCounters()':
/usr/include/clang/AST/StmtOpenMP.h:1078:33: error: missing template arguments before '(' token
 1078 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getInits()':
/usr/include/clang/AST/StmtOpenMP.h:1086:33: error: missing template arguments before '(' token
 1086 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getUpdates()':
/usr/include/clang/AST/StmtOpenMP.h:1094:33: error: missing template arguments before '(' token
 1094 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getFinals()':
/usr/include/clang/AST/StmtOpenMP.h:1102:33: error: missing template arguments before '(' token
 1102 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getDependentCounters()':
/usr/include/clang/AST/StmtOpenMP.h:1110:33: error: missing template arguments before '(' token
 1110 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getDependentInits()':
/usr/include/clang/AST/StmtOpenMP.h:1118:33: error: missing template arguments before '(' token
 1118 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
/usr/include/clang/AST/StmtOpenMP.h: In member function 'llvm::MutableArrayRef<clang::Expr*> clang::OMPLoopDirective::getFinalsConditions()':
/usr/include/clang/AST/StmtOpenMP.h:1126:33: error: missing template arguments before '(' token
 1126 |     return llvm::MutableArrayRef(Storage, getLoopsNumber());
      |                                 ^
In file included from /usr/include/clang/Basic/FileEntry.h:17,
                 from /usr/include/clang/Basic/SourceManager.h:38,
                 from /builddir/build/BUILD/cvise-2.4.0/clang_delta/ClassTemplateToClass.cpp:19:
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:35:34: error: invalid use of '::'
   35 |   constexpr CustomizableOptional(std::nullopt_t) {}
      |                                  ^~~
/usr/include/clang/Basic/CustomizableOptional.h:35:51: error: expected ';' at end of member declaration
   35 |   constexpr CustomizableOptional(std::nullopt_t) {}
      |                                                   ^
      |                                                    ;
/usr/include/clang/Basic/CustomizableOptional.h:45:49: error: expected ')' before ',' token
   45 |   constexpr CustomizableOptional(std::in_place_t, ArgTypes &&...Args)
      |                                 ~               ^
      |                                                 )
/usr/include/clang/Basic/CustomizableOptional.h:49:45: error: 'optional' in namespace 'std' does not name a template type
   49 |   constexpr CustomizableOptional(const std::optional<T> &y)
      |                                             ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:49:40: note: 'std::optional' is only available from C++17 onwards
   49 |   constexpr CustomizableOptional(const std::optional<T> &y)
      |                                        ^~~
/usr/include/clang/Basic/CustomizableOptional.h:49:53: error: expected ',' or '...' before '<' token
   49 |   constexpr CustomizableOptional(const std::optional<T> &y)
      |                                                     ^
/usr/include/clang/Basic/CustomizableOptional.h:51:47: error: expected ')' before '<' token
   51 |   constexpr CustomizableOptional(std::optional<T> &&y)
      |                                 ~             ^
      |                                               )
/usr/include/clang/Basic/CustomizableOptional.h:102:26: error: 'optional' in namespace 'std' does not name a template type
  102 |   explicit operator std::optional<T> &() const & {
      |                          ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:102:21: note: 'std::optional' is only available from C++17 onwards
  102 |   explicit operator std::optional<T> &() const & {
      |                     ^~~
/usr/include/clang/Basic/CustomizableOptional.h:105:26: error: 'optional' in namespace 'std' does not name a template type
  105 |   explicit operator std::optional<T> &&() const && {
      |                          ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:105:21: note: 'std::optional' is only available from C++17 onwards
  105 |   explicit operator std::optional<T> &&() const && {
      |                     ^~~
/usr/include/clang/Basic/CustomizableOptional.h: In constructor 'constexpr clang::CustomizableOptional<T>::CustomizableOptional(const T&)':
/usr/include/clang/Basic/CustomizableOptional.h:37:61: error: 'in_place' is not a member of 'std'
   37 |   constexpr CustomizableOptional(const T &y) : Storage(std::in_place, y) {}
      |                                                             ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:37:61: note: 'std::in_place' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: In constructor 'constexpr clang::CustomizableOptional<T>::CustomizableOptional(T&&)':
/usr/include/clang/Basic/CustomizableOptional.h:41:22: error: 'in_place' is not a member of 'std'
   41 |       : Storage(std::in_place, std::move(y)) {}
      |                      ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:41:22: note: 'std::in_place' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: In constructor 'constexpr clang::CustomizableOptional<T>::CustomizableOptional(int)':
/usr/include/clang/Basic/CustomizableOptional.h:50:30: error: 'y' was not declared in this scope
   50 |       : CustomizableOptional(y ? *y : CustomizableOptional()) {}
      |                              ^
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:111:59: error: expected constructor, destructor, or type conversion before ';' token
  111 | CustomizableOptional(const T &) -> CustomizableOptional<T>;
      |                                                           ^
/usr/include/clang/Basic/CustomizableOptional.h:159:66: error: 'std::nullopt_t' has not been declared
  159 | constexpr bool operator==(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:164:16: error: declaration of 'operator==' as non-function
  164 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:164:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  164 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:164:43: error: expected primary-expression before 'const'
  164 | constexpr bool operator==(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:169:66: error: 'std::nullopt_t' has not been declared
  169 | constexpr bool operator!=(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator!=(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:170:22: error: 'nullopt' is not a member of 'std'
  170 |   return !(X == std::nullopt);
      |                      ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:170:22: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:174:16: error: declaration of 'operator!=' as non-function
  174 | constexpr bool operator!=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:174:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  174 | constexpr bool operator!=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:174:43: error: expected primary-expression before 'const'
  174 | constexpr bool operator!=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:179:64: error: 'std::nullopt_t' has not been declared
  179 | constexpr bool operator<(const CustomizableOptional<T> &, std::nullopt_t) {
      |                                                                ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:184:16: error: declaration of 'operator<' as non-function
  184 | constexpr bool operator<(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:184:31: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  184 | constexpr bool operator<(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                               ^~~~~~~~~
      |                               nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:184:42: error: expected primary-expression before 'const'
  184 | constexpr bool operator<(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                          ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:189:66: error: 'std::nullopt_t' has not been declared
  189 | constexpr bool operator<=(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator<=(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:190:17: error: 'nullopt' is not a member of 'std'
  190 |   return !(std::nullopt < X);
      |                 ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:190:17: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:194:16: error: declaration of 'operator<=' as non-function
  194 | constexpr bool operator<=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:194:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  194 | constexpr bool operator<=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:194:43: error: expected primary-expression before 'const'
  194 | constexpr bool operator<=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:199:65: error: 'std::nullopt_t' has not been declared
  199 | constexpr bool operator>(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                 ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator>(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:200:15: error: 'nullopt' is not a member of 'std'
  200 |   return std::nullopt < X;
      |               ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:200:15: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:204:16: error: declaration of 'operator>' as non-function
  204 | constexpr bool operator>(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:204:31: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  204 | constexpr bool operator>(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                               ^~~~~~~~~
      |                               nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:204:42: error: expected primary-expression before 'const'
  204 | constexpr bool operator>(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                          ^~~~~
/usr/include/clang/Basic/CustomizableOptional.h:209:66: error: 'std::nullopt_t' has not been declared
  209 | constexpr bool operator>=(const CustomizableOptional<T> &X, std::nullopt_t) {
      |                                                                  ^~~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h: In function 'constexpr bool clang::operator>=(const CustomizableOptional<T>&, int)':
/usr/include/clang/Basic/CustomizableOptional.h:210:15: error: 'nullopt' is not a member of 'std'
  210 |   return std::nullopt <= X;
      |               ^~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:210:15: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/CustomizableOptional.h: At global scope:
/usr/include/clang/Basic/CustomizableOptional.h:214:16: error: declaration of 'operator>=' as non-function
  214 | constexpr bool operator>=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                ^~~~~~~~
/usr/include/clang/Basic/CustomizableOptional.h:214:32: error: 'nullopt_t' is not a member of 'std'; did you mean 'nullptr_t'?
  214 | constexpr bool operator>=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                ^~~~~~~~~
      |                                nullptr_t
/usr/include/clang/Basic/CustomizableOptional.h:214:43: error: expected primary-expression before 'const'
  214 | constexpr bool operator>=(std::nullopt_t, const CustomizableOptional<T> &X) {
      |                                           ^~~~~
In file included from /usr/include/clang/Basic/FileEntry.h:18:
/usr/include/clang/Basic/DirectoryEntry.h:134:51: error: expected ')' before ',' token
  134 |   explicit MapEntryOptionalStorage(std::in_place_t, ArgTypes &&...Args)
      |                                   ~               ^
      |                                                   )
/usr/include/clang/Basic/DirectoryEntry.h:180:43: error: expected ')' before ',' token
  180 |   explicit OptionalStorage(std::in_place_t, ArgTypes &&...Args)
      |                           ~               ^
      |                                           )
/usr/include/clang/Basic/DirectoryEntry.h:181:38: error: expected unqualified-id before ',' token
  181 |       : StorageImpl(std::in_place_t{}, std::forward<ArgTypes>(Args)...) {}
      |                                      ^
/usr/include/clang/Basic/DirectoryEntry.h:269:56: error: invalid use of '::'
  269 |   OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr(std::nullopt_t) {}
      |                                                        ^~~
/usr/include/clang/Basic/DirectoryEntry.h:269:73: error: expected ';' at end of member declaration
  269 |   OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr(std::nullopt_t) {}
      |                                                                         ^
      |                                                                          ;
/usr/include/clang/Basic/DirectoryEntry.h:277:18: error: 'std::nullopt_t' has not been declared
  277 |   operator=(std::nullopt_t) {
      |                  ^~~~~~~~~
/usr/include/clang/Basic/DirectoryEntry.h: In member function 'clang::OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr& clang::OptionalDirectoryEntryRefDegradesToDirectoryEntryPtr::operator=(int)':
/usr/include/clang/Basic/DirectoryEntry.h:278:47: error: 'nullopt' is not a member of 'std'
  278 |     OptionalDirectoryEntryRef::operator=(std::nullopt);
      |                                               ^~~~~~~
/usr/include/clang/Basic/DirectoryEntry.h:278:47: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'struct llvm::TypesAreDistinct<clang::FileEntry*, const void*>':
/usr/include/llvm/ADT/PointerUnion.h:119:43:   required from 'class llvm::PointerUnion<clang::FileEntry*, const void*>'
/usr/include/clang/Basic/FileEntry.h:124:51:   required from here
/usr/include/llvm/ADT/STLExtras.h:170:8: error: incomplete type 'llvm::detail::TypesAreDistinct<clang::FileEntry*, const void*>' used in nested name specifier
  170 | struct TypesAreDistinct
      |        ^~~~~~~~~~~~~~~~
/usr/include/llvm/ADT/PointerUnion.h: In instantiation of 'class llvm::PointerUnion<clang::FileEntry*, const void*>':
/usr/include/clang/Basic/FileEntry.h:124:51:   required from here
/usr/include/llvm/ADT/PointerUnion.h:119:43: error: 'value' is not a member of 'llvm::TypesAreDistinct<clang::FileEntry*, const void*>'
  119 |   static_assert(TypesAreDistinct<PTs...>::value,
      |                                           ^~~~~
/usr/include/clang/Basic/FileEntry.h: At global scope:
/usr/include/clang/Basic/FileEntry.h:221:43: error: expected ')' before ',' token
  221 |   explicit OptionalStorage(std::in_place_t, ArgTypes &&...Args)
      |                           ~               ^
      |                                           )
/usr/include/clang/Basic/FileEntry.h:222:38: error: expected unqualified-id before ',' token
  222 |       : StorageImpl(std::in_place_t{}, std::forward<ArgTypes>(Args)...) {}
      |                                      ^
/usr/include/clang/Basic/FileEntry.h:305:46: error: invalid use of '::'
  305 |   OptionalFileEntryRefDegradesToFileEntryPtr(std::nullopt_t) {}
      |                                              ^~~
/usr/include/clang/Basic/FileEntry.h:305:63: error: expected ';' at end of member declaration
  305 |   OptionalFileEntryRefDegradesToFileEntryPtr(std::nullopt_t) {}
      |                                                               ^
      |                                                                ;
/usr/include/clang/Basic/FileEntry.h:311:62: error: 'std::nullopt_t' has not been declared
  311 |   OptionalFileEntryRefDegradesToFileEntryPtr &operator=(std::nullopt_t) {
      |                                                              ^~~~~~~~~
/usr/include/clang/Basic/FileEntry.h: In member function 'clang::OptionalFileEntryRefDegradesToFileEntryPtr& clang::OptionalFileEntryRefDegradesToFileEntryPtr::operator=(int)':
/usr/include/clang/Basic/FileEntry.h:312:42: error: 'nullopt' is not a member of 'std'
  312 |     OptionalFileEntryRef::operator=(std::nullopt);
      |                                          ^~~~~~~
/usr/include/clang/Basic/FileEntry.h:312:42: note: 'std::nullopt' is only available from C++17 onwards
In file included from /usr/include/llvm/Support/FormatProviders.h:21,
                 from /usr/include/llvm/Support/Chrono.h:13,
                 from /usr/include/llvm/Support/FileSystem.h:33,
                 from /usr/include/clang/Basic/FileManager.h:29,
                 from /usr/include/clang/Basic/SourceManager.h:39:
/usr/include/llvm/Support/NativeFormatting.h: At global scope:
/usr/include/llvm/Support/NativeFormatting.h:41:21: error: 'std::optional' has not been declared
   41 |                std::optional<size_t> Width = std::nullopt);
      |                     ^~~~~~~~
/usr/include/llvm/Support/NativeFormatting.h:41:29: error: expected ',' or '...' before '<' token
   41 |                std::optional<size_t> Width = std::nullopt);
      |                             ^
/usr/include/llvm/Support/NativeFormatting.h:43:24: error: 'std::optional' has not been declared
   43 |                   std::optional<size_t> Precision = std::nullopt);
      |                        ^~~~~~~~
/usr/include/llvm/Support/NativeFormatting.h:43:32: error: expected ',' or '...' before '<' token
   43 |                   std::optional<size_t> Precision = std::nullopt);
      |                                ^
/usr/include/llvm/Support/FormatProviders.h:32:17: error: 'is_one_of' was not declared in this scope; did you mean 'none_of'?
   32 |           bool, is_one_of<T, uint8_t, int16_t, uint16_t, int32_t, uint32_t,
      |                 ^~~~~~~~~
      |                 none_of
/usr/include/llvm/Support/FormatProviders.h:34:56: error: wrong number of template arguments (15, should be 2)
   34 |                           long long, unsigned long long>::value> {};
      |                                                        ^
/usr/include/c++/13/type_traits:62:12: note: provided for 'template<class _Tp, _Tp __v> struct std::integral_constant'
   62 |     struct integral_constant
      |            ^~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:34:57: error: expected '{' before '::' token
   34 |                           long long, unsigned long long>::value> {};
      |                                                         ^~
/usr/include/llvm/Support/FormatProviders.h:43:37: error: 'is_one_of' was not declared in this scope; did you mean 'none_of'?
   43 |                                     is_one_of<T, char *, const char *>::value> {
      |                                     ^~~~~~~~~
      |                                     none_of
/usr/include/llvm/Support/FormatProviders.h:43:70: error: wrong number of template arguments (4, should be 2)
   43 |                                     is_one_of<T, char *, const char *>::value> {
      |                                                                      ^
/usr/include/c++/13/type_traits:62:12: note: provided for 'template<class _Tp, _Tp __v> struct std::integral_constant'
   62 |     struct integral_constant
      |            ^~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:43:71: error: expected '{' before '::' token
   43 |                                     is_one_of<T, char *, const char *>::value> {
      |                                                                       ^~
/usr/include/llvm/Support/FormatProviders.h:62:15: error: 'optional' in namespace 'std' does not name a template type
   62 |   static std::optional<size_t> parseNumericPrecision(StringRef Str) {
      |               ^~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:62:10: note: 'std::optional' is only available from C++17 onwards
   62 |   static std::optional<size_t> parseNumericPrecision(StringRef Str) {
      |          ^~~
/usr/include/llvm/Support/FormatProviders.h: In instantiation of 'struct llvm::detail::use_pointer_formatter<std::__cxx11::basic_string<char> >':
/usr/include/llvm/Support/FormatProviders.h:219:33:   recursively required by substitution of 'template<class T> struct llvm::format_provider<T, typename std::enable_if<llvm::detail::use_pointer_formatter<T>::value, void>::type> [with T = std::__cxx11::basic_string<char>]'
/usr/include/llvm/Support/FormatProviders.h:219:33:   required from here
/usr/include/llvm/Support/FormatProviders.h:54:63: error: incomplete type 'llvm::detail::is_cstring<std::__cxx11::basic_string<char> >' used in nested name specifier
   54 |                                               !is_cstring<T>::value> {};
      |                                                               ^~~~~
/usr/include/llvm/Support/FormatProviders.h: In instantiation of 'struct llvm::detail::use_pointer_formatter<int>':
/usr/include/llvm/Support/FormatProviders.h:241:27:   recursively required by substitution of 'template<class T> struct llvm::format_provider<T, typename std::enable_if<llvm::detail::use_pointer_formatter<T>::value, void>::type> [with T = int]'
/usr/include/llvm/Support/FormatProviders.h:241:27:   required from here
/usr/include/llvm/Support/FormatProviders.h:54:63: error: incomplete type 'llvm::detail::is_cstring<int>' used in nested name specifier
/usr/include/llvm/Support/FormatProviders.h: In static member function 'static void llvm::format_provider<T, typename std::enable_if<llvm::detail::use_char_formatter<T>::value, void>::type>::format(const char&, llvm::raw_ostream&, llvm::StringRef)':
/usr/include/llvm/Support/FormatProviders.h:241:29: error: 'format' is not a member of 'llvm::format_provider<int>'
  241 |       format_provider<int>::format(X, Stream, Style);
      |                             ^~~~~~
/usr/include/llvm/Support/FormatProviders.h: In static member function 'static void llvm::format_provider<T, typename std::enable_if<llvm::detail::use_double_formatter<T>::value, void>::type>::format(const T&, llvm::raw_ostream&, llvm::StringRef)':
/usr/include/llvm/Support/FormatProviders.h:315:10: error: 'optional' is not a member of 'std'
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |          ^~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:315:10: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/FormatProviders.h:315:25: error: expected primary-expression before '>' token
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |                         ^
/usr/include/llvm/Support/FormatProviders.h:315:27: error: 'Precision' was not declared in this scope
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |                           ^~~~~~~~~
/usr/include/llvm/Support/FormatProviders.h:315:39: error: there are no arguments to 'parseNumericPrecision' that depend on a template parameter, so a declaration of 'parseNumericPrecision' must be available [-fpermissive]
  315 |     std::optional<size_t> Precision = parseNumericPrecision(Style);
      |                                       ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/Error.h:18,
                 from /usr/include/llvm/Support/FileSystem.h:34:
/usr/include/llvm/ADT/StringExtras.h: In function 'std::string llvm::toString(const APInt&, unsigned int, bool, bool)':
/usr/include/llvm/ADT/StringExtras.h:322:29: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef)'
  322 |   return std::string(S.str());
      |                             ^
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/ADT/StringExtras.h:322:29: note:   candidate expects 3 arguments, 1 provided
  322 |   return std::string(S.str());
      |                             ^
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/llvm/Support/Error.h:26:
/usr/include/llvm/Support/Format.h: At global scope:
/usr/include/llvm/Support/Format.h:83:22: error: 'is_scalar_v' is not a member of 'std'; did you mean 'is_scalar'?
   83 |   static_assert(std::is_scalar_v<Arg>,
      |                      ^~~~~~~~~~~
      |                      is_scalar
/usr/include/llvm/Support/Format.h:83:37: error: expected primary-expression before '>' token
   83 |   static_assert(std::is_scalar_v<Arg>,
      |                                     ^
/usr/include/llvm/Support/Format.h:83:38: error: expected primary-expression before ',' token
   83 |   static_assert(std::is_scalar_v<Arg>,
      |                                      ^
/usr/include/llvm/Support/Format.h:219:8: error: 'optional' in namespace 'std' does not name a template type
  219 |   std::optional<uint64_t> FirstByteOffset;
      |        ^~~~~~~~
/usr/include/llvm/Support/Format.h:219:3: note: 'std::optional' is only available from C++17 onwards
  219 |   std::optional<uint64_t> FirstByteOffset;
      |   ^~~
/usr/include/llvm/Support/Format.h:228:57: error: 'std::optional' has not been declared
  228 |   FormattedBytes(ArrayRef<uint8_t> B, uint32_t IL, std::optional<uint64_t> O,
      |                                                         ^~~~~~~~
/usr/include/llvm/Support/Format.h:228:65: error: expected ',' or '...' before '<' token
  228 |   FormattedBytes(ArrayRef<uint8_t> B, uint32_t IL, std::optional<uint64_t> O,
      |                                                                 ^
/usr/include/llvm/Support/Format.h: In constructor 'llvm::FormattedBytes::FormattedBytes(llvm::ArrayRef<unsigned char>, uint32_t, int)':
/usr/include/llvm/Support/Format.h:230:19: error: class 'llvm::FormattedBytes' does not have any field named 'FirstByteOffset'
  230 |       : Bytes(B), FirstByteOffset(O), IndentLevel(IL), NumPerLine(NPL),
      |                   ^~~~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:230:35: error: 'O' was not declared in this scope
  230 |       : Bytes(B), FirstByteOffset(O), IndentLevel(IL), NumPerLine(NPL),
      |                                   ^
/usr/include/llvm/Support/Format.h:230:67: error: 'NPL' was not declared in this scope
  230 |       : Bytes(B), FirstByteOffset(O), IndentLevel(IL), NumPerLine(NPL),
      |                                                                   ^~~
/usr/include/llvm/Support/Format.h:231:23: error: 'BGS' was not declared in this scope
  231 |         ByteGroupSize(BGS), Upper(U), ASCII(A) {
      |                       ^~~
/usr/include/llvm/Support/Format.h:231:35: error: 'U' was not declared in this scope
  231 |         ByteGroupSize(BGS), Upper(U), ASCII(A) {
      |                                   ^
/usr/include/llvm/Support/Format.h:231:45: error: 'A' was not declared in this scope
  231 |         ByteGroupSize(BGS), Upper(U), ASCII(A) {
      |                                             ^
/usr/include/llvm/Support/Format.h: At global scope:
/usr/include/llvm/Support/Format.h:240:19: error: 'std::optional' has not been declared
  240 |              std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                   ^~~~~~~~
/usr/include/llvm/Support/Format.h:240:27: error: expected ',' or '...' before '<' token
  240 |              std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                           ^
/usr/include/llvm/Support/Format.h: In function 'llvm::FormattedBytes llvm::format_bytes(ArrayRef<unsigned char>, int)':
/usr/include/llvm/Support/Format.h:243:32: error: 'IndentLevel' was not declared in this scope
  243 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                ^~~~~~~~~~~
/usr/include/llvm/Support/Format.h:243:45: error: 'FirstByteOffset' was not declared in this scope
  243 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                             ^~~~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:243:62: error: 'NumPerLine' was not declared in this scope
  243 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                                              ^~~~~~~~~~
/usr/include/llvm/Support/Format.h:244:25: error: 'ByteGroupSize' was not declared in this scope
  244 |                         ByteGroupSize, Upper, false);
      |                         ^~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:244:40: error: 'Upper' was not declared in this scope; did you mean 'llvm::HexPrintStyle::Upper'?
  244 |                         ByteGroupSize, Upper, false);
      |                                        ^~~~~
      |                                        llvm::HexPrintStyle::Upper
/usr/include/llvm/Support/NativeFormatting.h:22:28: note: 'llvm::HexPrintStyle::Upper' declared here
   22 | enum class HexPrintStyle { Upper, Lower, PrefixUpper, PrefixLower };
      |                            ^~~~~
/usr/include/llvm/Support/Format.h: At global scope:
/usr/include/llvm/Support/Format.h:249:30: error: 'std::optional' has not been declared
  249 |                         std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                              ^~~~~~~~
/usr/include/llvm/Support/Format.h:249:38: error: expected ',' or '...' before '<' token
  249 |                         std::optional<uint64_t> FirstByteOffset = std::nullopt,
      |                                      ^
/usr/include/llvm/Support/Format.h: In function 'llvm::FormattedBytes llvm::format_bytes_with_ascii(ArrayRef<unsigned char>, int)':
/usr/include/llvm/Support/Format.h:252:32: error: 'IndentLevel' was not declared in this scope
  252 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                ^~~~~~~~~~~
/usr/include/llvm/Support/Format.h:252:45: error: 'FirstByteOffset' was not declared in this scope
  252 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                             ^~~~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:252:62: error: 'NumPerLine' was not declared in this scope
  252 |   return FormattedBytes(Bytes, IndentLevel, FirstByteOffset, NumPerLine,
      |                                                              ^~~~~~~~~~
/usr/include/llvm/Support/Format.h:253:25: error: 'ByteGroupSize' was not declared in this scope
  253 |                         ByteGroupSize, Upper, true);
      |                         ^~~~~~~~~~~~~
/usr/include/llvm/Support/Format.h:253:40: error: 'Upper' was not declared in this scope; did you mean 'llvm::HexPrintStyle::Upper'?
  253 |                         ByteGroupSize, Upper, true);
      |                                        ^~~~~
      |                                        llvm::HexPrintStyle::Upper
/usr/include/llvm/Support/NativeFormatting.h:22:28: note: 'llvm::HexPrintStyle::Upper' declared here
   22 | enum class HexPrintStyle { Upper, Lower, PrefixUpper, PrefixLower };
      |                            ^~~~~
/usr/include/llvm/Support/Error.h: At global scope:
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:59: error: template argument 1 is invalid
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                                           ^
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:60: error: template argument 1 is invalid
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                                            ^~
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:512:60: error: template argument 1 is invalid
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                                                            ^~
/usr/include/llvm/Support/Error.h:512:17: error: 'std::enable_if_t' is not a type
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                 ^~~~~~~~~~~
/usr/include/llvm/Support/Error.h:512:28: error: expected ',' or '...' before '<' token
  512 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr)
      |                            ^
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:59: error: template argument 1 is invalid
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                           ^
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:60: error: template argument 1 is invalid
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                            ^~
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:34: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                  ^~~~~~~~~~~~~~~~
      |                                  is_convertible
/usr/include/llvm/Support/Error.h:530:60: error: template argument 1 is invalid
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                            ^~
/usr/include/llvm/Support/Error.h:530:17: error: 'std::enable_if_t' is not a type
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                 ^~~~~~~~~~~
/usr/include/llvm/Support/Error.h:530:28: error: expected ',' or '...' before '<' token
  530 |            std::enable_if_t<std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                            ^
/usr/include/llvm/Support/Error.h:539:30: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                              ^~~~~~~~~~~~~~~~
      |                              is_convertible
/usr/include/llvm/Support/Error.h:539:55: error: template argument 1 is invalid
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                       ^
/usr/include/llvm/Support/Error.h:539:30: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                              ^~~~~~~~~~~~~~~~
      |                              is_convertible
/usr/include/llvm/Support/Error.h:539:56: error: template argument 1 is invalid
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                        ^~
/usr/include/llvm/Support/Error.h:539:30: error: 'is_convertible_v' is not a member of 'std'; did you mean 'is_convertible'?
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                              ^~~~~~~~~~~~~~~~
      |                              is_convertible
/usr/include/llvm/Support/Error.h:539:56: error: template argument 1 is invalid
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                                                        ^~
/usr/include/llvm/Support/Error.h:539:12: error: 'std::enable_if_t' is not a type
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |            ^~~~~~~~~~~
/usr/include/llvm/Support/Error.h:539:23: error: expected ',' or '...' before '<' token
  539 |       std::enable_if_t<!std::is_convertible_v<OtherT, T>> * = nullptr) {
      |                       ^
/usr/include/llvm/Support/Error.h:537:12: error: 'template<class T> template<class OtherT> llvm::Expected<T>::Expected(llvm::Expected<OtherT>&&, int)' cannot be overloaded with 'template<class T> template<class OtherT> llvm::Expected<T>::Expected(llvm::Expected<OtherT>&&, int)'
  537 |   explicit Expected(
      |            ^~~~~~~~
/usr/include/llvm/Support/Error.h:529:3: note: previous declaration 'template<class T> template<class OtherT> llvm::Expected<T>::Expected(llvm::Expected<OtherT>&&, int)'
  529 |   Expected(Expected<OtherT> &&Other,
      |   ^~~~~~~~
/usr/include/llvm/Support/Error.h:1054:28: error: 'optional' in namespace 'std' does not name a template type
 1054 | template <typename T> std::optional<T> expectedToOptional(Expected<T> &&E) {
      |                            ^~~~~~~~
/usr/include/llvm/Support/Error.h:1054:23: note: 'std::optional' is only available from C++17 onwards
 1054 | template <typename T> std::optional<T> expectedToOptional(Expected<T> &&E) {
      |                       ^~~
/usr/include/llvm/Support/Error.h:1061:28: error: 'optional' in namespace 'std' does not name a template type
 1061 | template <typename T> std::optional<T> expectedToStdOptional(Expected<T> &&E) {
      |                            ^~~~~~~~
/usr/include/llvm/Support/Error.h:1061:23: note: 'std::optional' is only available from C++17 onwards
 1061 | template <typename T> std::optional<T> expectedToStdOptional(Expected<T> &&E) {
      |                       ^~~
/usr/include/llvm/Support/Error.h:1301:34: error: 'std::optional' has not been declared
 1301 |   FileError(const Twine &F, std::optional<size_t> LineNum,
      |                                  ^~~~~~~~
/usr/include/llvm/Support/Error.h:1301:42: error: expected ',' or '...' before '<' token
 1301 |   FileError(const Twine &F, std::optional<size_t> LineNum,
      |                                          ^
/usr/include/llvm/Support/Error.h:1309:43: error: 'std::optional' has not been declared
 1309 |   static Error build(const Twine &F, std::optional<size_t> Line, Error E) {
      |                                           ^~~~~~~~
/usr/include/llvm/Support/Error.h:1309:51: error: expected ',' or '...' before '<' token
 1309 |   static Error build(const Twine &F, std::optional<size_t> Line, Error E) {
      |                                                   ^
/usr/include/llvm/Support/Error.h:1321:8: error: 'optional' in namespace 'std' does not name a template type
 1321 |   std::optional<size_t> Line;
      |        ^~~~~~~~
/usr/include/llvm/Support/Error.h:1321:3: note: 'std::optional' is only available from C++17 onwards
 1321 |   std::optional<size_t> Line;
      |   ^~~
/usr/include/llvm/Support/Error.h: In member function 'virtual void llvm::FileError::log(llvm::raw_ostream&) const':
/usr/include/llvm/Support/Error.h:1279:9: error: 'Line' was not declared in this scope
 1279 |     if (Line)
      |         ^~~~
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/llvm/Support/Error.h:28:
/usr/include/llvm/Support/Error.h: In constructor 'llvm::FileError::FileError(const llvm::Twine&, int)':
/usr/include/llvm/Support/Error.h:1303:5: error: 'E' was not declared in this scope
 1303 |     assert(E && "Cannot create FileError from Error success value.");
      |     ^~~~~~
/usr/include/llvm/Support/Error.h:1306:5: error: 'Line' was not declared in this scope
 1306 |     Line = std::move(LineNum);
      |     ^~~~
/usr/include/llvm/Support/Error.h:1306:22: error: 'LineNum' was not declared in this scope
 1306 |     Line = std::move(LineNum);
      |                      ^~~~~~~
/usr/include/llvm/Support/Error.h: In static member function 'static llvm::Error llvm::FileError::build(const llvm::Twine&, int)':
/usr/include/llvm/Support/Error.h:1311:31: error: 'E' was not declared in this scope
 1311 |     handleAllErrors(std::move(E),
      |                               ^
/usr/include/llvm/Support/Error.h:1317:53: error: 'Line' was not declared in this scope
 1317 |         std::unique_ptr<FileError>(new FileError(F, Line, std::move(Payload))));
      |                                                     ^~~~
/usr/include/llvm/Support/Error.h: In function 'llvm::Error llvm::createFileError(const Twine&, Error)':
/usr/include/llvm/Support/Error.h:1328:35: error: 'optional' is not a member of 'std'
 1328 |   return FileError::build(F, std::optional<size_t>(), std::move(E));
      |                                   ^~~~~~~~
/usr/include/llvm/Support/Error.h:1328:35: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Error.h:1328:50: error: expected primary-expression before '>' token
 1328 |   return FileError::build(F, std::optional<size_t>(), std::move(E));
      |                                                  ^
/usr/include/llvm/Support/Error.h:1328:52: error: expected primary-expression before ')' token
 1328 |   return FileError::build(F, std::optional<size_t>(), std::move(E));
      |                                                    ^
/usr/include/llvm/Support/Error.h: In function 'llvm::Error llvm::createFileError(const Twine&, size_t, Error)':
/usr/include/llvm/Support/Error.h:1334:35: error: 'optional' is not a member of 'std'
 1334 |   return FileError::build(F, std::optional<size_t>(Line), std::move(E));
      |                                   ^~~~~~~~
/usr/include/llvm/Support/Error.h:1334:35: note: 'std::optional' is only available from C++17 onwards
/usr/include/llvm/Support/Error.h:1334:50: error: expected primary-expression before '>' token
 1334 |   return FileError::build(F, std::optional<size_t>(Line), std::move(E));
      |                                                  ^
In file included from /usr/include/llvm/Support/SourceMgr.h:19,
                 from /usr/include/llvm/Support/VirtualFileSystem.h:26,
                 from /usr/include/clang/Basic/FileManager.h:30:
/usr/include/llvm/Support/MemoryBuffer.h: At global scope:
/usr/include/llvm/Support/MemoryBuffer.h:100:16: error: 'std::optional' has not been declared
  100 |           std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:100:24: error: expected ',' or '...' before '<' token
  100 |           std::optional<Align> Alignment = std::nullopt);
      |                        ^
/usr/include/llvm/Support/MemoryBuffer.h:114:25: error: 'std::optional' has not been declared
  114 |                    std::optional<Align> Alignment = std::nullopt);
      |                         ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:114:33: error: expected ',' or '...' before '<' token
  114 |                    std::optional<Align> Alignment = std::nullopt);
      |                                 ^
/usr/include/llvm/Support/MemoryBuffer.h:128:20: error: 'std::optional' has not been declared
  128 |               std::optional<Align> Alignment = std::nullopt);
      |                    ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:128:28: error: expected ',' or '...' before '<' token
  128 |               std::optional<Align> Alignment = std::nullopt);
      |                            ^
/usr/include/llvm/Support/MemoryBuffer.h:152:23: error: 'std::optional' has not been declared
  152 |                  std::optional<Align> Alignment = std::nullopt);
      |                       ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:152:31: error: expected ',' or '...' before '<' token
  152 |                  std::optional<Align> Alignment = std::nullopt);
      |                               ^
/usr/include/llvm/Support/MemoryBuffer.h:158:21: error: 'std::optional' has not been declared
  158 |                std::optional<Align> Alignment = std::nullopt);
      |                     ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:158:29: error: expected ',' or '...' before '<' token
  158 |                std::optional<Align> Alignment = std::nullopt);
      |                             ^
/usr/include/llvm/Support/MemoryBuffer.h:100:11: error: default argument missing for parameter 5 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getFile(const llvm::Twine&, bool, bool, bool, int)'
  100 |           std::optional<Align> Alignment = std::nullopt);
      |           ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:98:39: note: ...following parameter 2 which has a default argument
   98 |   getFile(const Twine &Filename, bool IsText = false,
      |                                  ~~~~~^~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:114:20: error: default argument missing for parameter 6 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getOpenFileSlice(llvm::sys::fs::file_t, const llvm::Twine&, uint64_t, int64_t, bool, int)'
  114 |                    std::optional<Align> Alignment = std::nullopt);
      |                    ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:113:41: note: ...following parameter 5 which has a default argument
  113 |                    int64_t Offset, bool IsVolatile = false,
      |                                    ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:128:15: error: default argument missing for parameter 6 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getOpenFile(llvm::sys::fs::file_t, const llvm::Twine&, uint64_t, bool, bool, int)'
  128 |               std::optional<Align> Alignment = std::nullopt);
      |               ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:127:20: note: ...following parameter 4 which has a default argument
  127 |               bool RequiresNullTerminator = true, bool IsVolatile = false,
      |               ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:152:18: error: default argument missing for parameter 4 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getFileOrSTDIN(const llvm::Twine&, bool, bool, int)'
  152 |                  std::optional<Align> Alignment = std::nullopt);
      |                  ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:150:46: note: ...following parameter 2 which has a default argument
  150 |   getFileOrSTDIN(const Twine &Filename, bool IsText = false,
      |                                         ~~~~~^~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:158:16: error: default argument missing for parameter 5 of 'static llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer> > llvm::MemoryBuffer::getFileSlice(const llvm::Twine&, uint64_t, uint64_t, bool, int)'
  158 |                std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:157:21: note: ...following parameter 4 which has a default argument
  157 |                bool IsVolatile = false,
      |                ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:204:16: error: 'std::optional' has not been declared
  204 |           std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:204:24: error: expected ',' or '...' before '<' token
  204 |           std::optional<Align> Alignment = std::nullopt);
      |                        ^
/usr/include/llvm/Support/MemoryBuffer.h:210:21: error: 'std::optional' has not been declared
  210 |                std::optional<Align> Alignment = std::nullopt);
      |                     ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:210:29: error: expected ',' or '...' before '<' token
  210 |                std::optional<Align> Alignment = std::nullopt);
      |                             ^
/usr/include/llvm/Support/MemoryBuffer.h:220:30: error: 'std::optional' has not been declared
  220 |                         std::optional<Align> Alignment = std::nullopt);
      |                              ^~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:220:38: error: expected ',' or '...' before '<' token
  220 |                         std::optional<Align> Alignment = std::nullopt);
      |                                      ^
/usr/include/llvm/Support/MemoryBuffer.h:204:11: error: default argument missing for parameter 3 of 'static llvm::ErrorOr<std::unique_ptr<llvm::WritableMemoryBuffer> > llvm::WritableMemoryBuffer::getFile(const llvm::Twine&, bool, int)'
  204 |           std::optional<Align> Alignment = std::nullopt);
      |           ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:203:39: note: ...following parameter 2 which has a default argument
  203 |   getFile(const Twine &Filename, bool IsVolatile = false,
      |                                  ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:210:16: error: default argument missing for parameter 5 of 'static llvm::ErrorOr<std::unique_ptr<llvm::WritableMemoryBuffer> > llvm::WritableMemoryBuffer::getFileSlice(const llvm::Twine&, uint64_t, uint64_t, bool, int)'
  210 |                std::optional<Align> Alignment = std::nullopt);
      |                ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:209:21: note: ...following parameter 4 which has a default argument
  209 |                bool IsVolatile = false,
      |                ~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:220:25: error: default argument missing for parameter 3 of 'static std::unique_ptr<llvm::WritableMemoryBuffer> llvm::WritableMemoryBuffer::getNewUninitMemBuffer(size_t, const llvm::Twine&, int)'
  220 |                         std::optional<Align> Alignment = std::nullopt);
      |                         ^~~~~~~~~~~~~
/usr/include/llvm/Support/MemoryBuffer.h:219:51: note: ...following parameter 2 which has a default argument
  219 |   getNewUninitMemBuffer(size_t Size, const Twine &BufferName = "",
      |                                      ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
In file included from /usr/include/llvm/Support/SourceMgr.h:20:
/usr/include/llvm/Support/SMLoc.h:53:11: error: invalid use of '::'
   53 |   SMRange(std::nullopt_t) {}
      |           ^~~
/usr/include/llvm/Support/SMLoc.h:53:28: error: expected ';' at end of member declaration
   53 |   SMRange(std::nullopt_t) {}
      |                            ^
      |                             ;
/usr/include/llvm/Support/SourceMgr.h: In constructor 'llvm::SMDiagnostic::SMDiagnostic(llvm::StringRef, llvm::SourceMgr::DiagKind, llvm::StringRef)':
/usr/include/llvm/Support/SourceMgr.h:297:9: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |         ^~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/SourceMgr.h:297:9: note:   candidate expects 3 arguments, 1 provided
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |         ^~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/SourceMgr.h:297:66: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |                                                                  ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/SourceMgr.h:297:66: note:   candidate expects 3 arguments, 1 provided
  297 |       : Filename(filename), LineNo(-1), ColumnNo(-1), Kind(Knd), Message(Msg) {}
      |                                                                  ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/VirtualFileSystem.h: At global scope:
/usr/include/llvm/Support/VirtualFileSystem.h:512:21: error: 'std::optional' has not been declared
  512 |                std::optional<uint32_t> User, std::optional<uint32_t> Group,
      |                     ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:512:29: error: expected ',' or '...' before '<' token
  512 |                std::optional<uint32_t> User, std::optional<uint32_t> Group,
      |                             ^
/usr/include/llvm/Support/VirtualFileSystem.h:536:21: error: 'std::optional' has not been declared
  536 |                std::optional<uint32_t> User = std::nullopt,
      |                     ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:536:29: error: expected ',' or '...' before '<' token
  536 |                std::optional<uint32_t> User = std::nullopt,
      |                             ^
/usr/include/llvm/Support/VirtualFileSystem.h:534:8: error: 'bool llvm::vfs::InMemoryFileSystem::addFile(const llvm::Twine&, time_t, std::unique_ptr<llvm::MemoryBuffer>, int)' cannot be overloaded with 'bool llvm::vfs::InMemoryFileSystem::addFile(const llvm::Twine&, time_t, std::unique_ptr<llvm::MemoryBuffer>, int)'
  534 |   bool addFile(const Twine &Path, time_t ModificationTime,
      |        ^~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:510:8: note: previous declaration 'bool llvm::vfs::InMemoryFileSystem::addFile(const llvm::Twine&, time_t, std::unique_ptr<llvm::MemoryBuffer>, int)'
  510 |   bool addFile(const Twine &Path, time_t ModificationTime,
      |        ^~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:567:24: error: 'std::optional' has not been declared
  567 |                   std::optional<uint32_t> User = std::nullopt,
      |                        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:567:32: error: expected ',' or '...' before '<' token
  567 |                   std::optional<uint32_t> User = std::nullopt,
      |                                ^
/usr/include/llvm/Support/VirtualFileSystem.h:579:26: error: 'std::optional' has not been declared
  579 |                     std::optional<uint32_t> User = std::nullopt,
      |                          ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:579:34: error: expected ',' or '...' before '<' token
  579 |                     std::optional<uint32_t> User = std::nullopt,
      |                                  ^
/usr/include/llvm/Support/VirtualFileSystem.h:882:10: error: 'optional' in namespace 'std' does not name a template type
  882 |     std::optional<std::string> ExternalRedirect;
      |          ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:882:5: note: 'std::optional' is only available from C++17 onwards
  882 |     std::optional<std::string> ExternalRedirect;
      |     ^~~
/usr/include/llvm/Support/VirtualFileSystem.h:891:10: error: 'optional' in namespace 'std' does not name a template type
  891 |     std::optional<StringRef> getExternalRedirect() const {
      |          ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:891:5: note: 'std::optional' is only available from C++17 onwards
  891 |     std::optional<StringRef> getExternalRedirect() const {
      |     ^~~
/usr/include/llvm/Support/VirtualFileSystem.h: In constructor 'llvm::vfs::RedirectingFileSystem::Entry::Entry(llvm::vfs::RedirectingFileSystem::EntryKind, llvm::StringRef)':
/usr/include/llvm/Support/VirtualFileSystem.h:776:51: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  776 |     Entry(EntryKind K, StringRef Name) : Kind(K), Name(Name) {}
      |                                                   ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/VirtualFileSystem.h:776:51: note:   candidate expects 3 arguments, 1 provided
  776 |     Entry(EntryKind K, StringRef Name) : Kind(K), Name(Name) {}
      |                                                   ^~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/VirtualFileSystem.h: In constructor 'llvm::vfs::RedirectingFileSystem::RemapEntry::RemapEntry(llvm::vfs::RedirectingFileSystem::EntryKind, llvm::StringRef, llvm::StringRef, llvm::vfs::RedirectingFileSystem::NameKind)':
/usr/include/llvm/Support/VirtualFileSystem.h:824:27: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(llvm::StringRef&)'
  824 |         : Entry(K, Name), ExternalContentsPath(ExternalContentsPath),
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with <template-parameter-2-2> = _InputIterator; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  748 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:748:9: note:   template argument deduction/substitution failed:
/usr/include/llvm/Support/VirtualFileSystem.h:824:27: note:   candidate expects 3 arguments, 1 provided
  824 |         : Entry(K, Name), ExternalContentsPath(ExternalContentsPath),
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  705 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:705:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:700:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  700 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:700:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:695:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:695:45: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::initializer_list<char>'
  695 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:667:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  667 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:667:35: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'std::__cxx11::basic_string<char>&&'
  667 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(size_type, _CharT, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  654 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:654:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:631:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:631:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const char*'
  631 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:609:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  609 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:609:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:589:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  589 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:589:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:571:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  571 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:571:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:554:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; size_type = long unsigned int]'
  554 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:554:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/13/bits/basic_string.h:537:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  537 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:537:40: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::__cxx11::basic_string<char>&'
  537 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/13/bits/basic_string.h:525:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:525:34: note:   no known conversion for argument 1 from 'llvm::StringRef' to 'const std::allocator<char>&'
  525 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/basic_string.h:512:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  512 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/13/bits/basic_string.h:512:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/llvm/Support/VirtualFileSystem.h: At global scope:
/usr/include/llvm/Support/VirtualFileSystem.h:1060:8: error: 'optional' in namespace 'std' does not name a template type
 1060 |   std::optional<bool> IsCaseSensitive;
      |        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:1060:3: note: 'std::optional' is only available from C++17 onwards
 1060 |   std::optional<bool> IsCaseSensitive;
      |   ^~~
/usr/include/llvm/Support/VirtualFileSystem.h:1061:8: error: 'optional' in namespace 'std' does not name a template type
 1061 |   std::optional<bool> IsOverlayRelative;
      |        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:1061:3: note: 'std::optional' is only available from C++17 onwards
 1061 |   std::optional<bool> IsOverlayRelative;
      |   ^~~
/usr/include/llvm/Support/VirtualFileSystem.h:1062:8: error: 'optional' in namespace 'std' does not name a template type
 1062 |   std::optional<bool> UseExternalNames;
      |        ^~~~~~~~
/usr/include/llvm/Support/VirtualFileSystem.h:1062:3: note: 'std::optional' is only available from C++17 onwards
 1062 |   std::optional<bool> UseExternalNames;
      |   ^~~
/usr/include/llvm/Support/VirtualFileSystem.h: In member function 'void llvm::vfs::YAMLVFSWriter::setCaseSensitivity(bool)':
/usr/include/llvm/Support/VirtualFileSystem.h:1074:5: error: 'IsCaseSensitive' was not declared in this scope; did you mean 'CaseSensitive'?
 1074 |     IsCaseSensitive = CaseSensitive;
      |     ^~~~~~~~~~~~~~~
      |     CaseSensitive
/usr/include/llvm/Support/VirtualFileSystem.h: In member function 'void llvm::vfs::YAMLVFSWriter::setUseExternalNames(bool)':
/usr/include/llvm/Support/VirtualFileSystem.h:1077:48: error: 'UseExternalNames' was not declared in this scope; did you mean 'setUseExternalNames'?
 1077 |   void setUseExternalNames(bool UseExtNames) { UseExternalNames = UseExtNames; }
      |                                                ^~~~~~~~~~~~~~~~
      |                                                setUseExternalNames
/usr/include/llvm/Support/VirtualFileSystem.h: In member function 'void llvm::vfs::YAMLVFSWriter::setOverlayDir(llvm::StringRef)':
/usr/include/llvm/Support/VirtualFileSystem.h:1080:5: error: 'IsOverlayRelative' was not declared in this scope
 1080 |     IsOverlayRelative = true;
      |     ^~~~~~~~~~~~~~~~~
/usr/include/clang/Basic/FileManager.h: In member function 'clang::OptionalDirectoryEntryRef clang::FileManager::getOptionalDirectoryRef(llvm::StringRef, bool)':
/usr/include/clang/Basic/FileManager.h:171:18: error: 'expectedToOptional' is not a member of 'llvm'
  171 |     return llvm::expectedToOptional(getDirectoryRef(DirName, CacheFailure));
      |                  ^~~~~~~~~~~~~~~~~~
/usr/include/clang/Basic/FileManager.h: In member function 'clang::OptionalFileEntryRef clang::FileManager::getOptionalFileRef(llvm::StringRef, bool, bool)':
/usr/include/clang/Basic/FileManager.h:237:18: error: 'expectedToOptional' is not a member of 'llvm'
  237 |     return llvm::expectedToOptional(
      |                  ^~~~~~~~~~~~~~~~~~
/usr/include/clang/Basic/SourceManager.h: At global scope:
/usr/include/clang/Basic/SourceManager.h:215:8: error: 'optional' in namespace 'std' does not name a template type
  215 |   std::optional<llvm::MemoryBufferRef>
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:215:3: note: 'std::optional' is only available from C++17 onwards
  215 |   std::optional<llvm::MemoryBufferRef>
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:238:8: error: 'optional' in namespace 'std' does not name a template type
  238 |   std::optional<llvm::MemoryBufferRef> getBufferIfLoaded() const {
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:238:3: note: 'std::optional' is only available from C++17 onwards
  238 |   std::optional<llvm::MemoryBufferRef> getBufferIfLoaded() const {
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:246:8: error: 'optional' in namespace 'std' does not name a template type
  246 |   std::optional<StringRef> getBufferDataIfLoaded() const {
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:246:3: note: 'std::optional' is only available from C++17 onwards
  246 |   std::optional<StringRef> getBufferDataIfLoaded() const {
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:261:30: error: 'std::optional' has not been declared
  261 |   void setUnownedBuffer(std::optional<llvm::MemoryBufferRef> B) {
      |                              ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:261:38: error: expected ',' or '...' before '<' token
  261 |   void setUnownedBuffer(std::optional<llvm::MemoryBufferRef> B) {
      |                                      ^
/usr/include/clang/Basic/SourceManager.h: In constructor 'clang::SrcMgr::ContentCache::ContentCache()':
/usr/include/clang/Basic/SourceManager.h:183:24: error: 'nullopt' is not a member of 'std'
  183 |       : OrigEntry(std::nullopt), ContentsEntry(nullptr),
      |                        ^~~~~~~
/usr/include/clang/Basic/SourceManager.h:183:24: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/clang/Basic/SourceManager.h: In member function 'void clang::SrcMgr::ContentCache::setUnownedBuffer(int)':
/usr/include/clang/Basic/SourceManager.h:263:9: error: 'B' was not declared in this scope
  263 |     if (B)
      |         ^
/usr/include/clang/Basic/SourceManager.h: At global scope:
/usr/include/clang/Basic/SourceManager.h:944:8: error: 'optional' in namespace 'std' does not name a template type
  944 |   std::optional<llvm::MemoryBufferRef>
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:944:3: note: 'std::optional' is only available from C++17 onwards
  944 |   std::optional<llvm::MemoryBufferRef>
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1026:8: error: 'optional' in namespace 'std' does not name a template type
 1026 |   std::optional<llvm::MemoryBufferRef>
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1026:3: note: 'std::optional' is only available from C++17 onwards
 1026 |   std::optional<llvm::MemoryBufferRef>
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1063:8: error: 'optional' in namespace 'std' does not name a template type
 1063 |   std::optional<StringRef> getNonBuiltinFilenameForID(FileID FID) const;
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1063:3: note: 'std::optional' is only available from C++17 onwards
 1063 |   std::optional<StringRef> getNonBuiltinFilenameForID(FileID FID) const;
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1082:8: error: 'optional' in namespace 'std' does not name a template type
 1082 |   std::optional<StringRef> getBufferDataOrNone(FileID FID) const;
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1082:3: note: 'std::optional' is only available from C++17 onwards
 1082 |   std::optional<StringRef> getBufferDataOrNone(FileID FID) const;
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1088:8: error: 'optional' in namespace 'std' does not name a template type
 1088 |   std::optional<StringRef> getBufferDataIfLoaded(FileID FID) const;
      |        ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1088:3: note: 'std::optional' is only available from C++17 onwards
 1088 |   std::optional<StringRef> getBufferDataIfLoaded(FileID FID) const;
      |   ^~~
/usr/include/clang/Basic/SourceManager.h:1699:39: error: 'std::optional' has not been declared
 1699 |                                  std::optional<unsigned> MaxNotes = 32) const;
      |                                       ^~~~~~~~
/usr/include/clang/Basic/SourceManager.h:1699:47: error: expected ',' or '...' before '<' token
 1699 |                                  std::optional<unsigned> MaxNotes = 32) const;
      |                                               ^
/usr/include/clang/Basic/SourceManager.h: In member function 'llvm::MemoryBufferRef clang::SourceManager::getMemoryBufferForFileOrFake(const clang::FileEntry*)':
/usr/include/clang/Basic/SourceManager.h:951:18: error: 'getMemoryBufferForFileOrNone' was not declared in this scope; did you mean 'getMemoryBufferForFileOrFake'?
  951 |     if (auto B = getMemoryBufferForFileOrNone(File))
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  getMemoryBufferForFileOrFake
/usr/include/clang/Basic/SourceManager.h: In member function 'llvm::MemoryBufferRef clang::SourceManager::getBufferOrFake(clang::FileID, clang::SourceLocation) const':
/usr/include/clang/Basic/SourceManager.h:1040:18: error: 'getBufferOrNone' was not declared in this scope; did you mean 'getBufferOrFake'?
 1040 |     if (auto B = getBufferOrNone(FID, Loc))
      |                  ^~~~~~~~~~~~~~~
      |                  getBufferOrFake
/usr/include/clang/Basic/SourceManager.h: In member function 'clang::OptionalFileEntryRef clang::SourceManager::getFileEntryRefForID(clang::FileID) const':
/usr/include/clang/Basic/SourceManager.h:1056:17: error: 'nullopt' is not a member of 'std'
 1056 |     return std::nullopt;
      |                 ^~~~~~~
/usr/include/clang/Basic/SourceManager.h:1056:17: note: 'std::nullopt' is only available from C++17 onwards
/usr/include/llvm/Support/MathExtras.h: In instantiation of 'constexpr size_t llvm::CTLog2() [with long unsigned int kValue = 8; size_t = long unsigned int]':
/usr/include/llvm/Support/Alignment.h:97:56:   required from 'static constexpr llvm::Align llvm::Align::Constant() [with long unsigned int kValue = 8]'
/usr/include/llvm/Support/Alignment.h:103:49:   required from 'static constexpr llvm::Align llvm::Align::Of() [with T = const clang::Expr*]'
/usr/include/llvm/Support/TrailingObjects.h:168:73:   required from 'static NextTy* llvm::trailing_objects_internal::TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys ...>::getTrailingObjectsImpl(BaseTy*, llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken<NextTy>) [with int Align = 8; BaseTy = clang::ConstantArrayType; TopTrailingObj = llvm::TrailingObjects<clang::ConstantArrayType, const clang::Expr*>; PrevTy = clang::ConstantArrayType; NextTy = const clang::Expr*; MoreTys = {}]'
/usr/include/llvm/Support/TrailingObjects.h:301:40:   required from 'T* llvm::TrailingObjects<BaseTy, TrailingTys>::getTrailingObjects() [with T = const clang::Expr*; BaseTy = clang::ConstantArrayType; TrailingTys = {const clang::Expr*}]'
/usr/include/clang/AST/Type.h:3077:39:   required from here
/usr/include/llvm/Support/MathExtras.h:399:28: error: non-constant condition for static assertion
  399 |   static_assert(kValue > 0 && llvm::isPowerOf2_64(kValue),
      |                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/llvm/Support/MathExtras.h:399:50:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(8)'
/usr/include/llvm/Support/MathExtras.h:399:28: error: 'constexpr' call flows off the end of the function
/usr/include/llvm/Support/MathExtras.h: In instantiation of 'constexpr size_t llvm::CTLog2() [with long unsigned int kValue = 4; size_t = long unsigned int]':
/usr/include/llvm/Support/MathExtras.h:401:32:   required from 'static const NextTy* llvm::trailing_objects_internal::TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys ...>::getTrailingObjectsImpl(const BaseTy*, llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken<NextTy>) [with int Align = 8; BaseTy = clang::ConstantArrayType; TopTrailingObj = llvm::TrailingObjects<clang::ConstantArrayType, const clang::Expr*>; PrevTy = clang::ConstantArrayType; NextTy = const clang::Expr*; MoreTys = {}]'
/usr/include/llvm/Support/TrailingObjects.h:289:40:   required from 'const T* llvm::TrailingObjects<BaseTy, TrailingTys>::getTrailingObjects() const [with T = const clang::Expr*; BaseTy = clang::ConstantArrayType; TrailingTys = {const clang::Expr*}]'
/usr/include/clang/AST/Type.h:3089:51:   required from here
/usr/include/llvm/Support/TrailingObjects.h:154:43:   in 'constexpr' expansion of 'llvm::Align::Of<const clang::Expr*>()'
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:399:28: error: non-constant condition for static assertion
/usr/include/llvm/Support/TrailingObjects.h:154:43:   in 'constexpr' expansion of 'llvm::Align::Of<const clang::Expr*>()'
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:399:50:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(4)'
/usr/include/llvm/Support/MathExtras.h:399:28: error: 'constexpr' call flows off the end of the function
/usr/include/llvm/Support/MathExtras.h: In instantiation of 'constexpr size_t llvm::CTLog2() [with long unsigned int kValue = 2; size_t = long unsigned int]':
/usr/include/llvm/Support/MathExtras.h:401:32:   required from 'static constexpr llvm::Align llvm::Align::Of() [with T = clang::FunctionType::FunctionTypeExtraBitfields]'
/usr/include/llvm/Support/TrailingObjects.h:154:43:   required from 'static const NextTy* llvm::trailing_objects_internal::TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys ...>::getTrailingObjectsImpl(const BaseTy*, llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken<NextTy>) [with int Align = 8; BaseTy = clang::FunctionProtoType; TopTrailingObj = llvm::TrailingObjects<clang::FunctionProtoType, clang::QualType, clang::SourceLocation, clang::FunctionType::FunctionTypeExtraBitfields, clang::FunctionType::ExceptionType, clang::Expr*, clang::FunctionDecl*, clang::FunctionType::ExtParameterInfo, clang::Qualifiers>; PrevTy = clang::SourceLocation; NextTy = clang::FunctionType::FunctionTypeExtraBitfields; MoreTys = {clang::FunctionType::ExceptionType, clang::Expr*, clang::FunctionDecl*, clang::FunctionType::ExtParameterInfo, clang::Qualifiers}]'
/usr/include/llvm/Support/TrailingObjects.h:289:40:   required from 'const T* llvm::TrailingObjects<BaseTy, TrailingTys>::getTrailingObjects() const [with T = clang::FunctionType::FunctionTypeExtraBitfields; BaseTy = clang::FunctionProtoType; TrailingTys = {clang::QualType, clang::SourceLocation, clang::FunctionType::FunctionTypeExtraBitfields, clang::FunctionType::ExceptionType, clang::Expr*, clang::FunctionDecl*, clang::FunctionType::ExtParameterInfo, clang::Qualifiers}]'
/usr/include/clang/AST/Type.h:4302:64:   required from here
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:401:32:   in 'constexpr' expansion of 'llvm::CTLog2<4>()'
/usr/include/llvm/Support/MathExtras.h:399:28: error: non-constant condition for static assertion
/usr/include/llvm/Support/Alignment.h:103:49:   in 'constexpr' expansion of 'llvm::Align::Constant<8>()'
/usr/include/llvm/Support/Alignment.h:97:56:   in 'constexpr' expansion of 'llvm::CTLog2<8>()'
/usr/include/llvm/Support/MathExtras.h:401:32:   in 'constexpr' expansion of 'llvm::CTLog2<4>()'
/usr/include/llvm/Support/MathExtras.h:399:50:   in 'constexpr' expansion of 'llvm::isPowerOf2_64(2)'
/usr/include/llvm/Support/MathExtras.h:399:28: error: 'constexpr' call flows off the end of the function
/usr/include/llvm/ADT/STLExtras.h: In instantiation of 'llvm::mapped_iterator<ItTy, FuncTy, ReferenceTy>::mapped_iterator(ItTy, FuncTy) [with ItTy = const clang::ParmVarDecl* const*; FuncTy = clang::ObjCMethodDecl::GetTypeFn; ReferenceTy = clang::QualType]':
/usr/include/llvm/ADT/STLExtras.h:430:10:   required from 'llvm::mapped_iterator<ItTy, FuncTy> llvm::map_iterator(ItTy, FuncTy) [with ItTy = const clang::ParmVarDecl* const*; FuncTy = clang::ObjCMethodDecl::GetTypeFn; decltype (declval<FuncTy>()((* declval<ItTy>()))) = clang::QualType]'
/usr/include/clang/AST/DeclObjC.h:402:30:   required from here
/usr/include/llvm/ADT/STLExtras.h:414:61: error: cannot convert 'std::remove_reference<clang::ObjCMethodDecl::GetTypeFn&>::type' {aka 'clang::ObjCMethodDecl::GetTypeFn'} to 'int' in initialization
  414 |     : mapped_iterator::iterator_adaptor_base(std::move(U)), F(std::move(F)) {}
      |                                                             ^~~~~~~~~~~~~~~
make[2]: *** [clang_delta/CMakeFiles/clang_delta.dir/build.make:135: clang_delta/CMakeFiles/clang_delta.dir/ClassTemplateToClass.cpp.o] Error 1
make[2]: Leaving directory '/builddir/build/BUILD/cvise-2.4.0/objdir/riscv64-redhat-linux-gnu'
RPM build errors:
make[1]: *** [CMakeFiles/Makefile2:292: clang_delta/CMakeFiles/clang_delta.dir/all] Error 2
make: *** [Makefile:149: all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.wfnbgJ (%build)
    Bad exit status from /var/tmp/rpm-tmp.wfnbgJ (%build)
Child return code was: 1
EXCEPTION: [Error('Command failed: \n # bash --login -c /usr/bin/rpmbuild -bb --noclean --target riscv64 --nodeps /builddir/build/SPECS/cvise.spec\n', 1)]
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/mockbuild/trace_decorator.py", line 93, in trace
    result = func(*args, **kw)
             ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mockbuild/util.py", line 598, in do_with_status
    raise exception.Error("Command failed: \n # %s\n%s" % (command, output), child.returncode)
mockbuild.exception.Error: Command failed: 
 # bash --login -c /usr/bin/rpmbuild -bb --noclean --target riscv64 --nodeps /builddir/build/SPECS/cvise.spec