[PATCH] D56571: [RFC prototype] Implementation of asm-goto support in LLVM
Jennifer Yu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 11 14:01:16 PST 2019
jyu2 marked an inline comment as done.
jyu2 added inline comments.
================
Comment at: lib/Sema/SemaStmtAsm.cpp:470
+ if (NS->isGCCAsmGoto() &&
+ Exprs[ConstraintIdx]->getStmtClass() == Stmt::AddrLabelExprClass)
+ break;
----------------
efriedma wrote:
> jyu2 wrote:
> > efriedma wrote:
> > > This looks suspicious; an AddrLabelExpr could be an input or output, e.g. `"r"(&&foo)`.
> > Syntax for asm goto:
> > Syntax:
> > asm [volatile] goto ( AssemblerTemplate
> > :
> > : InputOperands
> > : Clobbers
> > : GotoLabels)
> >
> > Only input is allowed. Output is not allowed
> >
> That doesn't really address my point here... ignore the "or output" part of the comment.
Sorry did not realize that. Thank you so much for catching that. Need to add other condition "ConstraintIdx > NS->getNumInputs() - 1", change to :
if (NS->isGCCAsmGoto() && ConstraintIdx > NS->getNumInputs() - 1 &&
Exprs[ConstraintIdx]->getStmtClass() == Stmt::AddrLabelExprClass)
break;
Is this ok with you? Thanks
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D56571/new/
https://reviews.llvm.org/D56571
More information about the cfe-commits
mailing list