From 4144f9079e685408cef414e29970b7b7960eddf0 Mon Sep 17 00:00:00 2001 From: Chad Rosier Date: Thu, 9 Aug 2012 20:52:43 +0000 Subject: [PATCH] [ms-inline asm] Simplify logic for empty asm statements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161615 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaStmt.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/Sema/SemaStmt.cpp b/lib/Sema/SemaStmt.cpp index f2d155513a..856a60203d 100644 --- a/lib/Sema/SemaStmt.cpp +++ b/lib/Sema/SemaStmt.cpp @@ -2888,6 +2888,16 @@ StmtResult Sema::ActOnMSAsmStmt(SourceLocation AsmLoc, // MS-style inline assembly is not fully supported, so emit a warning. Diag(AsmLoc, diag::warn_unsupported_msasm); + // Empty asm statements don't need to instantiate the AsmParser, etc. + if (AsmToks.empty()) { + std::string AsmString; + MSAsmStmt *NS = + new (Context) MSAsmStmt(Context, AsmLoc, /* IsSimple */ true, + /* IsVolatile */ true, AsmToks, LineEnds, + AsmString, EndLoc); + return Owned(NS); + } + std::string AsmString = buildMSAsmString(*this, AsmToks, LineEnds); bool IsSimple; -- 2.40.0