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

via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 18 02:11:13 PDT 2023


Author: dingfei
Date: 2023-07-18T17:09:58+08:00
New Revision: 2c651184a2b0ef1b0e24c6536e5befb65a0ae5ce

URL: https://github.com/llvm/llvm-project/commit/2c651184a2b0ef1b0e24c6536e5befb65a0ae5ce
DIFF: https://github.com/llvm/llvm-project/commit/2c651184a2b0ef1b0e24c6536e5befb65a0ae5ce.diff

LOG: [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

Added: 
    clang/test/Tooling/ms-asm-clang-extdef-mapping.c

Modified: 
    clang/tools/clang-extdef-mapping/CMakeLists.txt
    clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp

Removed: 
    


################################################################################
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 00000000000000..00632d11e3dcbc
--- /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 at Break .*}}

diff  --git a/clang/tools/clang-extdef-mapping/CMakeLists.txt b/clang/tools/clang-extdef-mapping/CMakeLists.txt
index 973b68db69dff4..e3a2673efbe3e1 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 9ad16dc09ce187..2d4f398f76f6d7 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 <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());
 }


        


More information about the cfe-commits mailing list