From 69f7ed5f6dc24ca60125e718ac283148433512b7 Mon Sep 17 00:00:00 2001 From: Peter O'Hearn Date: Mon, 17 Oct 2016 12:21:25 -0700 Subject: [PATCH] [threadsafe] fix the code for recognizing constructors Reviewed By: sblackshear Differential Revision: D4030221 fbshipit-source-id: 5433686 --- infer/src/checkers/ThreadSafety.ml | 3 ++- .../tests/codetoanalyze/java/checkers/ThreadSafeExample.java | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/infer/src/checkers/ThreadSafety.ml b/infer/src/checkers/ThreadSafety.ml index b05e035b8..e76866a28 100644 --- a/infer/src/checkers/ThreadSafety.ml +++ b/infer/src/checkers/ThreadSafety.ml @@ -110,7 +110,8 @@ module ResultsTableType = Map.Make (struct end) let should_analyze_proc (_,_,proc_name,proc_desc) = - (Procname.is_constructor proc_name) || (Cfg.Procdesc.get_access proc_desc <> PredSymb.Private) + not (Procname.is_constructor proc_name) && + Cfg.Procdesc.get_access proc_desc <> PredSymb.Private (* creates a map from proc_envs to postconditions *) let make_results_table file_env = diff --git a/infer/tests/codetoanalyze/java/checkers/ThreadSafeExample.java b/infer/tests/codetoanalyze/java/checkers/ThreadSafeExample.java index 46abf778d..256c21550 100644 --- a/infer/tests/codetoanalyze/java/checkers/ThreadSafeExample.java +++ b/infer/tests/codetoanalyze/java/checkers/ThreadSafeExample.java @@ -26,6 +26,10 @@ public class ThreadSafeExample{ Integer f; + public ThreadSafeExample() { + f = 86; + } + public void tsOK() { synchronized (this) { f = 42;