[clang-extdef-mapping] register necessary targest for ms-style asm block

Without targets registered gives: "error: MS-style inline assembly is not
available: Unable to find target for this triple (no targets are registered)"

Differential Revision: https://reviews.llvm.org/D154983
This commit is contained in:
dingfei 2023-07-18 17:09:58 +08:00
parent e953669872
commit 2c651184a2
3 changed files with 15 additions and 0 deletions

View File

@ -0,0 +1,7 @@
// RUN: clang-extdef-mapping "%s" -- -fasm-blocks 2>&1 | FileCheck %s
void Break() {
__asm { int 3 }
}
// CHECK: {{c:@F@Break .*}}

View File

@ -1,5 +1,8 @@
set(LLVM_LINK_COMPONENTS
${LLVM_TARGETS_TO_BUILD}
AllTargetsAsmParsers
AllTargetsDescs
AllTargetsInfos
support
)

View File

@ -23,6 +23,7 @@
#include "clang/Tooling/Tooling.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Signals.h"
#include "llvm/Support/TargetSelect.h"
#include <optional>
#include <sstream>
#include <string>
@ -214,6 +215,10 @@ int main(int argc, const char **argv) {
}
CommonOptionsParser &OptionsParser = ExpectedParser.get();
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllAsmParsers();
return HandleFiles(OptionsParser.getSourcePathList(),
OptionsParser.getCompilations());
}