[ms-inline asm] Generate the Input/Output expressions using

Sema::ActOnIdExpression().

llvm-svn: 162564
This commit is contained in:
Chad Rosier 2012-08-24 16:38:58 +00:00
parent 51c27163c0
commit 1e17cf9c22
1 changed files with 14 additions and 7 deletions

View File

@ -598,13 +598,20 @@ StmtResult Sema::ActOnMSAsmStmt(SourceLocation AsmLoc,
AsmTokRanges[StrIdx].first,
AsmTokRanges[StrIdx].second);
if (II) {
// FIXME: Compute the InputExpr/OutputExpr using ActOnIdExpression().
if (isDef) {
Outputs.push_back(II);
OutputExprs.push_back(0);
} else {
Inputs.push_back(II);
InputExprs.push_back(0);
CXXScopeSpec SS;
UnqualifiedId Id;
SourceLocation Loc;
Id.setIdentifier(II, AsmLoc);
ExprResult Result = ActOnIdExpression(getCurScope(), SS, Loc, Id,
false, false);
if (!Result.isInvalid()) {
if (isDef) {
Outputs.push_back(II);
OutputExprs.push_back(Result.take());
} else {
Inputs.push_back(II);
InputExprs.push_back(Result.take());
}
}
}
}