protected IEnumerable <BoogieVerb> getBoogieVerbs(VerificationRequest verificationRequest) { if (verificationRequest.verifyMode == VerificationRequest.VerifyMode.NoVerify) { return(new BoogieVerb[] { }); } BoogieAsmDepBase.BasmModuleAccumulator acc = new BoogieAsmDepBase.BasmModuleAccumulator(context, upstreamObj, includeAllImps()); List <BuildObject> basmModules = new List <BuildObject>(acc.basmModules.Where(mod => !mod.isTrusted)); OrderPreservingSet <BoogieVerb> normal_Boogie = new OrderPreservingSet <BoogieVerb>(); OrderPreservingSet <BoogieVerb> SymDiff_Boogie = new OrderPreservingSet <BoogieVerb>(); foreach (BuildObject basmModule in basmModules) { if (verificationRequest.verifyMode == VerificationRequest.VerifyMode.SelectiveVerify && !verificationRequest.selectiveVerifyModuleNames.Contains(basmModule.getFileNameWithoutExtension())) { continue; } normal_Boogie.Add(new BoogieVerb(context, basmModule, symdiff: VerificationRequest.SymDiffMode.NoSymDiff)); if (verificationRequest.getSymDiffMode() == VerificationRequest.SymDiffMode.UseSymDiff && BoogieAsmVerifyVerb.needs_symdiff(basmModule)) { SymDiff_Boogie.Add(new BoogieVerb(context, basmModule, symdiff: VerificationRequest.SymDiffMode.UseSymDiff)); } } return(SymDiff_Boogie.Union(normal_Boogie)); }
public BoogieAsmVerifyVerb(IContextGeneratingVerb context, BuildObject input, bool buildSymDiffMutualSummary) : base(context, input) { this.buildSymDiffMutualSummary = buildSymDiffMutualSummary; this.enableSymdiff = BoogieAsmVerifyVerb.needs_symdiff(basmInput); }