Hi Erik,

Can we just take this a step further and remove VisitAsmStmtHelperInputs and 
VisitAsmStmtHelperOutputs?  All they do is "Visit" the subexpressions, which 
isn't needed any more.  I think VisitAsmStmt could just be made into:

     StmtNodeBuilder Bldr(Pred, Dst, *currentBuilderContext);
    // We have processed both the inputs and the outputs.  All of the outputs
    // should evaluate to Locs.  Nuke all of their values.

    // FIXME: Some day in the future it would be nice to allow a "plug-in"
    // which interprets the inline asm and stores proper results in the
    // outputs.

    ProgramStateRef state = Pred->getState();

    for (AsmStmt::const_outputs_iterator OI = A->begin_outputs(),
                                   OE = A->end_outputs(); OI != OE; ++OI) {

      SVal X = state->getSVal(*OI, Pred->getLocationContext());
      assert (!isa<NonLoc>(X));  // Should be an Lval, or unknown, undef.

      if (isa<Loc>(X))
        state = state->bindLoc(cast<Loc>(X), UnknownVal());
    }

    Bldr.generateNode(A, Pred, state);
    return;


On Mar 1, 2012, at 2:50 AM, Erik Verbruggen <[email protected]> wrote:

> Patch to remove another recursive visitiation in ExprEngine that is no longer 
> needed because the CFG is fully linearized, this time for the AsmStmt.
> 
> -- Erik.
> <0001-Remove-a-recursive-visitiation-in-ExprEngine-that-is.patch>_______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to