Clang-CL 编译器错误:尚无法破坏此“自动”类型
语境 :
- Clang-CL 编译尝试目前在我的几个代码库中导致以下错误:
cannot mangle this 'auto' type yet
由于此错误消息没有文件名或错误行,
因此很难找到其根本原因是什么代码。
此外,为了提供信息,这里是一个完整的日志,例如:
[1/2] Building CXX object tests\CMakeFiles\gcl_test_binary.dir\Main.cpp.obj
FAILED: tests/CMakeFiles/gcl_test_binary.dir/Main.cpp.obj
C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\Llvm\x64\bin\clang-cl.exe /nologo -TP -I..\..\..\includes -m64 -fdiagnostics-absolute-paths /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 -std:c++latest /showIncludes /Fotests\CMakeFiles\gcl_test_binary.dir\Main.cpp.obj /Fdtests\CMakeFiles\gcl_test_binary.dir\ -c -- ..\..\..\tests\Main.cpp
gcl_cpp\out\build\x64-Clang-Debug\EXEC : error : cannot mangle this 'auto' type yet
1 error generated.
ninja: build stopped: subcommand failed.
问题:有谁知道一个方便的技巧来识别该错误来自哪里?
提示:我怀疑这部分编译器源代码(参见github 上的此处):
void MicrosoftCXXNameMangler::mangleType(const AutoType *T, Qualifiers,
SourceRange Range) {
assert(T->getDeducedType().isNull() && "expecting a dependent type!");
DiagnosticsEngine &Diags = Context.getDiags();
unsigned DiagID = Diags.getCustomDiagID(DiagnosticsEngine::Error,
"cannot mangle this 'auto' type yet");
Diags.Report(Range.getBegin(), DiagID)
<< Range;
}