Closed
Description
The error happened when I build clangd version 16.0.0. Build tools are MSVC. CMake command is
cmake -DCMAKE_INSTALL_PREFIX="$LLVM_ROOT/build-msvc/install-dir" $LLVM_ROOT/llvm/ -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" -G Ninja
build command is
cmake --build $LLVM_ROOT/build-msvc --target clangd -j 10
build env is x64.
[1553/2808] Building CXX object tools\clang\lib\Lex\CMakeFiles\obj.clangLex.dir\Lexer.cpp.obj
FAILED: tools/clang/lib/Lex/CMakeFiles/obj.clangLex.dir/Lexer.cpp.obj
C:\tools\VISAUL~1\VC\Tools\MSVC\1434~1.319\bin\Hostx64\x64\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_HAS_EXCEPTIONS=0 -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:\tools\msys64\home\michael\llvm-project\build-msvc\tools\clang\lib\Lex -IC:\tools\msys64\home\michael\llvm-project\clang\lib\Lex -IC:\tools\msys64\home\michael\llvm-project\clang\include -IC:\tools\msys64\home\michael\llvm-project\build-msvc\tools\clang\include -IC:\tools\msys64\home\michael\llvm-project\build-msvc\include -IC:\tools\msys64\home\michael\llvm-project\llvm\include /DWIN32 /D_WINDOWS /Zc:inline /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 -wd4324 -w14062 -we4238 /Gw /MD /O2 /Ob2 /DNDEBUG /EHs-c- /GR- -std:c++17 /showIncludes /Fotools\clang\lib\Lex\CMakeFiles\obj.clangLex.dir\Lexer.cpp.obj /Fdtools\clang\lib\Lex\CMakeFiles\obj.clangLex.dir\ /FS -c C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\UnicodeCharSets.h(1): warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\UnicodeCharSets.h(394): error C2226: syntax error: unexpected type 'llvm::sys::UnicodeCharRange'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\UnicodeCharSets.h(394): error C2143: syntax error: missing ';' before '{'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\UnicodeCharSets.h(394): error C2447: '{': missing function header (old-style formal list?)
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1479): error C2665: 'llvm::sys::UnicodeCharSet::UnicodeCharSet': no overloaded function could convert all the argument types
C:\tools\msys64\home\michael\llvm-project\llvm\include\llvm/Support/UnicodeCharRanges.h(96): note: could be 'llvm::sys::UnicodeCharSet::UnicodeCharSet(llvm::sys::UnicodeCharSet &&)'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1479): note: 'llvm::sys::UnicodeCharSet::UnicodeCharSet(llvm::sys::UnicodeCharSet &&)': cannot convert argument 1 from 'const llvm::sys::UnicodeCharRange []' to 'llvm::sys::UnicodeCharSet &&'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1480): note: Reason: cannot convert from 'const llvm::sys::UnicodeCharRange []' to 'llvm::sys::UnicodeCharSet'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1480): note: No constructor could take the source type, or constructor overload resolution was ambiguous
C:\tools\msys64\home\michael\llvm-project\llvm\include\llvm/Support/UnicodeCharRanges.h(96): note: or 'llvm::sys::UnicodeCharSet::UnicodeCharSet(const llvm::sys::UnicodeCharSet &)'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1479): note: 'llvm::sys::UnicodeCharSet::UnicodeCharSet(const llvm::sys::UnicodeCharSet &)': cannot convert argument 1 from 'const llvm::sys::UnicodeCharRange []' to 'const llvm::sys::UnicodeCharSet &'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1480): note: Reason: cannot convert from 'const llvm::sys::UnicodeCharRange []' to 'const llvm::sys::UnicodeCharSet'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1480): note: No constructor could take the source type, or constructor overload resolution was ambiguous
C:\tools\msys64\home\michael\llvm-project\llvm\include\llvm/Support/UnicodeCharRanges.h(55): note: or 'llvm::sys::UnicodeCharSet::UnicodeCharSet(llvm::sys::UnicodeCharSet::CharRanges)'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1479): note: 'llvm::sys::UnicodeCharSet::UnicodeCharSet(llvm::sys::UnicodeCharSet::CharRanges)': cannot convert argument 1 from 'const llvm::sys::UnicodeCharRange []' to 'llvm::sys::UnicodeCharSet::CharRanges'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1480): note: No constructor could take the source type, or constructor overload resolution was ambiguous
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1479): note: while trying to match the argument list '(const llvm::sys::UnicodeCharRange [])'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1508): error C2065: 'C11AllowedIDCharRanges': undeclared identifier
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1548): error C2665: 'llvm::sys::UnicodeCharSet::UnicodeCharSet': no overloaded function could convert all the argument types
C:\tools\msys64\home\michael\llvm-project\llvm\include\llvm/Support/UnicodeCharRanges.h(96): note: could be 'llvm::sys::UnicodeCharSet::UnicodeCharSet(llvm::sys::UnicodeCharSet &&)'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1548): note: 'llvm::sys::UnicodeCharSet::UnicodeCharSet(llvm::sys::UnicodeCharSet &&)': cannot convert argument 1 from 'const llvm::sys::UnicodeCharRange []' to 'llvm::sys::UnicodeCharSet &&'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1549): note: Reason: cannot convert from 'const llvm::sys::UnicodeCharRange []' to 'llvm::sys::UnicodeCharSet'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1549): note: No constructor could take the source type, or constructor overload resolution was ambiguous
C:\tools\msys64\home\michael\llvm-project\llvm\include\llvm/Support/UnicodeCharRanges.h(96): note: or 'llvm::sys::UnicodeCharSet::UnicodeCharSet(const llvm::sys::UnicodeCharSet &)'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1548): note: 'llvm::sys::UnicodeCharSet::UnicodeCharSet(const llvm::sys::UnicodeCharSet &)': cannot convert argument 1 from 'const llvm::sys::UnicodeCharRange []' to 'const llvm::sys::UnicodeCharSet &'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1549): note: Reason: cannot convert from 'const llvm::sys::UnicodeCharRange []' to 'const llvm::sys::UnicodeCharSet'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1549): note: No constructor could take the source type, or constructor overload resolution was ambiguous
C:\tools\msys64\home\michael\llvm-project\llvm\include\llvm/Support/UnicodeCharRanges.h(55): note: or 'llvm::sys::UnicodeCharSet::UnicodeCharSet(llvm::sys::UnicodeCharSet::CharRanges)'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1548): note: 'llvm::sys::UnicodeCharSet::UnicodeCharSet(llvm::sys::UnicodeCharSet::CharRanges)': cannot convert argument 1 from 'const llvm::sys::UnicodeCharRange []' to 'llvm::sys::UnicodeCharSet::CharRanges'
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1549): note: No constructor could take the source type, or constructor overload resolution was ambiguous
C:\tools\msys64\home\michael\llvm-project\clang\lib\Lex\Lexer.cpp(1548): note: while trying to match the argument list '(const llvm::sys::UnicodeCharRange [])'
[1562/2808] Building CXX object tools\clang\lib\Basic\CMakeFiles\obj.clangBasic.dir\Attributes.cpp.obj
ninja: build stopped: subcommand failed.