[Lldb-commits] [PATCH] D148546: Reland: [Demangle] replace use of llvm::StringView w/ std::string_view

Alan Zhao via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Apr 20 10:34:14 PDT 2023


ayzhao requested changes to this revision.
ayzhao added a comment.
This revision now requires changes to proceed.

This still fails to build on Windows with MSVC's `cl.exe` compiler:

  C:\src\llvm-project\build-ninja>ninja all
  [49/4908] Building CXX object lib\Demangle\CMakeFiles\LLVMDemangle.dir\ItaniumDemangle.cpp.obj
  FAILED: lib/Demangle/CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.obj
  C:\PROGRA~1\MICROS~2\2022\PROFES~1\VC\Tools\MSVC\1435~1.322\bin\Hostx86\x86\cl.exe  /nologo /TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_FILE_OFFSET_BITS=64 -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_LARGEFILE_SOURCE -D_LIBCPP_ENABLE_ASSERTIONS -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\src\llvm-project\build-ninja\lib\Demangle -IC:\src\llvm-project\llvm\lib\Demangle -IC:\src\llvm-project\build-ninja\include -IC:\src\llvm-project\llvm\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -w14062 -we4238 /Gw /MD /O2 /Ob2  /EHs-c- /GR- -UNDEBUG -std:c++17 /showIncludes /Folib\Demangle\CMakeFiles\LLVMDemangle.dir\ItaniumDemangle.cpp.obj /Fdlib\Demangle\CMakeFiles\LLVMDemangle.dir\LLVMDemangle.pdb /FS -c C:\src\llvm-project\llvm\lib\Demangle\ItaniumDemangle.cpp
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(3718): error C2665: 'llvm::itanium_demangle::ScopedOverride<const char *>::ScopedOverride': no overloaded function could convert all the argument types
  C:\src\llvm-project\llvm\include\llvm\Demangle\Utility.h(194): note: could be 'llvm::itanium_demangle::ScopedOverride<const char *>::ScopedOverride(T &,T)'
          with
          [
              T=const char *
          ]
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(3718): note: 'llvm::itanium_demangle::ScopedOverride<const char *>::ScopedOverride(T &,T)': cannot convert argument 2 from 'std::_String_view_iterator<_Traits>' to 'T'
          with
          [
              T=const char *
          ]
          and
          [
              _Traits=std::char_traits<char>
          ]
          and
          [
              T=const char *
          ]
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(3718): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(3718): note: while trying to match the argument list '(const char *, std::_String_view_iterator<_Traits>)'
          with
          [
              _Traits=std::char_traits<char>
          ]
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(3707): note: while compiling class template member function 'llvm::itanium_demangle::Node *llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<`anonymous-namespace'::DefaultAllocator>,Alloc>::parseQualifiedType(void)'
          with
          [
              Alloc=`anonymous-namespace'::DefaultAllocator
          ]
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(3796): note: see reference to function template instantiation 'llvm::itanium_demangle::Node *llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<`anonymous-namespace'::DefaultAllocator>,Alloc>::parseQualifiedType(void)' being compiled
          with
          [
              Alloc=`anonymous-namespace'::DefaultAllocator
          ]
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(3472): note: while compiling class template member function 'std::string_view llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<`anonymous-namespace'::DefaultAllocator>,Alloc>::parseNumber(bool)'
          with
          [
              Alloc=`anonymous-namespace'::DefaultAllocator
          ]
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(5489): note: see reference to function template instantiation 'std::string_view llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<`anonymous-namespace'::DefaultAllocator>,Alloc>::parseNumber(bool)' being compiled
          with
          [
              Alloc=`anonymous-namespace'::DefaultAllocator
          ]
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(5469): note: while compiling class template member function 'llvm::itanium_demangle::Node *llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<`anonymous-namespace'::DefaultAllocator>,Alloc>::parse(void)'
          with
          [
              Alloc=`anonymous-namespace'::DefaultAllocator
          ]
  C:\src\llvm-project\llvm\lib\Demangle\ItaniumDemangle.cpp(378): note: see reference to function template instantiation 'llvm::itanium_demangle::Node *llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<`anonymous-namespace'::DefaultAllocator>,Alloc>::parse(void)' being compiled
          with
          [
              Alloc=`anonymous-namespace'::DefaultAllocator
          ]
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(5505): note: see reference to class template instantiation 'llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<`anonymous-namespace'::DefaultAllocator>,Alloc>' being compiled
          with
          [
              Alloc=`anonymous-namespace'::DefaultAllocator
          ]
  C:\src\llvm-project\llvm\lib\Demangle\ItaniumDemangle.cpp(377): note: see reference to class template instantiation 'llvm::itanium_demangle::ManglingParser<`anonymous-namespace'::DefaultAllocator>' being compiled
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(3719): error C2665: 'llvm::itanium_demangle::ScopedOverride<const char *>::ScopedOverride': no overloaded function could convert all the argument types
  C:\src\llvm-project\llvm\include\llvm\Demangle\Utility.h(194): note: could be 'llvm::itanium_demangle::ScopedOverride<const char *>::ScopedOverride(T &,T)'
          with
          [
              T=const char *
          ]
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(3719): note: 'llvm::itanium_demangle::ScopedOverride<const char *>::ScopedOverride(T &,T)': cannot convert argument 2 from 'std::_String_view_iterator<_Traits>' to 'T'
          with
          [
              T=const char *
          ]
          and
          [
              _Traits=std::char_traits<char>
          ]
          and
          [
              T=const char *
          ]
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(3719): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
  C:\src\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(3719): note: while trying to match the argument list '(const char *, std::_String_view_iterator<_Traits>)'
          with
          [
              _Traits=std::char_traits<char>
          ]
  [97/4908] Building CXX object tools\clang\utils\TableGen\CMakeFiles\clang-tblgen.dir\ClangAttrEmitter.cpp.obj
  ninja: build stopped: subcommand failed.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148546/new/

https://reviews.llvm.org/D148546



More information about the lldb-commits mailing list