[cfe-commits] [PATCH] Removed another recursive visit in ExprEngine
Erik Verbruggen
erik.verbruggen at me.com
Thu Mar 1 11:29:28 PST 2012
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 <kremenek at apple.com> 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 <erik.verbruggen at me.com> 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
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
More information about the cfe-commits
mailing list