diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-11-02 02:33:08 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-11-02 02:33:08 +0000 |
commit | 3050d9bdb84e322e122219d54aedfe2d8ef7c51c (patch) | |
tree | aa45334d5da6557cd0b92f02edff7ef0cea3af91 /clang/lib/Parse/ParseStmt.cpp | |
parent | 315d2cab27780f692537b2c9726fbecc31097bf0 (diff) | |
download | bcm5719-llvm-3050d9bdb84e322e122219d54aedfe2d8ef7c51c.tar.gz bcm5719-llvm-3050d9bdb84e322e122219d54aedfe2d8ef7c51c.zip |
Properly handle temporaries that are created in a AsmStmt.
Previously the temporaries would get destroyed before the asm call.
llvm-svn: 118001
Diffstat (limited to 'clang/lib/Parse/ParseStmt.cpp')
-rw-r--r-- | clang/lib/Parse/ParseStmt.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseStmt.cpp b/clang/lib/Parse/ParseStmt.cpp index 76956732d49..78d0d2f2d55 100644 --- a/clang/lib/Parse/ParseStmt.cpp +++ b/clang/lib/Parse/ParseStmt.cpp @@ -188,6 +188,7 @@ Parser::ParseStatementOrDeclaration(StmtVector &Stmts, bool OnlyStatement) { << Attr.Range; bool msAsm = false; Res = ParseAsmStatement(msAsm); + Res = Actions.ActOnFinishFullStmt(Res.get()); if (msAsm) return move(Res); SemiError = "asm"; break; @@ -1458,7 +1459,6 @@ bool Parser::ParseAsmOperandsOpt(llvm::SmallVectorImpl<IdentifierInfo *> &Names, SkipUntil(tok::r_paren); return true; } - Res = Actions.MakeFullExpr(Res.get()).release(); Exprs.push_back(Res.release()); // Eat the comma and continue parsing if it exists. if (Tok.isNot(tok::comma)) return false; |