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



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to