diff options
author | Mike Stump <mrs@apple.com> | 2009-12-11 00:04:56 +0000 |
---|---|---|
committer | Mike Stump <mrs@apple.com> | 2009-12-11 00:04:56 +0000 |
commit | 6da5d75449153aaddced06dbaef3aaeea5ce3f98 (patch) | |
tree | eb7347330a401f2f7daf053ce8ad1df0d9b25d5d /clang | |
parent | 37077bf651a884f5895a715c890afc4bd45f220a (diff) | |
download | bcm5719-llvm-6da5d75449153aaddced06dbaef3aaeea5ce3f98.tar.gz bcm5719-llvm-6da5d75449153aaddced06dbaef3aaeea5ce3f98.zip |
Implement just a bit more of inline assembly.
llvm-svn: 91079
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Parse/ParseStmt.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseStmt.cpp b/clang/lib/Parse/ParseStmt.cpp index 5267ef0eccc..a2ac6465550 100644 --- a/clang/lib/Parse/ParseStmt.cpp +++ b/clang/lib/Parse/ParseStmt.cpp @@ -1169,7 +1169,20 @@ Parser::OwningStmtResult Parser::FuzzyParseMicrosoftAsmStatement() { Tok.isNot(tok::r_brace) && Tok.isNot(tok::semi) && Tok.isNot(tok::eof)); } - return Actions.ActOnNullStmt(Tok.getLocation()); + llvm::SmallVector<std::string, 4> Names; + Token t; + t.setKind(tok::string_literal); + t.setLiteralData("\"FIXME: not done\""); + t.clearFlag(Token::NeedsCleaning); + t.setLength(17); + OwningExprResult AsmString(Actions.ActOnStringLiteral(&t, 1)); + ExprVector Constraints(Actions); + ExprVector Exprs(Actions); + ExprVector Clobbers(Actions); + return Actions.ActOnAsmStmt(Tok.getLocation(), true, true, 0, 0, Names.data(), + move_arg(Constraints), move_arg(Exprs), + move(AsmString), move_arg(Clobbers), + Tok.getLocation()); } /// ParseAsmStatement - Parse a GNU extended asm statement. |