2

Clang-CL コンパイラ エラー: この 'auto' タイプはまだマングルできません

環境 :

  • 現在、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;
}
4

0 に答える 0