What is the difference between "Clang with Microsoft CodeGen" and "LLVM-vs2014"?

In Visual Studio 2015 or later, we can use clang in two ways:

  • Choose Clang with Microsoft CodeGenhow Platform Toolset;

  • Install LLVM-3.8-win64.exeand choose LLVM-vs2014how Platform Toolset;

I know that both methods use the same compiler: clang 3.8. However, I do not know what the difference is between the two.

In my experience Clang with Microsoft CodeGenmore debugging than LLVM-vs2014. In other words:

  • I can debug a program created Clang with Microsoft CodeGenstep by step, as VC ++ does;

  • A program created using "LLVM-vs2014" cannot be debugged step by step at the source level, but the program can run as expected.

So my questions are:

Doesn't LLVM-vs2014source level debugging support in Visual Studio?

Is Clang with Microsoft CodeGenMicrosoft provided only to support source level debugging in Visual Studio?

+4
source share
1 answer

I know that both of these methods use the same compiler: clang 3.8. However, I do not know what the difference is between the two.

The difference is how they use it.

Clang with Microsoft CodeGenuses Clang to parse the source in AST. But then the MSVC code generator fires, so nothing related to LLVM is used.

LLVM-vs2014 Clang . LLVM . , , Visual Studio.

, . Clang clang-cl, Microsoft .

, .

+5

Source: https://habr.com/ru/post/1671438/


All Articles