From: dingfei Date: Tue, 18 Jul 2023 09:09:58 +0000 (+0800) Subject: [clang-extdef-mapping] register necessary targest for ms-style asm block X-Git-Tag: upstream/17.0.6~1394 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2c651184a2b0ef1b0e24c6536e5befb65a0ae5ce;p=platform%2Fupstream%2Fllvm.git [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 --- diff --git a/clang/test/Tooling/ms-asm-clang-extdef-mapping.c b/clang/test/Tooling/ms-asm-clang-extdef-mapping.c new file mode 100644 index 0000000..00632d1 --- /dev/null +++ b/clang/test/Tooling/ms-asm-clang-extdef-mapping.c @@ -0,0 +1,7 @@ +// RUN: clang-extdef-mapping "%s" -- -fasm-blocks 2>&1 | FileCheck %s + +void Break() { + __asm { int 3 } +} + +// CHECK: {{c:@F@Break .*}} diff --git a/clang/tools/clang-extdef-mapping/CMakeLists.txt b/clang/tools/clang-extdef-mapping/CMakeLists.txt index 973b68d..e3a2673 100644 --- a/clang/tools/clang-extdef-mapping/CMakeLists.txt +++ b/clang/tools/clang-extdef-mapping/CMakeLists.txt @@ -1,5 +1,8 @@ set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} + AllTargetsAsmParsers + AllTargetsDescs + AllTargetsInfos support ) diff --git a/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp b/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp index 9ad16dc..2d4f398 100644 --- a/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp +++ b/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp @@ -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 #include #include @@ -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()); }