]> granicus.if.org Git - clang/commitdiff
Fix a parser bug on labeled inline asm stmts, allowing us
authorChris Lattner <sabre@nondot.org>
Mon, 29 Oct 2007 04:06:22 +0000 (04:06 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 29 Oct 2007 04:06:22 +0000 (04:06 +0000)
to parse stuff like:

asm volatile("1:  rex64/fxrstor (%[fx])\n\t"
       "2:\n"
       ".section .fixup,\"ax\"\n"
       "3:  movl $-1,%[err]\n"
       "    jmp  2b\n"
       ".previous\n"
       ".section __ex_table,\"a\"\n"
       "   .align 8\n"
       "   .quad  1b,3b\n"
       ".previous"
       : [err] "=r" (err)
       : [fx] "cdaSDb" (fx), "m" (*fx), "0" (0));

This reduces # diagnostics on PR1750 from 49 to 37.

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

Parse/ParseStmt.cpp

index 68781c1be4c9961488e8da8e400896c52efa61d4..068921a616b1e5f47d9b56702e2dd846d1e3a037 100644 (file)
@@ -985,6 +985,10 @@ void Parser::ParseAsmOperandsOpt() {
         SkipUntil(tok::r_paren);
         return;
       }
+      
+      // Eat the identifier, FIXME: capture it.
+      ConsumeToken();
+      
       MatchRHSPunctuation(tok::r_square, Loc);
     }