Skip to content

char_traits<unsigned char> will be removed from LLVM 19 #179

@jeffpc

Description

@jeffpc

Building latest galmon master on FreeBSD 14.2 (it uses clang as the compiler) generates a number of warnings which look like:

$ gmake ubxtool
...
c++ -std=gnu++17 -Wall -O3 -ggdb -MMD -MP -fno-omit-frame-pointer -Iext/CLI11 -Iext/powerblog/ext/simplesocket -Iext/powerblog/ext/ -I/usr/local/opt/openssl/include/ -Iext/sgp4/libsgp4/ -I/usr/local/include   -c -o ubx.o ubx.cc
In file included from ubx.cc:1:
In file included from /usr/include/c++/v1/iostream:43:
In file included from /usr/include/c++/v1/ios:223:
In file included from /usr/include/c++/v1/__locale:23:
In file included from /usr/include/c++/v1/string:625:
In file included from /usr/include/c++/v1/string_view:213:
/usr/include/c++/v1/__fwd/string_view.h:22:41: warning: 'char_traits<unsigned char>' is deprecated: char_traits<T> for T not equal to char, wchar_t, char8_t, char16_t or char32_t is non-standard and is provided for a temporary period. It will be removed in LLVM 19, so please migrate off of it. [-Wdeprecated-declarations]
   22 | template <class _CharT, class _Traits = char_traits<_CharT> >
      |                                         ^
./ubx.hh:6:66: note: in instantiation of default argument for 'basic_string_view<uint8_t>' required here
    6 | uint16_t calcUbxChecksum(uint8_t ubxClass, uint8_t ubxType, std::basic_string_view<uint8_t> str);
      |                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/__string/char_traits.h:81:8: note: 'char_traits<unsigned char>' has been explicitly marked deprecated here
   81 | struct _LIBCPP_DEPRECATED_(
      |        ^
/usr/include/c++/v1/__config:978:53: note: expanded from macro '_LIBCPP_DEPRECATED_'
  978 | #      define _LIBCPP_DEPRECATED_(m) __attribute__((__deprecated__(m)))
      |                                                     ^

It looks like the warnings are for (but there may be others in parts I don't build - I only care about ubxtool):

  • char_traits<unsigned char>
  • char_traits<fmt::detail::char8_type>

Presumably, this means that galmon will fail to build with LLVM/clang 19.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions