diff --git a/src/analyses/base.ml b/src/analyses/base.ml index 70a3549621..5bd575bfbc 100644 --- a/src/analyses/base.ml +++ b/src/analyses/base.ml @@ -2302,6 +2302,8 @@ struct (* add variables from callee that are not in caller yet *) let cpa_new = CPA.filter (fun x _ -> not (CPA.mem x cpa_caller)) cpa_noreturn in let cpa_caller' = CPA.fold CPA.add cpa_new cpa_caller in + (* remove lvals from the tainted set that correspond to variables for which we just added a new mapping from the callee*) + let tainted = Q.LS.filter (fun (v, _) -> not (CPA.mem v cpa_new)) tainted in let st_combined = combine_st ctx {st with cpa = cpa_caller'} fun_st tainted in if M.tracing then M.trace "taintPC" "combined: %a\n" CPA.pretty st_combined.cpa; { fun_st with cpa = st_combined.cpa } diff --git a/tests/regression/64-taint/01-simple.c b/tests/regression/65-taint/01-simple.c similarity index 100% rename from tests/regression/64-taint/01-simple.c rename to tests/regression/65-taint/01-simple.c diff --git a/tests/regression/64-taint/02-invalidate.c b/tests/regression/65-taint/02-invalidate.c similarity index 100% rename from tests/regression/64-taint/02-invalidate.c rename to tests/regression/65-taint/02-invalidate.c diff --git a/tests/regression/64-taint/03-lval.c b/tests/regression/65-taint/03-lval.c similarity index 100% rename from tests/regression/64-taint/03-lval.c rename to tests/regression/65-taint/03-lval.c diff --git a/tests/regression/64-taint/04-multithread.c b/tests/regression/65-taint/04-multithread.c similarity index 100% rename from tests/regression/64-taint/04-multithread.c rename to tests/regression/65-taint/04-multithread.c diff --git a/tests/regression/64-taint/05-partArray.c b/tests/regression/65-taint/05-partArray.c similarity index 100% rename from tests/regression/64-taint/05-partArray.c rename to tests/regression/65-taint/05-partArray.c diff --git a/tests/regression/64-taint/06-condVars.c b/tests/regression/65-taint/06-condVars.c similarity index 100% rename from tests/regression/64-taint/06-condVars.c rename to tests/regression/65-taint/06-condVars.c diff --git a/tests/regression/64-taint/07-varEq.c b/tests/regression/65-taint/07-varEq.c similarity index 100% rename from tests/regression/64-taint/07-varEq.c rename to tests/regression/65-taint/07-varEq.c diff --git a/tests/regression/64-taint/08-apron.c b/tests/regression/65-taint/08-apron.c similarity index 100% rename from tests/regression/64-taint/08-apron.c rename to tests/regression/65-taint/08-apron.c diff --git a/tests/regression/64-taint/09-multipleVar.c b/tests/regression/65-taint/09-multipleVar.c similarity index 100% rename from tests/regression/64-taint/09-multipleVar.c rename to tests/regression/65-taint/09-multipleVar.c diff --git a/tests/regression/64-taint/10-callToMain.c b/tests/regression/65-taint/10-callToMain.c similarity index 100% rename from tests/regression/64-taint/10-callToMain.c rename to tests/regression/65-taint/10-callToMain.c diff --git a/tests/regression/64-taint/11-svcomp-cstrcmp.c b/tests/regression/65-taint/11-svcomp-cstrcmp.c similarity index 100% rename from tests/regression/64-taint/11-svcomp-cstrcmp.c rename to tests/regression/65-taint/11-svcomp-cstrcmp.c