]> granicus.if.org Git - clang/commitdiff
Make CodeGenFunction::EmitMSAsmStmt throw a fatal error as MS-style inline
authorChad Rosier <mcrosier@apple.com>
Mon, 11 Jun 2012 21:52:25 +0000 (21:52 +0000)
committerChad Rosier <mcrosier@apple.com>
Mon, 11 Jun 2012 21:52:25 +0000 (21:52 +0000)
assembly is completely untested and unsupported.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158329 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGStmt.cpp

index 2f06a8ed28320e640b28cbba39e9ee8b5a8588ae..aabb8cdb7120e7a8dc4fc9ccea1507f6d74bef5f 100644 (file)
@@ -1684,41 +1684,6 @@ void CodeGenFunction::EmitAsmStmt(const AsmStmt &S) {
 }
 
 void CodeGenFunction::EmitMSAsmStmt(const MSAsmStmt &S) {
-  // Analyze the asm string to decompose it into its pieces.  We know that Sema
-  // has already done this, so it is guaranteed to be successful.
-
-  // Get all the output and input constraints together.
-
-  std::vector<llvm::Value*> Args;
-  std::vector<llvm::Type *> ArgTypes;
-  std::string Constraints;
-
-  // Keep track of inout constraints.
-  
-  // Append the "input" part of inout constraints last.
-
-  // Clobbers
-
-  // Add machine specific clobbers
-  std::string MachineClobbers = Target.getClobbers();
-  if (!MachineClobbers.empty()) {
-    if (!Constraints.empty())
-      Constraints += ',';
-    Constraints += MachineClobbers;
-  }
-
-  llvm::Type *ResultType = VoidTy;
-
-  llvm::FunctionType *FTy =
-    llvm::FunctionType::get(ResultType, ArgTypes, false);
-
-  llvm::InlineAsm *IA =
-    llvm::InlineAsm::get(FTy, *S.getAsmString(), Constraints, true);
-  llvm::CallInst *Result = Builder.CreateCall(IA, Args);
-  Result->addAttribute(~0, llvm::Attribute::NoUnwind);
-
-  // Slap the source location of the inline asm into a !srcloc metadata on the
-  // call.
-
-  // Extract all of the register value results from the asm.
+  // Analyze the asm string to decompose it into its pieces.
+  llvm::report_fatal_error("MS-style asm codegen isn't yet supported.");
 }