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

Ding Fei via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 11 09:40:02 PDT 2023


danix800 created this revision.
danix800 added a project: clang-tools-extra.
Herald added a project: All.
danix800 requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

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


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D154983

Files:
  clang/test/Tooling/ms-asm-clang-extdef-mapping.c
  clang/tools/clang-extdef-mapping/CMakeLists.txt
  clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp


Index: clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp
===================================================================
--- clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp
+++ 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 <optional>
 #include <sstream>
 #include <string>
@@ -213,6 +214,10 @@
   }
   CommonOptionsParser &OptionsParser = ExpectedParser.get();
 
+  llvm::InitializeAllTargetInfos();
+  llvm::InitializeAllTargetMCs();
+  llvm::InitializeAllAsmParsers();
+
   return HandleFiles(OptionsParser.getSourcePathList(),
                      OptionsParser.getCompilations());
 }
Index: clang/tools/clang-extdef-mapping/CMakeLists.txt
===================================================================
--- clang/tools/clang-extdef-mapping/CMakeLists.txt
+++ clang/tools/clang-extdef-mapping/CMakeLists.txt
@@ -1,5 +1,8 @@
 set(LLVM_LINK_COMPONENTS
   ${LLVM_TARGETS_TO_BUILD}
+  AllTargetsAsmParsers
+  AllTargetsDescs
+  AllTargetsInfos
   support
   )
 
Index: clang/test/Tooling/ms-asm-clang-extdef-mapping.c
===================================================================
--- /dev/null
+++ 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 at Break .*}}


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D154983.539157.patch
Type: text/x-patch
Size: 1518 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230711/7080b652/attachment.bin>


More information about the cfe-commits mailing list