[ms-inline asm] Add the implementation for the AOK_Delete kind, which was added
authorChad Rosier <mcrosier@apple.com>
Fri, 12 Apr 2013 16:26:42 +0000 (16:26 +0000)
committerChad Rosier <mcrosier@apple.com>
Fri, 12 Apr 2013 16:26:42 +0000 (16:26 +0000)
in r179325.  Test case coming shortly on the clang side.
Part of rdar://13453209

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

lib/MC/MCParser/AsmParser.cpp

index f34bbe90ed922036aa42bc2a9e0132a2d66710b2..3e39a9c846fb720298e61cdadb0b5dff0ece451a 100644 (file)
@@ -4188,12 +4188,13 @@ AsmParser::parseMSInlineAsm(void *AsmLoc, std::string &AsmString,
   for (SmallVectorImpl<AsmRewrite>::iterator I = AsmStrRewrites.begin(),
                                              E = AsmStrRewrites.end();
        I != E; ++I) {
+    AsmRewriteKind Kind = (*I).Kind;
+    if (Kind == AOK_Delete)
+      continue;
+
     const char *Loc = (*I).Loc.getPointer();
     assert(Loc >= AsmStart && "Expected Loc to be at or after Start!");
 
-    unsigned AdditionalSkip = 0;
-    AsmRewriteKind Kind = (*I).Kind;
-
     // Emit everything up to the immediate/expression.
     unsigned Len = Loc - AsmStart;
     if (Len)
@@ -4205,6 +4206,7 @@ AsmParser::parseMSInlineAsm(void *AsmLoc, std::string &AsmString,
       continue;
     }
 
+    unsigned AdditionalSkip = 0;
     // Rewrite expressions in $N notation.
     switch (Kind) {
     default: break;