From 6d46b0c7be3a16b8e12aeafe6e0ad3e741735d44 Mon Sep 17 00:00:00 2001 From: Sam Blackshear Date: Fri, 16 Mar 2018 15:49:00 -0700 Subject: [PATCH] [cleanup] stop printing `&`'s on `Var.t`'s Reviewed By: jeremydubreil Differential Revision: D7299568 fbshipit-source-id: ec7b18f --- infer/src/{absint => IR}/Var.ml | 9 +- infer/src/{absint => IR}/Var.mli | 0 infer/src/unit/TaintTests.ml | 6 +- infer/src/unit/accessPathTests.ml | 20 +- infer/src/unit/livenessTests.ml | 51 ++-- infer/tests/build_systems/ant/issues.exp | 36 +-- .../codetoanalyze/cpp/conflicts/issues.exp | 2 +- .../codetoanalyze/cpp/nullable/issues.exp | 10 +- .../codetoanalyze/cpp/quandary/issues.exp | 4 +- .../tests/codetoanalyze/cpp/racerd/issues.exp | 52 ++-- .../codetoanalyze/java/checkers/issues.exp | 2 +- .../codetoanalyze/java/deadlock/issues.exp | 6 +- .../tests/codetoanalyze/java/litho/issues.exp | 72 ++--- .../codetoanalyze/java/quandary/issues.exp | 22 +- .../codetoanalyze/java/racerd/issues.exp | 250 +++++++++--------- .../codetoanalyze/java/stability/issues.exp | 10 +- .../codetoanalyze/objc/nullable/issues.exp | 28 +- 17 files changed, 293 insertions(+), 287 deletions(-) rename infer/src/{absint => IR}/Var.ml (90%) rename infer/src/{absint => IR}/Var.mli (100%) diff --git a/infer/src/absint/Var.ml b/infer/src/IR/Var.ml similarity index 90% rename from infer/src/absint/Var.ml rename to infer/src/IR/Var.ml index b351956a7..3af18702f 100644 --- a/infer/src/absint/Var.ml +++ b/infer/src/IR/Var.ml @@ -8,6 +8,7 @@ *) open! IStd +module F = Format (** Single abstraction for all the kinds of variables in SIL *) @@ -43,7 +44,13 @@ let appears_in_source_code = function | ProgramVar pvar -> not (Pvar.is_frontend_tmp pvar) -let pp fmt = function ProgramVar pv -> Pvar.pp Pp.text fmt pv | LogicalVar id -> Ident.pp fmt id + +let pp fmt = function + | ProgramVar pv -> + F.fprintf fmt "%s" (Pvar.get_simplified_name pv) + | LogicalVar id -> + Ident.pp fmt id + let get_footprint_index t = match t with LogicalVar id when is_footprint t -> Some (Ident.get_stamp id) | _ -> None diff --git a/infer/src/absint/Var.mli b/infer/src/IR/Var.mli similarity index 100% rename from infer/src/absint/Var.mli rename to infer/src/IR/Var.mli diff --git a/infer/src/unit/TaintTests.ml b/infer/src/unit/TaintTests.ml index 9e3fefba2..1ce818413 100644 --- a/infer/src/unit/TaintTests.ml +++ b/infer/src/unit/TaintTests.ml @@ -129,7 +129,7 @@ let tests = ; ( "source flows to var" , [ assign_to_source "ret_id" ; var_assign_id "var" "ret_id" - ; invariant "{ ret_id$0* => (SOURCE -> ?), &var* => (SOURCE -> ?) }" ] ) + ; invariant "{ ret_id$0* => (SOURCE -> ?), var* => (SOURCE -> ?) }" ] ) ; ( "source flows to field" , [ assign_to_source "ret_id" ; assign_id_to_field "base_id" "f" "ret_id" @@ -142,11 +142,11 @@ let tests = ; invariant "{ base_id$0.f* => (SOURCE -> ?),\n \ ret_id$0* => (SOURCE -> ?),\n \ - &var* => (SOURCE -> ?) }" ] ) + var* => (SOURCE -> ?) }" ] ) ; ( "source flows to var then cleared" , [ assign_to_source "ret_id" ; var_assign_id "var" "ret_id" - ; invariant "{ ret_id$0* => (SOURCE -> ?), &var* => (SOURCE -> ?) }" + ; invariant "{ ret_id$0* => (SOURCE -> ?), var* => (SOURCE -> ?) }" ; assign_to_non_source "non_source_id" ; var_assign_id "var" "non_source_id" ; invariant "{ ret_id$0* => (SOURCE -> ?) }" ] ) diff --git a/infer/src/unit/accessPathTests.ml b/infer/src/unit/accessPathTests.ml index 866e91913..7525b3342 100644 --- a/infer/src/unit/accessPathTests.ml +++ b/infer/src/unit/accessPathTests.ml @@ -158,23 +158,23 @@ let tests = assert_bool "aps2 <= aps1" (AccessPathDomains.Set.( <= ) ~lhs:aps2 ~rhs:aps1) ; assert_bool "aps1 <= aps3" (AccessPathDomains.Set.( <= ) ~lhs:aps1 ~rhs:aps3) ; assert_bool "not aps3 <= aps1" (not (AccessPathDomains.Set.( <= ) ~lhs:aps3 ~rhs:aps1)) ; - assert_eq (AccessPathDomains.Set.join aps1 aps1) "{ &x*, &x }" ; - assert_eq (AccessPathDomains.Set.join aps1 aps2) "{ &x*, &x, &x.f }" ; - assert_eq (AccessPathDomains.Set.join aps1 aps3) "{ &x*, &x, &x.f, &y.f }" ; + assert_eq (AccessPathDomains.Set.join aps1 aps1) "{ x*, x }" ; + assert_eq (AccessPathDomains.Set.join aps1 aps2) "{ x*, x, x.f }" ; + assert_eq (AccessPathDomains.Set.join aps1 aps3) "{ x*, x, x.f, y.f }" ; let widen s1 s2 = AccessPathDomains.Set.widen ~prev:s1 ~next:s2 ~num_iters:10 in - assert_eq (widen aps1 aps1) "{ &x*, &x }" ; - assert_eq (widen aps2 aps3) "{ &x*, &y.f*, &x, &x.f }" ; + assert_eq (widen aps1 aps1) "{ x*, x }" ; + assert_eq (widen aps2 aps3) "{ x*, y.f*, x, x.f }" ; let aps_prev = AccessPathDomains.Set.of_list [x_exact; y_exact] in (* { x, y } *) let aps_next = AccessPathDomains.Set.of_list [y_exact; yF_exact] in (* { y. y.f } *) (* { x, y } \/ { y, y.f } = { y.f*, x, y } *) - assert_eq (widen aps_prev aps_next) "{ &y.f*, &x, &y }" ; + assert_eq (widen aps_prev aps_next) "{ y.f*, x, y }" ; (* { y, y.f } \/ { x, y } = { x*, y, y.f } *) - assert_eq (widen aps_next aps_prev) "{ &x*, &y, &y.f }" ; - assert_eq (AccessPathDomains.Set.normalize aps1) "{ &x* }" ; - assert_eq (AccessPathDomains.Set.normalize aps2) "{ &x* }" ; - assert_eq (AccessPathDomains.Set.normalize aps3) "{ &x*, &y.f }" + assert_eq (widen aps_next aps_prev) "{ x*, y, y.f }" ; + assert_eq (AccessPathDomains.Set.normalize aps1) "{ x* }" ; + assert_eq (AccessPathDomains.Set.normalize aps2) "{ x* }" ; + assert_eq (AccessPathDomains.Set.normalize aps3) "{ x*, y.f }" in "domain" >:: domain_test_ in diff --git a/infer/src/unit/livenessTests.ml b/infer/src/unit/livenessTests.ml index ccc75a934..ba066aa67 100644 --- a/infer/src/unit/livenessTests.ml +++ b/infer/src/unit/livenessTests.ml @@ -28,22 +28,22 @@ let tests = Exp.zero in let test_list = - [ ("basic_live", [invariant "{ &b }"; id_assign_var "a" "b"]) + [ ("basic_live", [invariant "{ b }"; id_assign_var "a" "b"]) ; ( "basic_live_then_dead" - , [assert_empty; var_assign_int "b" 1; invariant "{ &b }"; id_assign_var "a" "b"] ) + , [assert_empty; var_assign_int "b" 1; invariant "{ b }"; id_assign_var "a" "b"] ) ; ( "iterative_live" - , [ invariant "{ &b, &f, &d }" + , [ invariant "{ b, f, d }" ; id_assign_var "e" "f" - ; invariant "{ &b, &d }" + ; invariant "{ b, d }" ; id_assign_var "c" "d" - ; invariant "{ &b }" + ; invariant "{ b }" ; id_assign_var "a" "b" ] ) ; ( "live_kill_live" - , [ invariant "{ &b }" + , [ invariant "{ b }" ; id_assign_var "c" "b" ; assert_empty ; var_assign_int "b" 1 - ; invariant "{ &b }" + ; invariant "{ b }" ; id_assign_var "a" "b" ] ) ; ("basic_live_load", [invariant "{ y$0 }"; id_assign_id "x" "y"]) ; ( "basic_live_then_kill_load" @@ -52,10 +52,10 @@ let tests = , (* this is *x = y, which is a read of both x and y *) [invariant "{ x$0, y$0 }"; id_set_id "x" "y"] ) ; ( "if_exp_live" - , [assert_empty; var_assign_int "x" 1; invariant "{ &x }"; If (var_of_str "x", [], [])] ) + , [assert_empty; var_assign_int "x" 1; invariant "{ x }"; If (var_of_str "x", [], [])] ) ; ( "while_exp_live" - , [assert_empty; var_assign_int "x" 1; invariant "{ &x }"; While (var_of_str "x", [])] ) - ; ("call_params_live", [invariant "{ &b, &a, &c }"; call_unknown_no_ret ["a"; "b"; "c"]]) + , [assert_empty; var_assign_int "x" 1; invariant "{ x }"; While (var_of_str "x", [])] ) + ; ("call_params_live", [invariant "{ b, a, c }"; call_unknown_no_ret ["a"; "b"; "c"]]) ; ( "dead_after_call_with_retval" , [ assert_empty ; call_unknown (Some ("y", Typ.mk (Tint IInt))) [] @@ -64,42 +64,41 @@ let tests = ; ( "closure_captured_live" , [invariant "{ b$0, c$0 }"; var_assign_exp ~rhs_typ:fun_ptr_typ "a" (closure_exp ["b"; "c"])] ) - ; ( "if_conservative_live1" - , [invariant "{ &b }"; If (unknown_cond, [id_assign_var "a" "b"], [])] ) + ; ("if_conservative_live1", [invariant "{ b }"; If (unknown_cond, [id_assign_var "a" "b"], [])]) ; ( "if_conservative_live2" - , [ invariant "{ &b, &d }" - ; If (unknown_cond, [id_assign_var "a" "b"], [id_assign_var "c" "d"]) ] ) + , [invariant "{ b, d }"; If (unknown_cond, [id_assign_var "a" "b"], [id_assign_var "c" "d"])] + ) ; ( "if_conservative_kill" - , [ invariant "{ &b }" + , [ invariant "{ b }" ; If (unknown_cond, [var_assign_int "b" 1], []) - ; invariant "{ &b }" + ; invariant "{ b }" ; id_assign_var "a" "b" ] ) ; ( "if_conservative_kill_live" - , [ invariant "{ &b, &d }" + , [ invariant "{ b, d }" ; If (unknown_cond, [var_assign_int "b" 1], [id_assign_var "c" "d"]) - ; invariant "{ &b }" + ; invariant "{ b }" ; id_assign_var "a" "b" ] ) ; ( "if_precise1" , [ assert_empty ; If ( unknown_cond - , [var_assign_int "b" 1; invariant "{ &b }"; id_assign_var "a" "b"] - , [var_assign_int "d" 1; invariant "{ &d }"; id_assign_var "c" "d"] ) ] ) + , [var_assign_int "b" 1; invariant "{ b }"; id_assign_var "a" "b"] + , [var_assign_int "d" 1; invariant "{ d }"; id_assign_var "c" "d"] ) ] ) ; ( "if_precise2" , [ assert_empty ; If (unknown_cond, [var_assign_int "b" 2], [var_assign_int "b" 1]) - ; invariant "{ &b }" + ; invariant "{ b }" ; id_assign_var "a" "b" ] ) - ; ("loop_as_if1", [invariant "{ &b }"; While (unknown_cond, [id_assign_var "a" "b"])]) + ; ("loop_as_if1", [invariant "{ b }"; While (unknown_cond, [id_assign_var "a" "b"])]) ; ( "loop_as_if2" - , [ invariant "{ &b }" + , [ invariant "{ b }" ; While (unknown_cond, [var_assign_int "b" 1]) - ; invariant "{ &b }" + ; invariant "{ b }" ; id_assign_var "a" "b" ] ) ; ( "loop_before_after" - , [ invariant "{ &b, &d }" + , [ invariant "{ b, d }" ; While (unknown_cond, [id_assign_var "b" "d"]) - ; invariant "{ &b }" + ; invariant "{ b }" ; id_assign_var "a" "b" ] ) ] |> TestInterpreter.create_tests ProcData.empty_extras ~initial:Liveness.Domain.empty in diff --git a/infer/tests/build_systems/ant/issues.exp b/infer/tests/build_systems/ant/issues.exp index 0febb1acc..1985009ca 100644 --- a/infer/tests/build_systems/ant/issues.exp +++ b/infer/tests/build_systems/ant/issues.exp @@ -50,42 +50,42 @@ codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLe codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.gzipOutputStreamNotClosedAfterFlush(), 7, RESOURCE_LEAK, ERROR, [start of procedure gzipOutputStreamNotClosedAfterFlush(),exception java.io.IOException] codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.inflaterOutputStreamNotClosedAfterWrite(), 8, RESOURCE_LEAK, ERROR, [start of procedure inflaterOutputStreamNotClosedAfterWrite(),exception java.io.IOException] codetoanalyze/java/infer/FilterOutputStreamLeaks.java, void FilterOutputStreamLeaks.printStreamNotClosedAfterWrite(), 6, RESOURCE_LEAK, ERROR, [start of procedure printStreamNotClosedAfterWrite()] -codetoanalyze/java/infer/GuardedByExample.java, Object GuardedByExample.byRefTrickyBad(), 5, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.g`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.g`] +codetoanalyze/java/infer/GuardedByExample.java, Object GuardedByExample.byRefTrickyBad(), 5, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.g`,,access to `this.codetoanalyze.java.infer.GuardedByExample.g`] codetoanalyze/java/infer/GuardedByExample.java, Object GuardedByExample.byRefTrickyBad(), 5, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure byRefTrickyBad()] codetoanalyze/java/infer/GuardedByExample.java, String GuardedByExample$3.readFromInnerClassBad1(), 2, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure readFromInnerClassBad1()] codetoanalyze/java/infer/GuardedByExample.java, String GuardedByExample$4.readFromInnerClassBad2(), 1, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure readFromInnerClassBad2()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample$Sub.badSub(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.xForSub`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.xForSub`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample$Sub.badSub(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.xForSub`,,access to `this.codetoanalyze.java.infer.GuardedByExample.xForSub`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample$Sub.badSub(), 1, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure badSub()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.badGuardedByNormalLock(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.guardedbynl`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.guardedbynl`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.badGuardedByNormalLock(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.guardedbynl`,,access to `this.codetoanalyze.java.infer.GuardedByExample.guardedbynl`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.badGuardedByNormalLock(), 1, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure badGuardedByNormalLock()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.badGuardedByReentrantLock(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.guardedbyrel`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.guardedbyrel`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.badGuardedByReentrantLock(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.guardedbyrel`,,access to `this.codetoanalyze.java.infer.GuardedByExample.guardedbyrel`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.badGuardedByReentrantLock(), 1, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure badGuardedByReentrantLock()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.guardedByTypeSyntaxBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.guardedByLock1`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.guardedByLock1`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.guardedByTypeSyntaxBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.guardedByLock1`,,access to `this.codetoanalyze.java.infer.GuardedByExample.guardedByLock1`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.guardedByTypeSyntaxBad(), 1, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure guardedByTypeSyntaxBad()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.guardedByTypeSyntaxBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.guardedByLock2`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.guardedByLock2`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.guardedByTypeSyntaxBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.guardedByLock2`,,access to `this.codetoanalyze.java.infer.GuardedByExample.guardedByLock2`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.guardedByTypeSyntaxBad(), 2, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure guardedByTypeSyntaxBad()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFAfterBlockBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFAfterBlockBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `this.codetoanalyze.java.infer.GuardedByExample.f`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFAfterBlockBad(), 3, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure readFAfterBlockBad()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `this.codetoanalyze.java.infer.GuardedByExample.f`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBad(), 1, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure readFBad()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBadWrongAnnotation(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBadWrongAnnotation(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `this.codetoanalyze.java.infer.GuardedByExample.f`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBadWrongAnnotation(), 1, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure readFBadWrongAnnotation()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBadWrongLock(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBadWrongLock(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `this.codetoanalyze.java.infer.GuardedByExample.f`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFBadWrongLock(), 2, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure readFBadWrongLock()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFOkMethodAnnotated(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFOkSynchronized(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readGFromCopyOk(), 5, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.mCopyOfG`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.mCopyOfG`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFOkMethodAnnotated(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `this.codetoanalyze.java.infer.GuardedByExample.f`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readFOkSynchronized(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `this.codetoanalyze.java.infer.GuardedByExample.f`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readGFromCopyOk(), 5, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.mCopyOfG`,,access to `this.codetoanalyze.java.infer.GuardedByExample.mCopyOfG`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readHBad(), 2, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure readHBad()] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.readHBadSynchronizedMethodShouldntHelp(), 1, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure readHBadSynchronizedMethodShouldntHelp()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.reassignCopyOk(), 4, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.infer.GuardedByExample.mCopyOfG`] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.synchronizedMethodReadBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.reassignCopyOk(), 4, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.infer.GuardedByExample.mCopyOfG`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.synchronizedMethodReadBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `this.codetoanalyze.java.infer.GuardedByExample.f`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.synchronizedMethodReadBad(), 1, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure synchronizedMethodReadBad()] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.synchronizedMethodWriteBad(), 1, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure synchronizedMethodWriteBad()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.synchronizedOnThisBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&#GB<>$codetoanalyze.java.infer.GuardedByExample.codetoanalyze.java.infer.GuardedByExample.sGuardedByClass`,,access to `&#GB<>$codetoanalyze.java.infer.GuardedByExample.codetoanalyze.java.infer.GuardedByExample.sGuardedByClass`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.synchronizedOnThisBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `infer.GuardedByExample.codetoanalyze.java.infer.GuardedByExample.sGuardedByClass`,,access to `infer.GuardedByExample.codetoanalyze.java.infer.GuardedByExample.sGuardedByClass`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.synchronizedOnThisBad(), 1, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure synchronizedOnThisBad()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.writeFAfterBlockBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.infer.GuardedByExample.f`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.writeFAfterBlockBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.infer.GuardedByExample.f`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.writeFAfterBlockBad(), 3, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure writeFAfterBlockBad()] -codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.writeFBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `&this.codetoanalyze.java.infer.GuardedByExample.f`] +codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.writeFBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.infer.GuardedByExample.f`,,access to `this.codetoanalyze.java.infer.GuardedByExample.f`] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.writeFBad(), 1, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure writeFBad()] codetoanalyze/java/infer/GuardedByExample.java, void GuardedByExample.writeFBadWrongLock(), 2, UNSAFE_GUARDED_BY_ACCESS, ERROR, [start of procedure writeFBadWrongLock()] codetoanalyze/java/infer/HashMapExample.java, int HashMapExample.getOneIntegerWithoutCheck(), 6, NULL_DEREFERENCE, ERROR, [start of procedure getOneIntegerWithoutCheck()] diff --git a/infer/tests/codetoanalyze/cpp/conflicts/issues.exp b/infer/tests/codetoanalyze/cpp/conflicts/issues.exp index 58cf49956..e973f5662 100644 --- a/infer/tests/codetoanalyze/cpp/conflicts/issues.exp +++ b/infer/tests/codetoanalyze/cpp/conflicts/issues.exp @@ -1,3 +1,3 @@ codetoanalyze/cpp/conflicts/test.cpp, test1_bad, 2, NULL_DEREFERENCE, ERROR, [start of procedure test1_bad(),Skipping nullableMethod(): function or method not found] codetoanalyze/cpp/conflicts/test.cpp, test2_bad, 1, NULLABLE_DEREFERENCE, ERROR, [dereferencing the return of nullableMethod(),definition of nullableMethod] -codetoanalyze/cpp/conflicts/test.cpp, test3_bad, 5, NULLABLE_DEREFERENCE, ERROR, [dereference of &p,assignment of the nullable value,definition of nullableMethod] +codetoanalyze/cpp/conflicts/test.cpp, test3_bad, 5, NULLABLE_DEREFERENCE, ERROR, [dereference of p,assignment of the nullable value,definition of nullableMethod] diff --git a/infer/tests/codetoanalyze/cpp/nullable/issues.exp b/infer/tests/codetoanalyze/cpp/nullable/issues.exp index 280a8574b..cd1d46886 100644 --- a/infer/tests/codetoanalyze/cpp/nullable/issues.exp +++ b/infer/tests/codetoanalyze/cpp/nullable/issues.exp @@ -7,19 +7,19 @@ codetoanalyze/cpp/nullable/example.cpp, T_dereference_unnanotated_field_after_te codetoanalyze/cpp/nullable/example.cpp, T_dereference_unnanotated_field_after_test_for_null_bad, 2, NULL_DEREFERENCE, ERROR, [start of procedure dereference_unnanotated_field_after_test_for_null_bad,Condition is true] codetoanalyze/cpp/nullable/example.cpp, T_test_nonnull_field_for_null_bad, 1, FIELD_SHOULD_BE_NULLABLE, WARNING, [Field nonnull_field is compared to null here] codetoanalyze/cpp/nullable/example.cpp, T_test_unnanotated_field_for_null_bad, 1, FIELD_SHOULD_BE_NULLABLE, WARNING, [Field unnanotated_field is compared to null here] -codetoanalyze/cpp/nullable/method.cpp, assignNullableValueBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &p,assignment of the nullable value,definition of mayReturnNullPointer] +codetoanalyze/cpp/nullable/method.cpp, assignNullableValueBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of p,assignment of the nullable value,definition of mayReturnNullPointer] codetoanalyze/cpp/nullable/method.cpp, assignNullableValueBad, 2, NULL_DEREFERENCE, ERROR, [start of procedure assignNullableValueBad(),start of procedure mayReturnNullPointer,Condition is true,return from a call to T_mayReturnNullPointer] -codetoanalyze/cpp/nullable/method.cpp, avoidDoubleReportingBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &p,assignment of the nullable value,definition of mayReturnNullObject] +codetoanalyze/cpp/nullable/method.cpp, avoidDoubleReportingBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of p,assignment of the nullable value,definition of mayReturnNullObject] codetoanalyze/cpp/nullable/method.cpp, avoidDoubleReportingBad, 2, NULL_DEREFERENCE, ERROR, [start of procedure avoidDoubleReportingBad(),start of procedure mayReturnNullObject,Condition is true,return from a call to T_mayReturnNullObject] codetoanalyze/cpp/nullable/method.cpp, callMethodOnNullableObjectBad, 1, NULLABLE_DEREFERENCE, ERROR, [dereferencing the return of mayReturnNullObject,definition of mayReturnNullObject] codetoanalyze/cpp/nullable/method.cpp, callMethodOnNullableObjectBad, 1, NULL_DEREFERENCE, ERROR, [start of procedure callMethodOnNullableObjectBad(),start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject] codetoanalyze/cpp/nullable/method.cpp, callMethodOnNullableObjectOkay, 2, NULL_TEST_AFTER_DEREFERENCE, WARNING, [start of procedure callMethodOnNullableObjectOkay(),start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject,Condition is false] -codetoanalyze/cpp/nullable/method.cpp, dereferenceFieldOfNullableObjectBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &p,assignment of the nullable value,definition of mayReturnNullObject] +codetoanalyze/cpp/nullable/method.cpp, dereferenceFieldOfNullableObjectBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of p,assignment of the nullable value,definition of mayReturnNullObject] codetoanalyze/cpp/nullable/method.cpp, dereferenceFieldOfNullableObjectBad, 2, NULL_DEREFERENCE, ERROR, [start of procedure dereferenceFieldOfNullableObjectBad(),start of procedure mayReturnNullObject,Condition is true,return from a call to T_mayReturnNullObject] codetoanalyze/cpp/nullable/method.cpp, dereferenceOfAliasesCheckedForNullOkay, 3, NULL_TEST_AFTER_DEREFERENCE, WARNING, [start of procedure dereferenceOfAliasesCheckedForNullOkay(),start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject,Condition is false] codetoanalyze/cpp/nullable/method.cpp, methodAlwaysCheckedForNullOkay, 1, NULL_TEST_AFTER_DEREFERENCE, WARNING, [start of procedure methodAlwaysCheckedForNullOkay(),Condition is true,start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject,Condition is false] codetoanalyze/cpp/nullable/method.cpp, methodAlwaysCheckedForNullOkay, 2, NULL_DEREFERENCE, ERROR, [start of procedure methodAlwaysCheckedForNullOkay(),Condition is true,start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject,Condition is true,start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject] -codetoanalyze/cpp/nullable/method.cpp, methodCallOnFieldOfNullableObjectBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &p,assignment of the nullable value,definition of mayReturnNullObject] +codetoanalyze/cpp/nullable/method.cpp, methodCallOnFieldOfNullableObjectBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of p,assignment of the nullable value,definition of mayReturnNullObject] codetoanalyze/cpp/nullable/method.cpp, methodCallOnFieldOfNullableObjectBad, 2, NULL_DEREFERENCE, ERROR, [start of procedure methodCallOnFieldOfNullableObjectBad(),start of procedure mayReturnNullObject,Condition is true,return from a call to T_mayReturnNullObject] codetoanalyze/cpp/nullable/method.cpp, methodCheckedForNullAndReturnOkay, 1, NULL_TEST_AFTER_DEREFERENCE, WARNING, [start of procedure methodCheckedForNullAndReturnOkay(),start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject,Condition is false] codetoanalyze/cpp/nullable/method.cpp, methodCheckedForNullAndReturnOkay, 4, NULL_DEREFERENCE, ERROR, [start of procedure methodCheckedForNullAndReturnOkay(),start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject,Condition is false,start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject] @@ -28,7 +28,7 @@ codetoanalyze/cpp/nullable/method.cpp, methodCheckedForNullOkay, 2, NULL_DEREFER codetoanalyze/cpp/nullable/method.cpp, methodNotAlwaysCheckedForNullBad, 1, NULL_TEST_AFTER_DEREFERENCE, WARNING, [start of procedure methodNotAlwaysCheckedForNullBad(),Condition is false,start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject,Condition is false] codetoanalyze/cpp/nullable/method.cpp, methodNotAlwaysCheckedForNullBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereferencing the return of mayReturnNullObject,definition of mayReturnNullObject] codetoanalyze/cpp/nullable/method.cpp, methodNotAlwaysCheckedForNullBad, 2, NULL_DEREFERENCE, ERROR, [start of procedure methodNotAlwaysCheckedForNullBad(),Condition is false,start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject,Condition is true,start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject] -codetoanalyze/cpp/nullable/method.cpp, nullableAssignmentInOneBranchBad, 7, NULLABLE_DEREFERENCE, ERROR, [dereference of &p,assignment of the nullable value,definition of mayReturnNullObject] +codetoanalyze/cpp/nullable/method.cpp, nullableAssignmentInOneBranchBad, 7, NULLABLE_DEREFERENCE, ERROR, [dereference of p,assignment of the nullable value,definition of mayReturnNullObject] codetoanalyze/cpp/nullable/method.cpp, nullableAssignmentInOneBranchBad, 7, NULL_DEREFERENCE, ERROR, [start of procedure nullableAssignmentInOneBranchBad(),Condition is true,start of procedure mayReturnNullObject,Condition is true,return from a call to T_mayReturnNullObject] codetoanalyze/cpp/nullable/method.cpp, onlyReportOnceBad, 1, NULLABLE_DEREFERENCE, ERROR, [dereferencing the return of mayReturnNullObject,definition of mayReturnNullObject] codetoanalyze/cpp/nullable/method.cpp, onlyReportOnceBad, 1, NULL_DEREFERENCE, ERROR, [start of procedure onlyReportOnceBad(),start of procedure mayReturnNullObject,Condition is false,return from a call to T_mayReturnNullObject] diff --git a/infer/tests/codetoanalyze/cpp/quandary/issues.exp b/infer/tests/codetoanalyze/cpp/quandary/issues.exp index 3800bedcc..ca28a69ac 100644 --- a/infer/tests/codetoanalyze/cpp/quandary/issues.exp +++ b/infer/tests/codetoanalyze/cpp/quandary/issues.exp @@ -24,7 +24,7 @@ codetoanalyze/cpp/quandary/basics.cpp, basics::Obj_endpoint, 1, QUANDARY_TAINT_E codetoanalyze/cpp/quandary/basics.cpp, basics::Obj_endpoint, 2, QUANDARY_TAINT_ERROR, ERROR, [Return from basics::Obj_endpoint,Call to __infer_taint_sink with tainted index 0] codetoanalyze/cpp/quandary/basics.cpp, basics::object_source_sink_bad, 2, QUANDARY_TAINT_ERROR, ERROR, [Return from basics::Obj_method_source,Call to basics::Obj_method_sink with tainted index 1] codetoanalyze/cpp/quandary/basics.cpp, basics::propagateBad, 3, QUANDARY_TAINT_ERROR, ERROR, [Return from __infer_taint_source,Call to basics::callSink with tainted index 0,Call to __infer_taint_sink with tainted index 0] -codetoanalyze/cpp/quandary/basics.cpp, basics::returnSourceToSinkBad, 2, QUANDARY_TAINT_ERROR, ERROR, [Return from __infer_taint_source with tainted data &return*,Return from basics::returnSource,Call to __infer_taint_sink with tainted index 0] +codetoanalyze/cpp/quandary/basics.cpp, basics::returnSourceToSinkBad, 2, QUANDARY_TAINT_ERROR, ERROR, [Return from __infer_taint_source with tainted data return*,Return from basics::returnSource,Call to __infer_taint_sink with tainted index 0] codetoanalyze/cpp/quandary/basics.cpp, basics::sourceThenCallSinkBad, 2, QUANDARY_TAINT_ERROR, ERROR, [Return from __infer_taint_source,Call to basics::callSink with tainted index 0,Call to __infer_taint_sink with tainted index 0] codetoanalyze/cpp/quandary/basics.cpp, basics::sourceToSinkDirectBad, 2, QUANDARY_TAINT_ERROR, ERROR, [Return from __infer_taint_source,Call to __infer_taint_sink with tainted index 0] codetoanalyze/cpp/quandary/basics.cpp, basics::static_source_sink_bad, 2, QUANDARY_TAINT_ERROR, ERROR, [Return from basics::Obj_static_source,Call to basics::Obj_static_sink with tainted index 0] @@ -77,7 +77,7 @@ codetoanalyze/cpp/quandary/execs.cpp, execs::callExecBad, 31, SHELL_INJECTION, E codetoanalyze/cpp/quandary/execs.cpp, execs::callExecBad, 33, SHELL_INJECTION, ERROR, [Return from getenv,Call to system with tainted index 0] codetoanalyze/cpp/quandary/execs.cpp, execs::callExecBad, 35, SHELL_INJECTION, ERROR, [Return from getenv,Call to popen with tainted index 0] codetoanalyze/cpp/quandary/execs.cpp, execs::exec_string_flag_bad, 0, SHELL_INJECTION, ERROR, [Return from __global_access,Call to execl with tainted index 0] -codetoanalyze/cpp/quandary/execs.cpp, execs::exec_string_flag_interproc_bad, 2, SHELL_INJECTION, ERROR, [Return from __global_access with tainted data &return,Return from execs::return_global,Call to execl with tainted index 0] +codetoanalyze/cpp/quandary/execs.cpp, execs::exec_string_flag_interproc_bad, 2, SHELL_INJECTION, ERROR, [Return from __global_access with tainted data return,Return from execs::return_global,Call to execl with tainted index 0] codetoanalyze/cpp/quandary/execs.cpp, execs::sql_on_env_var_bad, 2, SQL_INJECTION, ERROR, [Return from getenv,Call to __infer_sql_sink with tainted index 0] codetoanalyze/cpp/quandary/expressions.cpp, expressions::propagate_via_binop1_bad, 3, QUANDARY_TAINT_ERROR, ERROR, [Return from __infer_taint_source,Call to __infer_taint_sink with tainted index 0] codetoanalyze/cpp/quandary/expressions.cpp, expressions::propagate_via_binop2_bad, 5, QUANDARY_TAINT_ERROR, ERROR, [Return from __infer_taint_source,Call to __infer_taint_sink with tainted index 0] diff --git a/infer/tests/codetoanalyze/cpp/racerd/issues.exp b/infer/tests/codetoanalyze/cpp/racerd/issues.exp index 778581674..4222172d4 100644 --- a/infer/tests/codetoanalyze/cpp/racerd/issues.exp +++ b/infer/tests/codetoanalyze/cpp/racerd/issues.exp @@ -1,26 +1,26 @@ -codetoanalyze/cpp/racerd/basics.cpp, basics::Basic_get2, 3, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_written`,,access to `&this.suspiciously_written`] -codetoanalyze/cpp/racerd/basics.cpp, basics::Basic_get4, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_read`,,access to `&this.suspiciously_read`] -codetoanalyze/cpp/racerd/basics.cpp, basics::Basic_get5, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to basics::Basic_get_private_suspiciously_read,access to `&this.suspiciously_read`,,access to `&this.suspiciously_read`] -codetoanalyze/cpp/racerd/basics.cpp, basics::Basic_test_double_lock_bad, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.single_lock_suspiciously_read`,,access to `&this.single_lock_suspiciously_read`] -codetoanalyze/cpp/racerd/constructor_ownership.cpp, constructors::TSL_not_locked_race, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to constructors::BSS_toJson_race,call to constructors::dynamic_operator=,access to `&this.type_`,,call to constructors::BSS_toJson_race,call to constructors::dynamic_operator=,access to `&this.type_`] -codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic_call1, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to dereferencing::Basic_mixed_deref_race,access to `&xparam.x1.u`,,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `&xparam.x1.u`] -codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic_call1, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to dereferencing::Basic_mixed_deref_race,access to `&xparam.x2.a.b.c`,,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `&xparam.x2.a.b.c`] -codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic_call1, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to dereferencing::Basic_mixed_deref_race,access to `&xparam.x1.w`,,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `&xparam.x1.w`] -codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic_test_unlock, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `&xparam.x1.w`,,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `&xparam.x1.w`] -codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic_test_unlock, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `&xparam.x2.a.b.c`,,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `&xparam.x2.a.b.c`] -codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic_test_unlock, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `&xparam.x1.u`,,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `&xparam.x1.u`] -codetoanalyze/cpp/racerd/locals_ownership.cpp, locals::Ownership_test2_bad, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&x.f`,,access to `&x.f`] -codetoanalyze/cpp/racerd/locals_ownership.cpp, locals::Ownership_test3_bad, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&x.f`,,access to `&x.f`] -codetoanalyze/cpp/racerd/lock_guard.cpp, basics::LockGuard_get2, 3, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_written`,,access to `&this.suspiciously_written`] -codetoanalyze/cpp/racerd/lock_guard.cpp, basics::LockGuard_get4, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_read`,,access to `&this.suspiciously_read`] -codetoanalyze/cpp/racerd/lock_guard.cpp, basics::LockGuard_test1, 2, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_read`,,access to `&this.suspiciously_read`] -codetoanalyze/cpp/racerd/lock_guard_with_scope.cpp, basics::LockGuardWithScope_get2, 3, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_written`,,access to `&this.suspiciously_written`] -codetoanalyze/cpp/racerd/lock_guard_with_scope.cpp, basics::LockGuardWithScope_get4, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_read`,,access to `&this.suspiciously_read`] -codetoanalyze/cpp/racerd/reporting.cpp, reporting::Basic_call1, 1, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to reporting::Basic_test,access to `&xparam.x1.w`,,call to reporting::Basic_call1,call to reporting::Basic_test,access to `&xparam.x1.w`] -codetoanalyze/cpp/racerd/reporting.cpp, reporting::Basic_test_unlock, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to reporting::Basic_call1,call to reporting::Basic_test,access to `&xparam.x1.w`,,call to reporting::Basic_call1,call to reporting::Basic_test,access to `&xparam.x1.w`] -codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock_get2, 3, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_written1`,,access to `&this.suspiciously_written1`] -codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock_get2, 4, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_written2`,,access to `&this.suspiciously_written2`] -codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock_get4, 1, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_read1`,,access to `&this.suspiciously_read1`] -codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock_get4, 2, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_read2`,,access to `&this.suspiciously_read2`] -codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock_get5, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_read1`,,access to `&this.suspiciously_read1`] -codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock_get6, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `&this.suspiciously_read1`,,access to `&this.suspiciously_read1`] +codetoanalyze/cpp/racerd/basics.cpp, basics::Basic_get2, 3, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_written`,,access to `this.suspiciously_written`] +codetoanalyze/cpp/racerd/basics.cpp, basics::Basic_get4, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] +codetoanalyze/cpp/racerd/basics.cpp, basics::Basic_get5, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to basics::Basic_get_private_suspiciously_read,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] +codetoanalyze/cpp/racerd/basics.cpp, basics::Basic_test_double_lock_bad, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.single_lock_suspiciously_read`,,access to `this.single_lock_suspiciously_read`] +codetoanalyze/cpp/racerd/constructor_ownership.cpp, constructors::TSL_not_locked_race, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to constructors::BSS_toJson_race,call to constructors::dynamic_operator=,access to `this.type_`,,call to constructors::BSS_toJson_race,call to constructors::dynamic_operator=,access to `this.type_`] +codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic_call1, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to dereferencing::Basic_mixed_deref_race,access to `xparam.x1.u`,,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `xparam.x1.u`] +codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic_call1, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to dereferencing::Basic_mixed_deref_race,access to `xparam.x1.w`,,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `xparam.x1.w`] +codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic_call1, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to dereferencing::Basic_mixed_deref_race,access to `xparam.x2.a.b.c`,,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `xparam.x2.a.b.c`] +codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic_test_unlock, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `xparam.x2.a.b.c`,,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `xparam.x2.a.b.c`] +codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic_test_unlock, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `xparam.x1.w`,,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `xparam.x1.w`] +codetoanalyze/cpp/racerd/dereferencing.cpp, dereferencing::Basic_test_unlock, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `xparam.x1.u`,,call to dereferencing::Basic_call1,call to dereferencing::Basic_mixed_deref_race,access to `xparam.x1.u`] +codetoanalyze/cpp/racerd/locals_ownership.cpp, locals::Ownership_test2_bad, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `x.f`,,access to `x.f`] +codetoanalyze/cpp/racerd/locals_ownership.cpp, locals::Ownership_test3_bad, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `x.f`,,access to `x.f`] +codetoanalyze/cpp/racerd/lock_guard.cpp, basics::LockGuard_get2, 3, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_written`,,access to `this.suspiciously_written`] +codetoanalyze/cpp/racerd/lock_guard.cpp, basics::LockGuard_get4, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] +codetoanalyze/cpp/racerd/lock_guard.cpp, basics::LockGuard_test1, 2, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] +codetoanalyze/cpp/racerd/lock_guard_with_scope.cpp, basics::LockGuardWithScope_get2, 3, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_written`,,access to `this.suspiciously_written`] +codetoanalyze/cpp/racerd/lock_guard_with_scope.cpp, basics::LockGuardWithScope_get4, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_read`,,access to `this.suspiciously_read`] +codetoanalyze/cpp/racerd/reporting.cpp, reporting::Basic_call1, 1, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to reporting::Basic_test,access to `xparam.x1.w`,,call to reporting::Basic_call1,call to reporting::Basic_test,access to `xparam.x1.w`] +codetoanalyze/cpp/racerd/reporting.cpp, reporting::Basic_test_unlock, 0, LOCK_CONSISTENCY_VIOLATION, ERROR, [,call to reporting::Basic_call1,call to reporting::Basic_test,access to `xparam.x1.w`,,call to reporting::Basic_call1,call to reporting::Basic_test,access to `xparam.x1.w`] +codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock_get2, 3, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_written1`,,access to `this.suspiciously_written1`] +codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock_get2, 4, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_written2`,,access to `this.suspiciously_written2`] +codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock_get4, 1, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_read1`,,access to `this.suspiciously_read1`] +codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock_get4, 2, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_read2`,,access to `this.suspiciously_read2`] +codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock_get5, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_read1`,,access to `this.suspiciously_read1`] +codetoanalyze/cpp/racerd/unique_lock.cpp, basics::UniqueLock_get6, 5, LOCK_CONSISTENCY_VIOLATION, ERROR, [,access to `this.suspiciously_read1`,,access to `this.suspiciously_read1`] diff --git a/infer/tests/codetoanalyze/java/checkers/issues.exp b/infer/tests/codetoanalyze/java/checkers/issues.exp index 90459c3f1..a7d93a7ef 100644 --- a/infer/tests/codetoanalyze/java/checkers/issues.exp +++ b/infer/tests/codetoanalyze/java/checkers/issues.exp @@ -43,7 +43,7 @@ codetoanalyze/java/checkers/NullableViolation.java, void NullableViolation.deref codetoanalyze/java/checkers/NullableViolation.java, void NullableViolation.dereferenceNullableMethodInElseBranchBad(), 3, NULLABLE_DEREFERENCE, ERROR, [dereferencing the return of NullableViolation.returnsNullable(),definition of returnsNullable] codetoanalyze/java/checkers/NullableViolation.java, void NullableViolation.dereferenceNullableMethodIncorrectlyCheckedForNullBad(), 2, NULLABLE_DEREFERENCE, ERROR, [dereferencing the return of NullableViolation.returnsNullable(),definition of returnsNullable] codetoanalyze/java/checkers/NullableViolation.java, void NullableViolation.dereferenceNullableMethodNotAlwaysCheckedForNullBad(), 2, NULLABLE_DEREFERENCE, ERROR, [dereferencing the return of NullableViolation.returnsNullable(),definition of returnsNullable] -codetoanalyze/java/checkers/NullableViolation.java, void NullableViolation.dereferenceNullableReturnValueBad(), 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &t,assignment of the nullable value,definition of returnsNullable] +codetoanalyze/java/checkers/NullableViolation.java, void NullableViolation.dereferenceNullableReturnValueBad(), 2, NULLABLE_DEREFERENCE, ERROR, [dereference of t,assignment of the nullable value,definition of returnsNullable] codetoanalyze/java/checkers/PrintfArgsChecker.java, void PrintfArgsChecker.formatStringIsNotLiteral(PrintStream), 2, CHECKERS_PRINTF_ARGS, ERROR, [Format string must be string literal] codetoanalyze/java/checkers/PrintfArgsChecker.java, void PrintfArgsChecker.stringInsteadOfInteger(PrintStream), 1, CHECKERS_PRINTF_ARGS, ERROR, [] codetoanalyze/java/checkers/PrintfArgsChecker.java, void PrintfArgsChecker.wrongNumberOfArguments(PrintStream), 1, CHECKERS_PRINTF_ARGS, ERROR, [] diff --git a/infer/tests/codetoanalyze/java/deadlock/issues.exp b/infer/tests/codetoanalyze/java/deadlock/issues.exp index 3d00001fd..5c59b64c2 100644 --- a/infer/tests/codetoanalyze/java/deadlock/issues.exp +++ b/infer/tests/codetoanalyze/java/deadlock/issues.exp @@ -1,3 +1,3 @@ -codetoanalyze/java/deadlock/Interclass.java, void Interclass.interclass1_bad(InterclassA), 0, DEADLOCK, ERROR, [[Trace 1] Lock acquisition: locks &this in class Interclass*,Method call: void InterclassA.interclass1_bad(),Lock acquisition: locks &this in class InterclassA*,[Trace 2] Lock acquisition: locks &this in class InterclassA*,Method call: void Interclass.interclass2_bad(),Lock acquisition: locks &this in class Interclass*] -codetoanalyze/java/deadlock/Interproc.java, void Interproc.interproc1_bad(InterprocA), 0, DEADLOCK, ERROR, [[Trace 1] Lock acquisition: locks &this in class Interproc*,Method call: void Interproc.interproc2_bad(InterprocA),Lock acquisition: locks &b in class InterprocA*,[Trace 2] Lock acquisition: locks &this in class InterprocA*,Method call: void InterprocA.interproc2_bad(Interproc),Lock acquisition: locks &d in class Interproc*] -codetoanalyze/java/deadlock/Intraproc.java, void IntraprocA.intra_bad(Intraproc), 0, DEADLOCK, ERROR, [[Trace 1] Method start: void IntraprocA.intra_bad(Intraproc),Lock acquisition: locks &this in class IntraprocA*,Lock acquisition: locks &o in class Intraproc*,[Trace 2] Method start: void Intraproc.intra_bad(IntraprocA),Lock acquisition: locks &this in class Intraproc*,Lock acquisition: locks &o in class IntraprocA*] +codetoanalyze/java/deadlock/Interclass.java, void Interclass.interclass1_bad(InterclassA), 0, DEADLOCK, ERROR, [[Trace 1] Lock acquisition: locks this in class Interclass*,Method call: void InterclassA.interclass1_bad(),Lock acquisition: locks this in class InterclassA*,[Trace 2] Lock acquisition: locks this in class InterclassA*,Method call: void Interclass.interclass2_bad(),Lock acquisition: locks this in class Interclass*] +codetoanalyze/java/deadlock/Interproc.java, void Interproc.interproc1_bad(InterprocA), 0, DEADLOCK, ERROR, [[Trace 1] Lock acquisition: locks this in class Interproc*,Method call: void Interproc.interproc2_bad(InterprocA),Lock acquisition: locks b in class InterprocA*,[Trace 2] Lock acquisition: locks this in class InterprocA*,Method call: void InterprocA.interproc2_bad(Interproc),Lock acquisition: locks d in class Interproc*] +codetoanalyze/java/deadlock/Intraproc.java, void IntraprocA.intra_bad(Intraproc), 0, DEADLOCK, ERROR, [[Trace 1] Method start: void IntraprocA.intra_bad(Intraproc),Lock acquisition: locks this in class IntraprocA*,Lock acquisition: locks o in class Intraproc*,[Trace 2] Method start: void Intraproc.intra_bad(IntraprocA),Lock acquisition: locks this in class Intraproc*,Lock acquisition: locks o in class IntraprocA*] diff --git a/infer/tests/codetoanalyze/java/litho/issues.exp b/infer/tests/codetoanalyze/java/litho/issues.exp index 7b998f3ea..52672ca5c 100644 --- a/infer/tests/codetoanalyze/java/litho/issues.exp +++ b/infer/tests/codetoanalyze/java/litho/issues.exp @@ -1,36 +1,36 @@ -codetoanalyze/java/litho/RequiredProps.java, MyComponent RequiredProps.FP_setRequiredOnBothBranchesOk(boolean), 0, MISSING_REQUIRED_PROP, [@Prop prop1 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] -codetoanalyze/java/litho/RequiredProps.java, MyComponent RequiredProps.buildWithout1Bad(), 0, MISSING_REQUIRED_PROP, [@Prop prop1 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] -codetoanalyze/java/litho/RequiredProps.java, MyComponent RequiredProps.buildWithout3Bad(), 0, MISSING_REQUIRED_PROP, [@Prop prop3 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] -codetoanalyze/java/litho/RequiredProps.java, MyComponent RequiredProps.callBuildSuffixWithoutRequiredBad(), 0, MISSING_REQUIRED_PROP, [@Prop prop1 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] -codetoanalyze/java/litho/RequiredProps.java, MyComponent RequiredProps.setProp3InCalleeButForgetProp1Bad(), 0, MISSING_REQUIRED_PROP, [@Prop prop1 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] -codetoanalyze/java/litho/RequiredProps.java, MyComponent RequiredProps.setRequiredOnOneBranchBad(boolean), 0, MISSING_REQUIRED_PROP, [@Prop prop1 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] -codetoanalyze/java/litho/RequiredProps.java, Object RequiredProps.generalTypeForgot3Bad(), 0, MISSING_REQUIRED_PROP, [@Prop prop3 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] -codetoanalyze/java/litho/RequiredProps.java, void RequiredProps.buildPropResMissingBad(), 0, MISSING_REQUIRED_PROP, [@Prop prop is required for component codetoanalyze.java.litho.ResPropComponent, but is not set before the call to build()] -codetoanalyze/java/litho/RequiredProps.java, void RequiredProps.buildWithColumnChildBad(), 0, MISSING_REQUIRED_PROP, [@Prop prop3 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(), 0, GRAPHQL_FIELD_ACCESS, [&story.getActors().get(...)] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(), 0, GRAPHQL_FIELD_ACCESS, [&story.getActors().get(...).toString()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(), 0, GRAPHQL_FIELD_ACCESS, [&story.getActors().size()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(), 0, GRAPHQL_FIELD_ACCESS, [&story.getActors()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A), 0, GRAPHQL_FIELD_ACCESS, [&a.getB().getC().getD()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A), 0, GRAPHQL_FIELD_ACCESS, [&a.getB().getC()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A), 0, GRAPHQL_FIELD_ACCESS, [&a.getB()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,boolean), 0, GRAPHQL_FIELD_ACCESS, [&a.getB().getC().getD()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,boolean), 0, GRAPHQL_FIELD_ACCESS, [&a.getB().getC()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,boolean), 0, GRAPHQL_FIELD_ACCESS, [&a.getB()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,char), 0, GRAPHQL_FIELD_ACCESS, [&a.getB().getC().getD()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,char), 0, GRAPHQL_FIELD_ACCESS, [&a.getB().getC()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,char), 0, GRAPHQL_FIELD_ACCESS, [&a.getB()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,double), 0, GRAPHQL_FIELD_ACCESS, [&a.getA()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,float), 0, GRAPHQL_FIELD_ACCESS, [&a.getA()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int), 0, GRAPHQL_FIELD_ACCESS, [&a.getB().getC().getD()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int), 0, GRAPHQL_FIELD_ACCESS, [&a.getC().getD()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int), 0, GRAPHQL_FIELD_ACCESS, [&a.getC()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int), 0, GRAPHQL_FIELD_ACCESS, [&a.getB().getC()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int), 0, GRAPHQL_FIELD_ACCESS, [&a.getB()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int,int), 0, GRAPHQL_FIELD_ACCESS, [&a.getB().getC().getD()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int,int), 0, GRAPHQL_FIELD_ACCESS, [&a.getB().getC()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int,int), 0, GRAPHQL_FIELD_ACCESS, [&a.getB()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(GraphQLStory), 0, GRAPHQL_FIELD_ACCESS, [&story.getActors().get(...).toString()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(GraphQLStory), 0, GRAPHQL_FIELD_ACCESS, [&story.getActors()] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(GraphQLStory), 0, GRAPHQL_FIELD_ACCESS, [&story.getActors().get(...)] -codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(GraphQLStory), 0, GRAPHQL_FIELD_ACCESS, [&story.getActors().size()] +codetoanalyze/java/litho/RequiredProps.java, MyComponent RequiredProps.FP_setRequiredOnBothBranchesOk(boolean), 0, MISSING_REQUIRED_PROP, ERROR, [@Prop prop1 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] +codetoanalyze/java/litho/RequiredProps.java, MyComponent RequiredProps.buildWithout1Bad(), 0, MISSING_REQUIRED_PROP, ERROR, [@Prop prop1 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] +codetoanalyze/java/litho/RequiredProps.java, MyComponent RequiredProps.buildWithout3Bad(), 0, MISSING_REQUIRED_PROP, ERROR, [@Prop prop3 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] +codetoanalyze/java/litho/RequiredProps.java, MyComponent RequiredProps.callBuildSuffixWithoutRequiredBad(), 0, MISSING_REQUIRED_PROP, ERROR, [@Prop prop1 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] +codetoanalyze/java/litho/RequiredProps.java, MyComponent RequiredProps.setProp3InCalleeButForgetProp1Bad(), 0, MISSING_REQUIRED_PROP, ERROR, [@Prop prop1 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] +codetoanalyze/java/litho/RequiredProps.java, MyComponent RequiredProps.setRequiredOnOneBranchBad(boolean), 0, MISSING_REQUIRED_PROP, ERROR, [@Prop prop1 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] +codetoanalyze/java/litho/RequiredProps.java, Object RequiredProps.generalTypeForgot3Bad(), 0, MISSING_REQUIRED_PROP, ERROR, [@Prop prop3 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] +codetoanalyze/java/litho/RequiredProps.java, void RequiredProps.buildPropResMissingBad(), 0, MISSING_REQUIRED_PROP, ERROR, [@Prop prop is required for component codetoanalyze.java.litho.ResPropComponent, but is not set before the call to build()] +codetoanalyze/java/litho/RequiredProps.java, void RequiredProps.buildWithColumnChildBad(), 0, MISSING_REQUIRED_PROP, ERROR, [@Prop prop3 is required for component codetoanalyze.java.litho.MyComponent, but is not set before the call to build()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(), 0, GRAPHQL_FIELD_ACCESS, ERROR, [story.getActors()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(), 0, GRAPHQL_FIELD_ACCESS, ERROR, [story.getActors().get(...).toString()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(), 0, GRAPHQL_FIELD_ACCESS, ERROR, [story.getActors().get(...)] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(), 0, GRAPHQL_FIELD_ACCESS, ERROR, [story.getActors().size()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB().getC().getD()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB().getC()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,boolean), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB().getC().getD()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,boolean), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,boolean), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB().getC()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,char), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB().getC().getD()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,char), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,char), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB().getC()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,double), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getA()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,float), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getA()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getC()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getC().getD()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB().getC().getD()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB().getC()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int,int), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB().getC().getD()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int,int), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(A,int,int), 0, GRAPHQL_FIELD_ACCESS, ERROR, [a.getB().getC()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(GraphQLStory), 0, GRAPHQL_FIELD_ACCESS, ERROR, [story.getActors()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(GraphQLStory), 0, GRAPHQL_FIELD_ACCESS, ERROR, [story.getActors().get(...).toString()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(GraphQLStory), 0, GRAPHQL_FIELD_ACCESS, ERROR, [story.getActors().size()] +codetoanalyze/java/litho/ShouldUpdate.java, void LithoTest.onCreateLayout(GraphQLStory), 0, GRAPHQL_FIELD_ACCESS, ERROR, [story.getActors().get(...)] diff --git a/infer/tests/codetoanalyze/java/quandary/issues.exp b/infer/tests/codetoanalyze/java/quandary/issues.exp index c45a38cc8..c37c58351 100644 --- a/infer/tests/codetoanalyze/java/quandary/issues.exp +++ b/infer/tests/codetoanalyze/java/quandary/issues.exp @@ -104,11 +104,11 @@ codetoanalyze/java/quandary/Intents.java, void Intents.subclassCallBad(IntentSub codetoanalyze/java/quandary/Intents.java, void MyActivity.startServiceWithTaintedIntent(), 2, CREATE_INTENT_FROM_URI, ERROR, [Return from Intent.(String,Uri),Call to ComponentName ContextWrapper.startService(Intent) with tainted index 1] codetoanalyze/java/quandary/Interprocedural.java, Object Interprocedural.irrelevantPassthroughsIntraprocedural(Object), 4, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Interprocedural.java, Object Interprocedural.irrelevantPassthroughsSinkInterprocedural(Object), 3, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to Object Interprocedural.callSinkIrrelevantPassthrough(Object) with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] -codetoanalyze/java/quandary/Interprocedural.java, Object Interprocedural.irrelevantPassthroughsSourceAndSinkInterprocedural(Object), 4, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data &return,Return from Object Interprocedural.returnSourceIrrelevantPassthrough(Object),Call to Object Interprocedural.callSinkIrrelevantPassthrough(Object) with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] -codetoanalyze/java/quandary/Interprocedural.java, Object Interprocedural.irrelevantPassthroughsSourceInterprocedural(Object), 4, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data &return,Return from Object Interprocedural.returnSourceIrrelevantPassthrough(Object),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] +codetoanalyze/java/quandary/Interprocedural.java, Object Interprocedural.irrelevantPassthroughsSourceAndSinkInterprocedural(Object), 4, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data return,Return from Object Interprocedural.returnSourceIrrelevantPassthrough(Object),Call to Object Interprocedural.callSinkIrrelevantPassthrough(Object) with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] +codetoanalyze/java/quandary/Interprocedural.java, Object Interprocedural.irrelevantPassthroughsSourceInterprocedural(Object), 4, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data return,Return from Object Interprocedural.returnSourceIrrelevantPassthrough(Object),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.FP_divergenceInCallee(), 3, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.FP_reassignInCallee(), 4, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] -codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.FP_trackParamsOk(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data &return*,Return from Object Interprocedural.returnSourceConditional(boolean),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] +codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.FP_trackParamsOk(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data return*,Return from Object Interprocedural.returnSourceConditional(boolean),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.callDeepSink1Bad(), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void Interprocedural.callSinkA(Interprocedural$Obj) with tainted index 0,Call to void Interprocedural.callSink1(Interprocedural$Obj) with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.callDeepSink3Bad(), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void Interprocedural.callSinkC(Interprocedural$Obj) with tainted index 0,Call to void Interprocedural.callSink3(Interprocedural$Obj) with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.callDeepSink4Bad(), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void Interprocedural.callSinkD(Interprocedural$Obj) with tainted index 0,Call to void Interprocedural.callSink4(Interprocedural$Obj) with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] @@ -124,11 +124,11 @@ codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.callSinkP codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.callSinkVariadicBad(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void Interprocedural.callSinkVariadic(java.lang.Object[]) with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.doublePassthroughBad(), 4, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.getGlobalThenCallSinkBad(), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void Interprocedural.getGlobalThenCallSink() with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] -codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.returnSourceDirectBad(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data &return*,Return from Object Interprocedural.returnSourceDirect(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] -codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.returnSourceDirectViaVarBad(), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data &return*,Return from Object Interprocedural.returnSourceDirect(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] -codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.returnSourceIndirectBad(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data &return*,Return from Object Interprocedural.returnSourceDirect() with tainted data &return*,Return from Object Interprocedural.returnSourceIndirect(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] -codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.returnSourceViaFieldBad(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data &return.codetoanalyze.java.quandary.Interprocedural$Obj.f*,Return from Interprocedural$Obj Interprocedural.returnSourceViaField(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] -codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.returnSourceViaGlobalBad(), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data &#GB<>$codetoanalyze.java.quandary.Interprocedural.codetoanalyze.java.quandary.Interprocedural.sGlobal*,Return from void Interprocedural.returnSourceViaGlobal(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] +codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.returnSourceDirectBad(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data return*,Return from Object Interprocedural.returnSourceDirect(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] +codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.returnSourceDirectViaVarBad(), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data return*,Return from Object Interprocedural.returnSourceDirect(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] +codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.returnSourceIndirectBad(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data return*,Return from Object Interprocedural.returnSourceDirect() with tainted data return*,Return from Object Interprocedural.returnSourceIndirect(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] +codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.returnSourceViaFieldBad(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data return.codetoanalyze.java.quandary.Interprocedural$Obj.f*,Return from Interprocedural$Obj Interprocedural.returnSourceViaField(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] +codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.returnSourceViaGlobalBad(), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data quandary.Interprocedural.codetoanalyze.java.quandary.Interprocedural.sGlobal*,Return from void Interprocedural.returnSourceViaGlobal(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.returnSourceViaParameter1Bad(Interprocedural$Obj), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data @val$0.codetoanalyze.java.quandary.Interprocedural$Obj.f*,Return from void Interprocedural.returnSourceViaParameter1(Interprocedural$Obj),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.returnSourceViaParameter2Bad(Interprocedural$Obj,Interprocedural$Obj), 3, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Interprocedural.java, void Interprocedural.setGlobalThenCallSinkBad(), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void Interprocedural.callSinkOnGlobal() with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] @@ -187,11 +187,11 @@ codetoanalyze/java/quandary/Strings.java, void Strings.viaStringBuilderIgnoreRet codetoanalyze/java/quandary/Strings.java, void Strings.viaStringBuilderSugarBad(), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Strings.java, void Strings.viaStringFormatVarArgsDirectBad(), 3, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/Strings.java, void Strings.viaStringFormatVarArgsIndirectBad(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void Strings.viaStringFormatVarArgsIndirect(Object) with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] -codetoanalyze/java/quandary/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethods1(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data &return*,Return from Object TaintExample.returnTaintedSourceModelMethods(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] +codetoanalyze/java/quandary/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethods1(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data return*,Return from Object TaintExample.returnTaintedSourceModelMethods(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethods2(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void TaintExample.callSinkMethodModelMethods(Object) with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] -codetoanalyze/java/quandary/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethods3(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data &return*,Return from Object TaintExample.returnTaintedSourceModelMethods(),Call to void TaintExample.callSinkMethodModelMethods(Object) with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] +codetoanalyze/java/quandary/TaintExample.java, void TaintExample.interprocTaintErrorWithModelMethods3(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource() with tainted data return*,Return from Object TaintExample.returnTaintedSourceModelMethods(),Call to void TaintExample.callSinkMethodModelMethods(Object) with tainted index 0,Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/TaintExample.java, void TaintExample.simpleTaintErrorWithModelMethods(), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] -codetoanalyze/java/quandary/TaintedFormals.java, void TaintedFormals.callTaintedContextBad1(String), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object TaintedFormals.taintedContextBad(String) with tainted data &return*,Return from Object TaintedFormals.taintedContextBad(String),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] +codetoanalyze/java/quandary/TaintedFormals.java, void TaintedFormals.callTaintedContextBad1(String), 2, QUANDARY_TAINT_ERROR, ERROR, [Return from Object TaintedFormals.taintedContextBad(String) with tainted data return*,Return from Object TaintedFormals.taintedContextBad(String),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/TaintedFormals.java, void TaintedFormals.callTaintedContextBad2(), 1, QUANDARY_TAINT_ERROR, ERROR, [Return from Object InferTaint.inferSecretSource(),Call to void TaintedFormals.taintedContextBad(String,Intent,Integer) with tainted index 1,Call to ComponentName ContextWrapper.startService(Intent) with tainted index 1] codetoanalyze/java/quandary/TaintedFormals.java, void TaintedFormals.taintedContextBad(String,Intent,Integer), 3, QUANDARY_TAINT_ERROR, ERROR, [Return from void TaintedFormals.taintedContextBad(String,Intent,Integer),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] codetoanalyze/java/quandary/TaintedFormals.java, void TaintedFormals.taintedContextBad(String,Intent,Integer), 4, QUANDARY_TAINT_ERROR, ERROR, [Return from void TaintedFormals.taintedContextBad(String,Intent,Integer),Call to void InferTaint.inferSensitiveSink(Object) with tainted index 0] diff --git a/infer/tests/codetoanalyze/java/racerd/issues.exp b/infer/tests/codetoanalyze/java/racerd/issues.exp index ee4eefaa8..aaffbec05 100644 --- a/infer/tests/codetoanalyze/java/racerd/issues.exp +++ b/infer/tests/codetoanalyze/java/racerd/issues.exp @@ -1,128 +1,128 @@ -codetoanalyze/java/racerd/AndroidModels.java, void AndroidModels.someResourceMethodsNotFunctionalBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.AndroidModels.mField`] -codetoanalyze/java/racerd/Annotations.java, boolean Annotations.FP_functionalAcrossUnboxingOk(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Annotations.mBool2`] -codetoanalyze/java/racerd/Annotations.java, double Annotations.functionalDoubleBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Annotations.mDouble`] -codetoanalyze/java/racerd/Annotations.java, int Annotations.FP_functionalAcrossBoxingLongOk(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Annotations.mBoxedLong2`] -codetoanalyze/java/racerd/Annotations.java, int Annotations.functionalAcrossUnboxingLongBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Annotations.mLong2`] -codetoanalyze/java/racerd/Annotations.java, long Annotations.functionaLongBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Annotations.mLong`] -codetoanalyze/java/racerd/Annotations.java, void Annotations.conditional2_bad(boolean), 5, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Annotations.ii`] -codetoanalyze/java/racerd/Annotations.java, void Annotations.functionalAndNonfunctionalBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Annotations.mInt`] -codetoanalyze/java/racerd/Annotations.java, void Annotations.mutateOffUiThreadBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Annotations.f`] -codetoanalyze/java/racerd/Annotations.java, void Annotations.mutateSubfieldOfConfinedBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Annotations.encapsulatedField.codetoanalyze.java.checkers.Obj.f`] -codetoanalyze/java/racerd/Annotations.java, void Annotations.read_from_non_confined_method_Bad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.Annotations.zz`,,access to `&this.codetoanalyze.java.checkers.Annotations.zz`] -codetoanalyze/java/racerd/Annotations.java, void Annotations.read_off_UI_thread_Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.Annotations.f`,,access to `&this.codetoanalyze.java.checkers.Annotations.f`] -codetoanalyze/java/racerd/Annotations.java, void ThreadSafeAlias.threadSafeAliasBad1(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.ThreadSafeAlias.field`] -codetoanalyze/java/racerd/Annotations.java, void ThreadSafeAlias.threadSafeAliasBad2(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.ThreadSafeAlias.field`] -codetoanalyze/java/racerd/Arrays.java, String Arrays.readWriteRaceBad(String), 4, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.Arrays.strArr1.[_]`,,access to `&this.Arrays.strArr1.[_]`] -codetoanalyze/java/racerd/Arrays.java, void Arrays.arrayParameterWriteBad(int[]), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&name1.[_]`] -codetoanalyze/java/racerd/Arrays.java, void Arrays.writeWriteRaceBad(String), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.Arrays.strArr1.[_]`] -codetoanalyze/java/racerd/Builders.java, Builders$Obj Builders.buildThenMutateBad(Builders$Obj), 2, THREAD_SAFETY_VIOLATION, ERROR, [,call to Builders$Obj$Builder Builders$Obj$Builder.setFromObj(Builders$Obj),access to `&input.codetoanalyze.java.checkers.Builders$Obj.g`,,access to `&input.codetoanalyze.java.checkers.Builders$Obj.g`] -codetoanalyze/java/racerd/Builders.java, Builders$Obj Builders.buildThenMutateBad(Builders$Obj), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `&input.codetoanalyze.java.checkers.Builders$Obj.g`] -codetoanalyze/java/racerd/Builders.java, Builders$Obj Builders.mutateBad(Builders$Obj), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&o.codetoanalyze.java.checkers.Builders$Obj.g`] -codetoanalyze/java/racerd/Builders.java, void TopLevelBuilder.setG(String), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.TopLevelBuilder.g`] -codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.FP_singleton2Ok(), 6, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&#GB<>$Constructors.Constructors.sSingleton1`,,access to `&#GB<>$Constructors.Constructors.sSingleton1`] -codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singleton1Bad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [call to Constructors.(Object),access to `&#GB<>$Constructors.Constructors.staticField`] -codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singleton2Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&#GB<>$Constructors.Constructors.sSingleton2`,,access to `&#GB<>$Constructors.Constructors.sSingleton2`] -codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singleton2Bad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `&#GB<>$Constructors.Constructors.sSingleton2`] -codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singleton2Bad(), 4, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&#GB<>$Constructors.Constructors.sSingleton2`,,access to `&#GB<>$Constructors.Constructors.sSingleton2`] -codetoanalyze/java/racerd/Constructors.java, Constructors.(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&#GB<>$Constructors.Constructors.staticField`] -codetoanalyze/java/racerd/Constructors.java, Constructors.(Constructors), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&o.Constructors.field`] -codetoanalyze/java/racerd/Containers.java, boolean Containers.listReadBad(String), 1, THREAD_SAFETY_VIOLATION, ERROR, [,Read of container `&this.codetoanalyze.java.checkers.Containers.mList` via call to `contains`,,Write to container `&this.codetoanalyze.java.checkers.Containers.mList` via call to `set`] -codetoanalyze/java/racerd/Containers.java, int Containers.readSimpleArrayMap(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,Read of container `&this.codetoanalyze.java.checkers.Containers.si_map` via call to `get`,,Write to container `&this.codetoanalyze.java.checkers.Containers.si_map` via call to `put`] -codetoanalyze/java/racerd/Containers.java, void Containers.addToSimpleArrayMapBad(SimpleArrayMap), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&map` via call to `put`] -codetoanalyze/java/racerd/Containers.java, void Containers.addToSparseArrayBad(SparseArray), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&sparseArray` via call to `put`] -codetoanalyze/java/racerd/Containers.java, void Containers.addToSparseArrayCompatBad(SparseArrayCompat), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&sparseArray` via call to `put`] -codetoanalyze/java/racerd/Containers.java, void Containers.containerWrapperUnownedWriteBad(Object), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to Object ContainerWrapper.write(Object),call to Object ContainerWrapper._write(Object),Write to container `&this.codetoanalyze.java.checkers.ContainerWrapper.children` via call to `add`] -codetoanalyze/java/racerd/Containers.java, void Containers.listAddAllBad(Collection), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&this.codetoanalyze.java.checkers.Containers.mList` via call to `addAll`] -codetoanalyze/java/racerd/Containers.java, void Containers.listAddBad1(String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&this.codetoanalyze.java.checkers.Containers.mList` via call to `add`] -codetoanalyze/java/racerd/Containers.java, void Containers.listAddBad2(int,String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&this.codetoanalyze.java.checkers.Containers.mList` via call to `add`] -codetoanalyze/java/racerd/Containers.java, void Containers.listClearBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&this.codetoanalyze.java.checkers.Containers.mList` via call to `clear`] -codetoanalyze/java/racerd/Containers.java, void Containers.listRemoveBad1(int), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&this.codetoanalyze.java.checkers.Containers.mList` via call to `remove`] -codetoanalyze/java/racerd/Containers.java, void Containers.listRemoveBad2(String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&this.codetoanalyze.java.checkers.Containers.mList` via call to `remove`] -codetoanalyze/java/racerd/Containers.java, void Containers.listSetBad(int,String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&this.codetoanalyze.java.checkers.Containers.mList` via call to `set`] -codetoanalyze/java/racerd/Containers.java, void Containers.listSubclassWriteBad(ArrayList,int), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&list` via call to `remove`] -codetoanalyze/java/racerd/Containers.java, void Containers.mapClearBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&this.codetoanalyze.java.checkers.Containers.mMap` via call to `clear`] -codetoanalyze/java/racerd/Containers.java, void Containers.mapPutAllBad(Map), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&this.codetoanalyze.java.checkers.Containers.mMap` via call to `putAll`] -codetoanalyze/java/racerd/Containers.java, void Containers.mapPutBad(String,String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&this.codetoanalyze.java.checkers.Containers.mMap` via call to `put`] -codetoanalyze/java/racerd/Containers.java, void Containers.mapRemoveBad(String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&this.codetoanalyze.java.checkers.Containers.mMap` via call to `remove`] -codetoanalyze/java/racerd/Containers.java, void Containers.mapSubclassWriteBad(HashMap,String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&m` via call to `remove`] -codetoanalyze/java/racerd/Containers.java, void Containers.poolBad(), 5, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `&this.codetoanalyze.java.checkers.Containers.simplePool` via call to `release`] -codetoanalyze/java/racerd/DeepOwnership.java, void DeepOwnership.globalNotOwnedBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&#GB<>$DeepOwnership.DeepOwnership.global.DeepOwnership.next`] -codetoanalyze/java/racerd/DeepOwnership.java, void DeepOwnership.reassignBaseToGlobalBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `&x.DeepOwnership.next`] +codetoanalyze/java/racerd/AndroidModels.java, void AndroidModels.someResourceMethodsNotFunctionalBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.AndroidModels.mField`] +codetoanalyze/java/racerd/Annotations.java, boolean Annotations.FP_functionalAcrossUnboxingOk(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Annotations.mBool2`] +codetoanalyze/java/racerd/Annotations.java, double Annotations.functionalDoubleBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Annotations.mDouble`] +codetoanalyze/java/racerd/Annotations.java, int Annotations.FP_functionalAcrossBoxingLongOk(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Annotations.mBoxedLong2`] +codetoanalyze/java/racerd/Annotations.java, int Annotations.functionalAcrossUnboxingLongBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Annotations.mLong2`] +codetoanalyze/java/racerd/Annotations.java, long Annotations.functionaLongBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Annotations.mLong`] +codetoanalyze/java/racerd/Annotations.java, void Annotations.conditional2_bad(boolean), 5, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Annotations.ii`] +codetoanalyze/java/racerd/Annotations.java, void Annotations.functionalAndNonfunctionalBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Annotations.mInt`] +codetoanalyze/java/racerd/Annotations.java, void Annotations.mutateOffUiThreadBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Annotations.f`] +codetoanalyze/java/racerd/Annotations.java, void Annotations.mutateSubfieldOfConfinedBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Annotations.encapsulatedField.codetoanalyze.java.checkers.Obj.f`] +codetoanalyze/java/racerd/Annotations.java, void Annotations.read_from_non_confined_method_Bad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.Annotations.zz`,,access to `this.codetoanalyze.java.checkers.Annotations.zz`] +codetoanalyze/java/racerd/Annotations.java, void Annotations.read_off_UI_thread_Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.Annotations.f`,,access to `this.codetoanalyze.java.checkers.Annotations.f`] +codetoanalyze/java/racerd/Annotations.java, void ThreadSafeAlias.threadSafeAliasBad1(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.ThreadSafeAlias.field`] +codetoanalyze/java/racerd/Annotations.java, void ThreadSafeAlias.threadSafeAliasBad2(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.ThreadSafeAlias.field`] +codetoanalyze/java/racerd/Arrays.java, String Arrays.readWriteRaceBad(String), 4, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.Arrays.strArr1.[_]`,,access to `this.Arrays.strArr1.[_]`] +codetoanalyze/java/racerd/Arrays.java, void Arrays.arrayParameterWriteBad(int[]), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `name1.[_]`] +codetoanalyze/java/racerd/Arrays.java, void Arrays.writeWriteRaceBad(String), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.Arrays.strArr1.[_]`] +codetoanalyze/java/racerd/Builders.java, Builders$Obj Builders.buildThenMutateBad(Builders$Obj), 2, THREAD_SAFETY_VIOLATION, ERROR, [,call to Builders$Obj$Builder Builders$Obj$Builder.setFromObj(Builders$Obj),access to `input.codetoanalyze.java.checkers.Builders$Obj.g`,,access to `input.codetoanalyze.java.checkers.Builders$Obj.g`] +codetoanalyze/java/racerd/Builders.java, Builders$Obj Builders.buildThenMutateBad(Builders$Obj), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `input.codetoanalyze.java.checkers.Builders$Obj.g`] +codetoanalyze/java/racerd/Builders.java, Builders$Obj Builders.mutateBad(Builders$Obj), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `o.codetoanalyze.java.checkers.Builders$Obj.g`] +codetoanalyze/java/racerd/Builders.java, void TopLevelBuilder.setG(String), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.TopLevelBuilder.g`] +codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.FP_singleton2Ok(), 6, THREAD_SAFETY_VIOLATION, ERROR, [,access to `Constructors.Constructors.sSingleton1`,,access to `Constructors.Constructors.sSingleton1`] +codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singleton1Bad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [call to Constructors.(Object),access to `Constructors.Constructors.staticField`] +codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singleton2Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `Constructors.Constructors.sSingleton2`,,access to `Constructors.Constructors.sSingleton2`] +codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singleton2Bad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `Constructors.Constructors.sSingleton2`] +codetoanalyze/java/racerd/Constructors.java, Constructors Constructors.singleton2Bad(), 4, THREAD_SAFETY_VIOLATION, ERROR, [,access to `Constructors.Constructors.sSingleton2`,,access to `Constructors.Constructors.sSingleton2`] +codetoanalyze/java/racerd/Constructors.java, Constructors.(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `Constructors.Constructors.staticField`] +codetoanalyze/java/racerd/Constructors.java, Constructors.(Constructors), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `o.Constructors.field`] +codetoanalyze/java/racerd/Containers.java, boolean Containers.listReadBad(String), 1, THREAD_SAFETY_VIOLATION, ERROR, [,Read of container `this.codetoanalyze.java.checkers.Containers.mList` via call to `contains`,,Write to container `this.codetoanalyze.java.checkers.Containers.mList` via call to `set`] +codetoanalyze/java/racerd/Containers.java, int Containers.readSimpleArrayMap(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,Read of container `this.codetoanalyze.java.checkers.Containers.si_map` via call to `get`,,Write to container `this.codetoanalyze.java.checkers.Containers.si_map` via call to `put`] +codetoanalyze/java/racerd/Containers.java, void Containers.addToSimpleArrayMapBad(SimpleArrayMap), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `map` via call to `put`] +codetoanalyze/java/racerd/Containers.java, void Containers.addToSparseArrayBad(SparseArray), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `sparseArray` via call to `put`] +codetoanalyze/java/racerd/Containers.java, void Containers.addToSparseArrayCompatBad(SparseArrayCompat), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `sparseArray` via call to `put`] +codetoanalyze/java/racerd/Containers.java, void Containers.containerWrapperUnownedWriteBad(Object), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to Object ContainerWrapper.write(Object),call to Object ContainerWrapper._write(Object),Write to container `this.codetoanalyze.java.checkers.ContainerWrapper.children` via call to `add`] +codetoanalyze/java/racerd/Containers.java, void Containers.listAddAllBad(Collection), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `this.codetoanalyze.java.checkers.Containers.mList` via call to `addAll`] +codetoanalyze/java/racerd/Containers.java, void Containers.listAddBad1(String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `this.codetoanalyze.java.checkers.Containers.mList` via call to `add`] +codetoanalyze/java/racerd/Containers.java, void Containers.listAddBad2(int,String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `this.codetoanalyze.java.checkers.Containers.mList` via call to `add`] +codetoanalyze/java/racerd/Containers.java, void Containers.listClearBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `this.codetoanalyze.java.checkers.Containers.mList` via call to `clear`] +codetoanalyze/java/racerd/Containers.java, void Containers.listRemoveBad1(int), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `this.codetoanalyze.java.checkers.Containers.mList` via call to `remove`] +codetoanalyze/java/racerd/Containers.java, void Containers.listRemoveBad2(String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `this.codetoanalyze.java.checkers.Containers.mList` via call to `remove`] +codetoanalyze/java/racerd/Containers.java, void Containers.listSetBad(int,String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `this.codetoanalyze.java.checkers.Containers.mList` via call to `set`] +codetoanalyze/java/racerd/Containers.java, void Containers.listSubclassWriteBad(ArrayList,int), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `list` via call to `remove`] +codetoanalyze/java/racerd/Containers.java, void Containers.mapClearBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `this.codetoanalyze.java.checkers.Containers.mMap` via call to `clear`] +codetoanalyze/java/racerd/Containers.java, void Containers.mapPutAllBad(Map), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `this.codetoanalyze.java.checkers.Containers.mMap` via call to `putAll`] +codetoanalyze/java/racerd/Containers.java, void Containers.mapPutBad(String,String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `this.codetoanalyze.java.checkers.Containers.mMap` via call to `put`] +codetoanalyze/java/racerd/Containers.java, void Containers.mapRemoveBad(String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `this.codetoanalyze.java.checkers.Containers.mMap` via call to `remove`] +codetoanalyze/java/racerd/Containers.java, void Containers.mapSubclassWriteBad(HashMap,String), 1, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `m` via call to `remove`] +codetoanalyze/java/racerd/Containers.java, void Containers.poolBad(), 5, THREAD_SAFETY_VIOLATION, ERROR, [Write to container `this.codetoanalyze.java.checkers.Containers.simplePool` via call to `release`] +codetoanalyze/java/racerd/DeepOwnership.java, void DeepOwnership.globalNotOwnedBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `DeepOwnership.DeepOwnership.global.DeepOwnership.next`] +codetoanalyze/java/racerd/DeepOwnership.java, void DeepOwnership.reassignBaseToGlobalBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `x.DeepOwnership.next`] codetoanalyze/java/racerd/Dispatch.java, void Dispatch.callUnannotatedInterfaceBad(UnannotatedInterface), 1, INTERFACE_NOT_THREAD_SAFE, ERROR, [Call to un-annotated interface method void UnannotatedInterface.foo()] codetoanalyze/java/racerd/Dispatch.java, void Dispatch.callUnannotatedInterfaceIndirectBad(NotThreadSafe,UnannotatedInterface), 1, INTERFACE_NOT_THREAD_SAFE, ERROR, [call to void NotThreadSafe.notThreadSafeOk(UnannotatedInterface),Call to un-annotated interface method void UnannotatedInterface.foo()] -codetoanalyze/java/racerd/Inference.java, int Inference.read4OutsideSyncBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.Inference.mField4`,,access to `&this.codetoanalyze.java.checkers.Inference.mField4`] -codetoanalyze/java/racerd/Inference.java, int Inference.unprotectedRead1Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.Inference.mField1`,,access to `&this.codetoanalyze.java.checkers.Inference.mField1`] -codetoanalyze/java/racerd/Inference.java, int Inference.unprotectedRead2Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.Inference.mField2`,,access to `&this.codetoanalyze.java.checkers.Inference.mField2`] -codetoanalyze/java/racerd/Locks.java, Object Locks.unownedReadBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.Locks.mField3`,,call to void Locks.lockedWriteInCallee2(),access to `&this.codetoanalyze.java.checkers.Locks.mField3`] -codetoanalyze/java/racerd/Locks.java, boolean Locks.readOutsideLock1Bad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.Locks.mField`,,access to `&this.codetoanalyze.java.checkers.Locks.mField`] -codetoanalyze/java/racerd/Locks.java, boolean Locks.readOutsideLock2Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.Locks.mField`,,access to `&this.codetoanalyze.java.checkers.Locks.mField`] -codetoanalyze/java/racerd/Locks.java, void Locks.afterReentrantLockUnlockBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Locks.f`] -codetoanalyze/java/racerd/Locks.java, void Locks.afterUnlockBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Locks.f`] -codetoanalyze/java/racerd/Locks.java, void Locks.afterWriteLockUnlockBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Locks.f`] -codetoanalyze/java/racerd/Locks.java, void Locks.lockInLoopLexicalBad(int), 6, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Locks.f`] -codetoanalyze/java/racerd/Locks.java, void Locks.negatedReentrantLockTryLockBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Locks.f`] -codetoanalyze/java/racerd/Locks.java, void Locks.nested1Bad(), 5, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Locks.f`] -codetoanalyze/java/racerd/Locks.java, void Locks.nested2Bad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Locks.f`] -codetoanalyze/java/racerd/Locks.java, void Locks.nested3Bad(), 5, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Locks.f`] -codetoanalyze/java/racerd/Locks.java, void Locks.tryLockNoCheckBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Locks.f`] -codetoanalyze/java/racerd/Locks.java, void Locks.tryLockWrongBranchBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Locks.f`] -codetoanalyze/java/racerd/Locks.java, void Locks.useLockInCalleeBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.Locks.f`] -codetoanalyze/java/racerd/Ownership.java, Ownership.(Obj,Object), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&obj.codetoanalyze.java.checkers.Obj.f`] -codetoanalyze/java/racerd/Ownership.java, int Ownership.readGlobalBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&#GB<>$codetoanalyze.java.checkers.Ownership.codetoanalyze.java.checkers.Ownership.global`,,access to `&#GB<>$codetoanalyze.java.checkers.Ownership.codetoanalyze.java.checkers.Ownership.global`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.cantOwnThisBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.setField(Obj),access to `&this.codetoanalyze.java.checkers.Ownership.field`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.castThenCallBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.castThenCall(Obj),call to void Subclass.doWrite(),access to `&this.codetoanalyze.java.checkers.Obj.f`] +codetoanalyze/java/racerd/Inference.java, int Inference.read4OutsideSyncBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.Inference.mField4`,,access to `this.codetoanalyze.java.checkers.Inference.mField4`] +codetoanalyze/java/racerd/Inference.java, int Inference.unprotectedRead1Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.Inference.mField1`,,access to `this.codetoanalyze.java.checkers.Inference.mField1`] +codetoanalyze/java/racerd/Inference.java, int Inference.unprotectedRead2Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.Inference.mField2`,,access to `this.codetoanalyze.java.checkers.Inference.mField2`] +codetoanalyze/java/racerd/Locks.java, Object Locks.unownedReadBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.Locks.mField3`,,call to void Locks.lockedWriteInCallee2(),access to `this.codetoanalyze.java.checkers.Locks.mField3`] +codetoanalyze/java/racerd/Locks.java, boolean Locks.readOutsideLock1Bad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.Locks.mField`,,access to `this.codetoanalyze.java.checkers.Locks.mField`] +codetoanalyze/java/racerd/Locks.java, boolean Locks.readOutsideLock2Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.Locks.mField`,,access to `this.codetoanalyze.java.checkers.Locks.mField`] +codetoanalyze/java/racerd/Locks.java, void Locks.afterReentrantLockUnlockBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Locks.f`] +codetoanalyze/java/racerd/Locks.java, void Locks.afterUnlockBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Locks.f`] +codetoanalyze/java/racerd/Locks.java, void Locks.afterWriteLockUnlockBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Locks.f`] +codetoanalyze/java/racerd/Locks.java, void Locks.lockInLoopLexicalBad(int), 6, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Locks.f`] +codetoanalyze/java/racerd/Locks.java, void Locks.negatedReentrantLockTryLockBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Locks.f`] +codetoanalyze/java/racerd/Locks.java, void Locks.nested1Bad(), 5, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Locks.f`] +codetoanalyze/java/racerd/Locks.java, void Locks.nested2Bad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Locks.f`] +codetoanalyze/java/racerd/Locks.java, void Locks.nested3Bad(), 5, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Locks.f`] +codetoanalyze/java/racerd/Locks.java, void Locks.tryLockNoCheckBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Locks.f`] +codetoanalyze/java/racerd/Locks.java, void Locks.tryLockWrongBranchBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Locks.f`] +codetoanalyze/java/racerd/Locks.java, void Locks.useLockInCalleeBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.Locks.f`] +codetoanalyze/java/racerd/Ownership.java, Ownership.(Obj,Object), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `obj.codetoanalyze.java.checkers.Obj.f`] +codetoanalyze/java/racerd/Ownership.java, int Ownership.readGlobalBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `checkers.Ownership.codetoanalyze.java.checkers.Ownership.global`,,access to `checkers.Ownership.codetoanalyze.java.checkers.Ownership.global`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.cantOwnThisBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.setField(Obj),access to `this.codetoanalyze.java.checkers.Ownership.field`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.castThenCallBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.castThenCall(Obj),call to void Subclass.doWrite(),access to `this.codetoanalyze.java.checkers.Obj.f`] codetoanalyze/java/racerd/Ownership.java, void Ownership.castThenReturnBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `n$5.codetoanalyze.java.checkers.Obj.f`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.conditionalAliasBad(Obj), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.conditionalAlias(Obj,Obj),access to `&alias.codetoanalyze.java.checkers.Obj.f`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.notOwnedInCalleeBad(Obj), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.mutateIfNotNull(Obj),access to `&o.codetoanalyze.java.checkers.Obj.f`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.notPropagatingOwnershipToAccessPathRootedAtFormalBad(Obj), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&m.codetoanalyze.java.checkers.Obj.g`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.notPropagatingOwnershipToUnownedLocalAccessPathBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.Ownership.field`,,call to void Ownership.setField(Obj),access to `&this.codetoanalyze.java.checkers.Ownership.field`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.notPropagatingOwnershipToUnownedLocalAccessPathBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `&m.codetoanalyze.java.checkers.Obj.g`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.ownInOneBranchBad(Obj,boolean), 5, THREAD_SAFETY_VIOLATION, ERROR, [access to `&formal.codetoanalyze.java.checkers.Obj.f`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.reassignParamToUnownedBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.reassignParamToUnowned(Obj),access to `&o.codetoanalyze.java.checkers.Obj.f`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.reassignToFormalBad(Obj), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `&formal.codetoanalyze.java.checkers.Obj.g`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.reassignToFormalBad(Obj), 3, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&formal.codetoanalyze.java.checkers.Obj.g`,,access to `&formal.codetoanalyze.java.checkers.Obj.g`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.writeToNotOwnedInCalleeBad1(Obj), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.writeToFormal(Obj),access to `&formal.codetoanalyze.java.checkers.Obj.f`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.writeToNotOwnedInCalleeBad2(), 2, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.writeToFormal(Obj),access to `&formal.codetoanalyze.java.checkers.Obj.f`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.writeToNotOwnedInCalleeBad3(Obj), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.callWriteToFormal(Obj),call to void Ownership.writeToFormal(Obj),access to `&formal.codetoanalyze.java.checkers.Obj.f`] -codetoanalyze/java/racerd/Ownership.java, void Ownership.writeToOwnedInCalleeOk2(), 4, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.Ownership.field`,,access to `&this.codetoanalyze.java.checkers.Ownership.field`] -codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.conditional2_bad(boolean), 6, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.ff`] -codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.conditionalMainThreadWriteBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void RaceWithMainThread.conditionalMainThreadWrite2(boolean),access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.mOnlyWrittenOnMain`] -codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.conditional_isMainThread_ElseBranch_Bad(), 7, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.ff`] -codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.conditional_isMainThread_Negation_Bad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.ff`] -codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.conditional_isUiThread_ElseBranch_Bad(), 7, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.ff`] -codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.confusedAssertBad(boolean), 7, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.mFld`] -codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.readProtectedUnthreadedBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.f`,,access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.f`] -codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.read_unprotected_unthreaded1_Bad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.f1`,,access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.f1`] -codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.read_unprotected_unthreaded_Bad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.f`,,access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.f`] -codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.writeAfterConditionalMainThreadInCalleeBad(), 4, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.RaceWithMainThread.mSharedField`] -codetoanalyze/java/racerd/ReadWriteRaces.java, Object ReadWriteRaces.callUnprotecteReadInCallee(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,call to Object ReadWriteRaces.unprotectedReadInCallee(),access to `&this.codetoanalyze.java.checkers.ReadWriteRaces.field1`,,access to `&this.codetoanalyze.java.checkers.ReadWriteRaces.field1`] -codetoanalyze/java/racerd/ReadWriteRaces.java, Object ReadWriteRaces.unprotectedRead1(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ReadWriteRaces.field1`,,access to `&this.codetoanalyze.java.checkers.ReadWriteRaces.field1`] -codetoanalyze/java/racerd/ReadWriteRaces.java, Object ReadWriteRaces.unprotectedRead2(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ReadWriteRaces.field2`,,access to `&this.codetoanalyze.java.checkers.ReadWriteRaces.field2`] -codetoanalyze/java/racerd/ReadWriteRaces.java, Object ReadWriteRaces.unprotectedRead3(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ReadWriteRaces.field3`,,call to void ReadWriteRaces.syncWrite3(),access to `&this.codetoanalyze.java.checkers.ReadWriteRaces.field3`] -codetoanalyze/java/racerd/ReadWriteRaces.java, void ReadWriteRaces.m1(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ReadWriteRaces.racy`,,access to `&this.codetoanalyze.java.checkers.ReadWriteRaces.racy`] -codetoanalyze/java/racerd/ReadWriteRaces.java, void ReadWriteRaces.m2(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.ReadWriteRaces.racy`] -codetoanalyze/java/racerd/ReadWriteRaces.java, void ReadWriteRaces.m3(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.ReadWriteRaces.racy`] -codetoanalyze/java/racerd/ReadWriteRaces.java, void ReadWriteRaces.readInCalleeOutsideSyncBad(int), 1, THREAD_SAFETY_VIOLATION, ERROR, [,call to int C.get(),access to `&this.codetoanalyze.java.checkers.C.x`,,call to void C.set(int),access to `&this.codetoanalyze.java.checkers.C.x`] -codetoanalyze/java/racerd/SubFld.java, int SubFld.getG(), 6, THREAD_SAFETY_VIOLATION, ERROR, [,call to int SuperFld.getG(),access to `&this.SuperFld.g`,,access to `&this.SuperFld.g`] -codetoanalyze/java/racerd/ThreadSafeExample.java, Object ThreadSafeExample.FP_lazyInitOk(), 6, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ThreadSafeExample.sStaticField`,,access to `&this.codetoanalyze.java.checkers.ThreadSafeExample.sStaticField`] -codetoanalyze/java/racerd/ThreadSafeExample.java, void ExtendsThreadSafeExample.newmethodBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.ExtendsThreadSafeExample.field`] -codetoanalyze/java/racerd/ThreadSafeExample.java, void ExtendsThreadSafeExample.tsOK(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.ExtendsThreadSafeExample.field`] -codetoanalyze/java/racerd/ThreadSafeExample.java, void ThreadSafeExample.callPublicMethodBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void ThreadSafeExample.assignInPrivateMethodOk(),access to `&this.codetoanalyze.java.checkers.ThreadSafeExample.f`] -codetoanalyze/java/racerd/ThreadSafeExample.java, void ThreadSafeExample.callVisibleForTestingBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void ThreadSafeExample.visibleForTestingNotPublicOk(),access to `&this.codetoanalyze.java.checkers.ThreadSafeExample.f`] -codetoanalyze/java/racerd/ThreadSafeExample.java, void ThreadSafeExample.deeperTraceBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void ThreadSafeExample.callAssignInPrivateMethod(),call to void ThreadSafeExample.assignInPrivateMethodOk(),access to `&this.codetoanalyze.java.checkers.ThreadSafeExample.f`] -codetoanalyze/java/racerd/ThreadSafeExample.java, void ThreadSafeExample.oddBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void ThreadSafeExample.evenOk(),access to `&this.codetoanalyze.java.checkers.ThreadSafeExample.f`] -codetoanalyze/java/racerd/ThreadSafeExample.java, void ThreadSafeExample.recursiveBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.ThreadSafeExample.f`] -codetoanalyze/java/racerd/ThreadSafeExample.java, void ThreadSafeExample.tsBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.ThreadSafeExample.f`] -codetoanalyze/java/racerd/ThreadSafeExample.java, void YesThreadSafeExtendsNotThreadSafeExample.subsubmethodBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.YesThreadSafeExtendsNotThreadSafeExample.subsubfield`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, Object ThreadSafeMethods.readSameFieldAsThreadSafeMethod1Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`,,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, Object ThreadSafeMethods.readSameFieldAsThreadSafeMethod2Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field4`,,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field4`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, Object ThreadSafeMethods.readSameFieldAsThreadSafeMethodWhileSynchronized1Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`,,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, Object ThreadSafeMethods.threadSafeMethodReadBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field2`,,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field2`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, Object ThreadSafeMethodsSubclass.readThreadSafeFieldOfOverrideBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.subclassField`,,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.subclassField`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethods.threadSafeMethodWriteBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethods.threadSafePrivateMethodBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field2`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethods.threadSafeVisibleForTestingMethodBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field3`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethods.writeSameFieldAsThreadSafeMethod1Bad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`,,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethods.writeSameFieldAsThreadSafeMethod2Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field4`,,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethods.field4`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethodsSubclass.safeMethodOverride(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `&this.codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.subclassField`] -codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethodsSubclass.writeThreadSafeFieldOfOverrideBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.subclassField`,,access to `&this.codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.subclassField`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.conditionalAliasBad(Obj), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.conditionalAlias(Obj,Obj),access to `alias.codetoanalyze.java.checkers.Obj.f`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.notOwnedInCalleeBad(Obj), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.mutateIfNotNull(Obj),access to `o.codetoanalyze.java.checkers.Obj.f`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.notPropagatingOwnershipToAccessPathRootedAtFormalBad(Obj), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `m.codetoanalyze.java.checkers.Obj.g`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.notPropagatingOwnershipToUnownedLocalAccessPathBad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.Ownership.field`,,call to void Ownership.setField(Obj),access to `this.codetoanalyze.java.checkers.Ownership.field`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.notPropagatingOwnershipToUnownedLocalAccessPathBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `m.codetoanalyze.java.checkers.Obj.g`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.ownInOneBranchBad(Obj,boolean), 5, THREAD_SAFETY_VIOLATION, ERROR, [access to `formal.codetoanalyze.java.checkers.Obj.f`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.reassignParamToUnownedBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.reassignParamToUnowned(Obj),access to `o.codetoanalyze.java.checkers.Obj.f`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.reassignToFormalBad(Obj), 2, THREAD_SAFETY_VIOLATION, ERROR, [access to `formal.codetoanalyze.java.checkers.Obj.g`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.reassignToFormalBad(Obj), 3, THREAD_SAFETY_VIOLATION, ERROR, [,access to `formal.codetoanalyze.java.checkers.Obj.g`,,access to `formal.codetoanalyze.java.checkers.Obj.g`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.writeToNotOwnedInCalleeBad1(Obj), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.writeToFormal(Obj),access to `formal.codetoanalyze.java.checkers.Obj.f`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.writeToNotOwnedInCalleeBad2(), 2, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.writeToFormal(Obj),access to `formal.codetoanalyze.java.checkers.Obj.f`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.writeToNotOwnedInCalleeBad3(Obj), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void Ownership.callWriteToFormal(Obj),call to void Ownership.writeToFormal(Obj),access to `formal.codetoanalyze.java.checkers.Obj.f`] +codetoanalyze/java/racerd/Ownership.java, void Ownership.writeToOwnedInCalleeOk2(), 4, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.Ownership.field`,,access to `this.codetoanalyze.java.checkers.Ownership.field`] +codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.conditional2_bad(boolean), 6, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.RaceWithMainThread.ff`] +codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.conditionalMainThreadWriteBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void RaceWithMainThread.conditionalMainThreadWrite2(boolean),access to `this.codetoanalyze.java.checkers.RaceWithMainThread.mOnlyWrittenOnMain`] +codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.conditional_isMainThread_ElseBranch_Bad(), 7, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.RaceWithMainThread.ff`] +codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.conditional_isMainThread_Negation_Bad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.RaceWithMainThread.ff`] +codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.conditional_isUiThread_ElseBranch_Bad(), 7, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.RaceWithMainThread.ff`] +codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.confusedAssertBad(boolean), 7, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.RaceWithMainThread.mFld`] +codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.readProtectedUnthreadedBad(), 3, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.RaceWithMainThread.f`,,access to `this.codetoanalyze.java.checkers.RaceWithMainThread.f`] +codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.read_unprotected_unthreaded1_Bad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.RaceWithMainThread.f1`,,access to `this.codetoanalyze.java.checkers.RaceWithMainThread.f1`] +codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.read_unprotected_unthreaded_Bad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.RaceWithMainThread.f`,,access to `this.codetoanalyze.java.checkers.RaceWithMainThread.f`] +codetoanalyze/java/racerd/RaceWithMainThread.java, void RaceWithMainThread.writeAfterConditionalMainThreadInCalleeBad(), 4, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.RaceWithMainThread.mSharedField`] +codetoanalyze/java/racerd/ReadWriteRaces.java, Object ReadWriteRaces.callUnprotecteReadInCallee(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,call to Object ReadWriteRaces.unprotectedReadInCallee(),access to `this.codetoanalyze.java.checkers.ReadWriteRaces.field1`,,access to `this.codetoanalyze.java.checkers.ReadWriteRaces.field1`] +codetoanalyze/java/racerd/ReadWriteRaces.java, Object ReadWriteRaces.unprotectedRead1(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ReadWriteRaces.field1`,,access to `this.codetoanalyze.java.checkers.ReadWriteRaces.field1`] +codetoanalyze/java/racerd/ReadWriteRaces.java, Object ReadWriteRaces.unprotectedRead2(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ReadWriteRaces.field2`,,access to `this.codetoanalyze.java.checkers.ReadWriteRaces.field2`] +codetoanalyze/java/racerd/ReadWriteRaces.java, Object ReadWriteRaces.unprotectedRead3(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ReadWriteRaces.field3`,,call to void ReadWriteRaces.syncWrite3(),access to `this.codetoanalyze.java.checkers.ReadWriteRaces.field3`] +codetoanalyze/java/racerd/ReadWriteRaces.java, void ReadWriteRaces.m1(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ReadWriteRaces.racy`,,access to `this.codetoanalyze.java.checkers.ReadWriteRaces.racy`] +codetoanalyze/java/racerd/ReadWriteRaces.java, void ReadWriteRaces.m2(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.ReadWriteRaces.racy`] +codetoanalyze/java/racerd/ReadWriteRaces.java, void ReadWriteRaces.m3(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.ReadWriteRaces.racy`] +codetoanalyze/java/racerd/ReadWriteRaces.java, void ReadWriteRaces.readInCalleeOutsideSyncBad(int), 1, THREAD_SAFETY_VIOLATION, ERROR, [,call to int C.get(),access to `this.codetoanalyze.java.checkers.C.x`,,call to void C.set(int),access to `this.codetoanalyze.java.checkers.C.x`] +codetoanalyze/java/racerd/SubFld.java, int SubFld.getG(), 6, THREAD_SAFETY_VIOLATION, ERROR, [,call to int SuperFld.getG(),access to `this.SuperFld.g`,,access to `this.SuperFld.g`] +codetoanalyze/java/racerd/ThreadSafeExample.java, Object ThreadSafeExample.FP_lazyInitOk(), 6, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ThreadSafeExample.sStaticField`,,access to `this.codetoanalyze.java.checkers.ThreadSafeExample.sStaticField`] +codetoanalyze/java/racerd/ThreadSafeExample.java, void ExtendsThreadSafeExample.newmethodBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.ExtendsThreadSafeExample.field`] +codetoanalyze/java/racerd/ThreadSafeExample.java, void ExtendsThreadSafeExample.tsOK(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.ExtendsThreadSafeExample.field`] +codetoanalyze/java/racerd/ThreadSafeExample.java, void ThreadSafeExample.callPublicMethodBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void ThreadSafeExample.assignInPrivateMethodOk(),access to `this.codetoanalyze.java.checkers.ThreadSafeExample.f`] +codetoanalyze/java/racerd/ThreadSafeExample.java, void ThreadSafeExample.callVisibleForTestingBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void ThreadSafeExample.visibleForTestingNotPublicOk(),access to `this.codetoanalyze.java.checkers.ThreadSafeExample.f`] +codetoanalyze/java/racerd/ThreadSafeExample.java, void ThreadSafeExample.deeperTraceBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void ThreadSafeExample.callAssignInPrivateMethod(),call to void ThreadSafeExample.assignInPrivateMethodOk(),access to `this.codetoanalyze.java.checkers.ThreadSafeExample.f`] +codetoanalyze/java/racerd/ThreadSafeExample.java, void ThreadSafeExample.oddBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [call to void ThreadSafeExample.evenOk(),access to `this.codetoanalyze.java.checkers.ThreadSafeExample.f`] +codetoanalyze/java/racerd/ThreadSafeExample.java, void ThreadSafeExample.recursiveBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.ThreadSafeExample.f`] +codetoanalyze/java/racerd/ThreadSafeExample.java, void ThreadSafeExample.tsBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.ThreadSafeExample.f`] +codetoanalyze/java/racerd/ThreadSafeExample.java, void YesThreadSafeExtendsNotThreadSafeExample.subsubmethodBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.YesThreadSafeExtendsNotThreadSafeExample.subsubfield`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, Object ThreadSafeMethods.readSameFieldAsThreadSafeMethod1Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`,,access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, Object ThreadSafeMethods.readSameFieldAsThreadSafeMethod2Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field4`,,access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field4`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, Object ThreadSafeMethods.readSameFieldAsThreadSafeMethodWhileSynchronized1Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`,,access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, Object ThreadSafeMethods.threadSafeMethodReadBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field2`,,access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field2`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, Object ThreadSafeMethodsSubclass.readThreadSafeFieldOfOverrideBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.subclassField`,,access to `this.codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.subclassField`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethods.threadSafeMethodWriteBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethods.threadSafePrivateMethodBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field2`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethods.threadSafeVisibleForTestingMethodBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field3`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethods.writeSameFieldAsThreadSafeMethod1Bad(), 2, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`,,access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field1`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethods.writeSameFieldAsThreadSafeMethod2Bad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field4`,,access to `this.codetoanalyze.java.checkers.ThreadSafeMethods.field4`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethodsSubclass.safeMethodOverride(), 1, THREAD_SAFETY_VIOLATION, ERROR, [access to `this.codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.subclassField`] +codetoanalyze/java/racerd/ThreadSafeMethods.java, void ThreadSafeMethodsSubclass.writeThreadSafeFieldOfOverrideBad(), 1, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.subclassField`,,access to `this.codetoanalyze.java.checkers.ThreadSafeMethodsSubclass.subclassField`] diff --git a/infer/tests/codetoanalyze/java/stability/issues.exp b/infer/tests/codetoanalyze/java/stability/issues.exp index 40bdb9fd4..41440a201 100644 --- a/infer/tests/codetoanalyze/java/stability/issues.exp +++ b/infer/tests/codetoanalyze/java/stability/issues.exp @@ -1,5 +1,5 @@ -codetoanalyze/java/stability/Interprocedural.java, void Interprocedural$Field.stable_bad(), 5, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.Interprocedural$Field.a.codetoanalyze.java.checkers.Interprocedural$A.f.codetoanalyze.java.checkers.Interprocedural$B.g`,,access to `&this.codetoanalyze.java.checkers.Interprocedural$Field.a.codetoanalyze.java.checkers.Interprocedural$A.f.codetoanalyze.java.checkers.Interprocedural$B.g`] -codetoanalyze/java/stability/Interprocedural.java, void Interprocedural$Param.stable_bad(Interprocedural$A), 5, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&a.codetoanalyze.java.checkers.Interprocedural$A.f.codetoanalyze.java.checkers.Interprocedural$B.g`,,access to `&a.codetoanalyze.java.checkers.Interprocedural$A.f.codetoanalyze.java.checkers.Interprocedural$B.g`] -codetoanalyze/java/stability/Interprocedural.java, void Interprocedural$Param2.stable_bad(Interprocedural$A), 6, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&a.codetoanalyze.java.checkers.Interprocedural$A.f.codetoanalyze.java.checkers.Interprocedural$B.g`,,access to `&a.codetoanalyze.java.checkers.Interprocedural$A.f.codetoanalyze.java.checkers.Interprocedural$B.g`] -codetoanalyze/java/stability/Intraprocedural.java, void Intraprocedural$Field.stable_bad(), 5, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&this.codetoanalyze.java.checkers.Intraprocedural$Field.a.codetoanalyze.java.checkers.Intraprocedural$A.f.codetoanalyze.java.checkers.Intraprocedural$B.g`,,access to `&this.codetoanalyze.java.checkers.Intraprocedural$Field.a.codetoanalyze.java.checkers.Intraprocedural$A.f.codetoanalyze.java.checkers.Intraprocedural$B.g`] -codetoanalyze/java/stability/Intraprocedural.java, void Intraprocedural$Param.stable_bad(Intraprocedural$A), 5, THREAD_SAFETY_VIOLATION, ERROR, [,access to `&a.codetoanalyze.java.checkers.Intraprocedural$A.f.codetoanalyze.java.checkers.Intraprocedural$B.g`,,access to `&a.codetoanalyze.java.checkers.Intraprocedural$A.f.codetoanalyze.java.checkers.Intraprocedural$B.g`] +codetoanalyze/java/stability/Interprocedural.java, void Interprocedural$Field.stable_bad(), 5, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.Interprocedural$Field.a.codetoanalyze.java.checkers.Interprocedural$A.f.codetoanalyze.java.checkers.Interprocedural$B.g`,,access to `this.codetoanalyze.java.checkers.Interprocedural$Field.a.codetoanalyze.java.checkers.Interprocedural$A.f.codetoanalyze.java.checkers.Interprocedural$B.g`] +codetoanalyze/java/stability/Interprocedural.java, void Interprocedural$Param.stable_bad(Interprocedural$A), 5, THREAD_SAFETY_VIOLATION, ERROR, [,access to `a.codetoanalyze.java.checkers.Interprocedural$A.f.codetoanalyze.java.checkers.Interprocedural$B.g`,,access to `a.codetoanalyze.java.checkers.Interprocedural$A.f.codetoanalyze.java.checkers.Interprocedural$B.g`] +codetoanalyze/java/stability/Interprocedural.java, void Interprocedural$Param2.stable_bad(Interprocedural$A), 6, THREAD_SAFETY_VIOLATION, ERROR, [,access to `a.codetoanalyze.java.checkers.Interprocedural$A.f.codetoanalyze.java.checkers.Interprocedural$B.g`,,access to `a.codetoanalyze.java.checkers.Interprocedural$A.f.codetoanalyze.java.checkers.Interprocedural$B.g`] +codetoanalyze/java/stability/Intraprocedural.java, void Intraprocedural$Field.stable_bad(), 5, THREAD_SAFETY_VIOLATION, ERROR, [,access to `this.codetoanalyze.java.checkers.Intraprocedural$Field.a.codetoanalyze.java.checkers.Intraprocedural$A.f.codetoanalyze.java.checkers.Intraprocedural$B.g`,,access to `this.codetoanalyze.java.checkers.Intraprocedural$Field.a.codetoanalyze.java.checkers.Intraprocedural$A.f.codetoanalyze.java.checkers.Intraprocedural$B.g`] +codetoanalyze/java/stability/Intraprocedural.java, void Intraprocedural$Param.stable_bad(Intraprocedural$A), 5, THREAD_SAFETY_VIOLATION, ERROR, [,access to `a.codetoanalyze.java.checkers.Intraprocedural$A.f.codetoanalyze.java.checkers.Intraprocedural$B.g`,,access to `a.codetoanalyze.java.checkers.Intraprocedural$A.f.codetoanalyze.java.checkers.Intraprocedural$B.g`] diff --git a/infer/tests/codetoanalyze/objc/nullable/issues.exp b/infer/tests/codetoanalyze/objc/nullable/issues.exp index 3d4ede21f..a0e505387 100644 --- a/infer/tests/codetoanalyze/objc/nullable/issues.exp +++ b/infer/tests/codetoanalyze/objc/nullable/issues.exp @@ -3,23 +3,23 @@ codetoanalyze/objc/nullable/Examples.m, T_addNullableObjectInMutableArrayBad, 2, codetoanalyze/objc/nullable/Examples.m, T_assignNonnullFieldToNullBad, 1, FIELD_SHOULD_BE_NULLABLE, WARNING, [Field nonnullField is assigned null here] codetoanalyze/objc/nullable/Examples.m, T_assignUnnanotatedFieldToNullBad, 1, FIELD_SHOULD_BE_NULLABLE, WARNING, [Field unnanotatedField is assigned null here] codetoanalyze/objc/nullable/Examples.m, T_createArrayByAddingNilBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereferencing the return of nullableMethod,assignment of the nullable value,definition of nullableMethod] -codetoanalyze/objc/nullable/Examples.m, T_dereferenceNullableFunctionBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &p,assignment of the nullable value,definition of returnsNull] -codetoanalyze/objc/nullable/Examples.m, T_dereferenceNullableLibraryMethodBad:, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &nullableObject,assignment of the nullable value,definition of nullableLibraryMethod] +codetoanalyze/objc/nullable/Examples.m, T_dereferenceNullableFunctionBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of p,assignment of the nullable value,definition of returnsNull] +codetoanalyze/objc/nullable/Examples.m, T_dereferenceNullableLibraryMethodBad:, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of nullableObject,assignment of the nullable value,definition of nullableLibraryMethod] codetoanalyze/objc/nullable/Examples.m, T_dereferenceUnnanotatedFieldAfterTestForNullBad, 1, FIELD_SHOULD_BE_NULLABLE, WARNING, [Field unnanotatedField is compared to null here] -codetoanalyze/objc/nullable/Examples.m, T_indirectNullableKeyInNSDictionaryBad, 3, NULLABLE_DEREFERENCE, ERROR, [dereference of &nullableKeyString,assignment of the nullable value,definition of nullableMethod] +codetoanalyze/objc/nullable/Examples.m, T_indirectNullableKeyInNSDictionaryBad, 3, NULLABLE_DEREFERENCE, ERROR, [dereference of nullableKeyString,assignment of the nullable value,definition of nullableMethod] codetoanalyze/objc/nullable/Examples.m, T_insertNullableObjectInMutableArrayBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereferencing the return of nullableMethod,assignment of the nullable value,definition of nullableMethod] -codetoanalyze/objc/nullable/Examples.m, T_nullableKeyInNSDictionaryBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &nullableKey,assignment of the nullable value,definition of nullableMethod] -codetoanalyze/objc/nullable/Examples.m, T_nullableKeyInNSDictionaryInitBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &nullableKey,assignment of the nullable value,definition of nullableMethod] -codetoanalyze/objc/nullable/Examples.m, T_nullableKeyInNSDictionaryInitLiteralBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &nullableKey,assignment of the nullable value,definition of nullableMethod] -codetoanalyze/objc/nullable/Examples.m, T_nullableObjectInNSArrayBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &nullableObject,assignment of the nullable value,definition of nullableMethod] -codetoanalyze/objc/nullable/Examples.m, T_nullableValueInNSDictionaryBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &nullableValue,assignment of the nullable value,definition of nullableMethod] -codetoanalyze/objc/nullable/Examples.m, T_nullableValueInNSDictionaryInitBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &nullableValue,assignment of the nullable value,definition of nullableMethod] -codetoanalyze/objc/nullable/Examples.m, T_nullableValueInNSDictionaryInitLiteralBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &nullableValue,assignment of the nullable value,definition of nullableMethod] -codetoanalyze/objc/nullable/Examples.m, T_propagateNullabilityOnMethodCallBad, 4, NULLABLE_DEREFERENCE, ERROR, [dereference of &nullableString,assignment of the nullable value,definition of nullableMethod] -codetoanalyze/objc/nullable/Examples.m, T_secondElementNullableObjectInNSArrayBad, 3, NULLABLE_DEREFERENCE, ERROR, [dereference of &nullableObject,assignment of the nullable value,definition of nullableMethod] +codetoanalyze/objc/nullable/Examples.m, T_nullableKeyInNSDictionaryBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of nullableKey,assignment of the nullable value,definition of nullableMethod] +codetoanalyze/objc/nullable/Examples.m, T_nullableKeyInNSDictionaryInitBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of nullableKey,assignment of the nullable value,definition of nullableMethod] +codetoanalyze/objc/nullable/Examples.m, T_nullableKeyInNSDictionaryInitLiteralBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of nullableKey,assignment of the nullable value,definition of nullableMethod] +codetoanalyze/objc/nullable/Examples.m, T_nullableObjectInNSArrayBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of nullableObject,assignment of the nullable value,definition of nullableMethod] +codetoanalyze/objc/nullable/Examples.m, T_nullableValueInNSDictionaryBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of nullableValue,assignment of the nullable value,definition of nullableMethod] +codetoanalyze/objc/nullable/Examples.m, T_nullableValueInNSDictionaryInitBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of nullableValue,assignment of the nullable value,definition of nullableMethod] +codetoanalyze/objc/nullable/Examples.m, T_nullableValueInNSDictionaryInitLiteralBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of nullableValue,assignment of the nullable value,definition of nullableMethod] +codetoanalyze/objc/nullable/Examples.m, T_propagateNullabilityOnMethodCallBad, 4, NULLABLE_DEREFERENCE, ERROR, [dereference of nullableString,assignment of the nullable value,definition of nullableMethod] +codetoanalyze/objc/nullable/Examples.m, T_secondElementNullableObjectInNSArrayBad, 3, NULLABLE_DEREFERENCE, ERROR, [dereference of nullableObject,assignment of the nullable value,definition of nullableMethod] codetoanalyze/objc/nullable/Examples.m, T_setNullableObjectInDictionaryBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereferencing the return of nullableMethod,assignment of the nullable value,definition of nullableMethod] -codetoanalyze/objc/nullable/Examples.m, T_shouldPropagateNullabilityOnPointerTypeBad, 3, NULLABLE_DEREFERENCE, ERROR, [dereference of &s,assignment of the nullable value,definition of nullableT] +codetoanalyze/objc/nullable/Examples.m, T_shouldPropagateNullabilityOnPointerTypeBad, 3, NULLABLE_DEREFERENCE, ERROR, [dereference of s,assignment of the nullable value,definition of nullableT] codetoanalyze/objc/nullable/Examples.m, T_testNonnullFieldForNullBad, 1, FIELD_SHOULD_BE_NULLABLE, WARNING, [Field nonnullField is compared to null here] codetoanalyze/objc/nullable/Examples.m, T_testUnnanotatedFieldForNullBad, 1, FIELD_SHOULD_BE_NULLABLE, WARNING, [Field unnanotatedField is compared to null here] -codetoanalyze/objc/nullable/Examples.m, callNullableMethodFromProtocolBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of &nullableObject,assignment of the nullable value,definition of nullableMethod] +codetoanalyze/objc/nullable/Examples.m, callNullableMethodFromProtocolBad, 2, NULLABLE_DEREFERENCE, ERROR, [dereference of nullableObject,assignment of the nullable value,definition of nullableMethod] codetoanalyze/objc/nullable/Examples.m, objc_blockT_DeadStoreFP_testUnnanotatedFieldInClosureBad_1, 1, FIELD_SHOULD_BE_NULLABLE, WARNING, [Field unnanotatedField is compared to null here]