Summary: More general version of the fix in D6138749. This diff moves RacerD's lock modeling into a separate module and uses the module in the HIL translation to check when a function has lock/unlock semantics.
Reviewed By: jberdine, da319
Differential Revision: D6191886
fbshipit-source-id: 6e1fdc3
master
Sam Blackshear7 years agocommitted byFacebook Github Bot
codetoanalyze/java/racerd/Builders.java, Builders$Obj Builders.buildThenMutateBad(Builders$Obj), 3, THREAD_SAFETY_VIOLATION, [access to `&input.codetoanalyze.java.checkers.Builders$Obj.g`]
codetoanalyze/java/racerd/Builders.java, Builders$Obj Builders.mutateBad(Builders$Obj), 1, THREAD_SAFETY_VIOLATION, [access to `&o.codetoanalyze.java.checkers.Builders$Obj.g`]
codetoanalyze/java/racerd/Builders.java, void TopLevelBuilder.setG(String), 1, THREAD_SAFETY_VIOLATION, [access to `&this.codetoanalyze.java.checkers.TopLevelBuilder.g`]
codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singletonBad(), 2, THREAD_SAFETY_VIOLATION, [call to Constructors.<init>(Object),access to `&#GB<codetoanalyze/java/racerd/Constructors.java>$Constructors.Constructors.staticField`]
codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.FP_singleton2Ok(), 6, THREAD_SAFETY_VIOLATION, [<Read trace>,access to `&#GB<codetoanalyze/java/racerd/Constructors.java>$Constructors.Constructors.sSingleton1`,<Write trace>,access to `&#GB<codetoanalyze/java/racerd/Constructors.java>$Constructors.Constructors.sSingleton1`]
codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singleton1Bad(), 2, THREAD_SAFETY_VIOLATION, [call to Constructors.<init>(Object),access to `&#GB<codetoanalyze/java/racerd/Constructors.java>$Constructors.Constructors.staticField`]
codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singleton2Bad(), 1, THREAD_SAFETY_VIOLATION, [<Read trace>,access to `&#GB<codetoanalyze/java/racerd/Constructors.java>$Constructors.Constructors.sSingleton2`,<Write trace>,access to `&#GB<codetoanalyze/java/racerd/Constructors.java>$Constructors.Constructors.sSingleton2`]
codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singleton2Bad(), 2, THREAD_SAFETY_VIOLATION, [access to `&#GB<codetoanalyze/java/racerd/Constructors.java>$Constructors.Constructors.sSingleton2`]
codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singleton2Bad(), 4, THREAD_SAFETY_VIOLATION, [<Read trace>,access to `&#GB<codetoanalyze/java/racerd/Constructors.java>$Constructors.Constructors.sSingleton2`,<Write trace>,access to `&#GB<codetoanalyze/java/racerd/Constructors.java>$Constructors.Constructors.sSingleton2`]
codetoanalyze/java/racerd/Constructors.java, Constructors.<init>(), 1, THREAD_SAFETY_VIOLATION, [access to `&#GB<codetoanalyze/java/racerd/Constructors.java>$Constructors.Constructors.staticField`]
codetoanalyze/java/racerd/Constructors.java, Constructors.<init>(Constructors), 1, THREAD_SAFETY_VIOLATION, [access to `&o.Constructors.field`]
codetoanalyze/java/racerd/Containers.java, boolean Containers.listReadBad(String), 1, THREAD_SAFETY_VIOLATION, [<Read trace>,Read of container `&this.codetoanalyze.java.checkers.Containers.mList` via call to `contains`,<Write trace>,Write to container `&this.codetoanalyze.java.checkers.Containers.mList` via call to `set`]