Interesting. We aren't actually simulating a load, which is done by 'evalLoad', which triggers the dereference checking. We could do that after your cleanup.
On Mar 1, 2012, at 11:29 AM, Erik Verbruggen <[email protected]> wrote: > Hi Ted, > > I'll Hove it a spin. Do you by chance have any idea why clang (with and > without patch) does not warn on the de-ref of the input parameter? > > -- Erik. > > > On 1 mrt. 2012, at 20:22, Ted Kremenek <[email protected]> wrote: > >> 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
