diff --git a/infer/src/java/jTrans.ml b/infer/src/java/jTrans.ml index f402dce52..41c3269be 100644 --- a/infer/src/java/jTrans.ml +++ b/infer/src/java/jTrans.ml @@ -1087,6 +1087,10 @@ let instruction (context : JContext.t) pc instr : translation = trans_virtual_call cn I_Virtual | JBir.InterfaceCall cn -> trans_virtual_call cn I_Interface ) + | InvokeDynamic (var_opt, _bm, _ms, _args) -> + let _var = match var_opt with None -> assert false | Some var -> var in + raise (Frontend_error "InvokeDynamic not expected here") + (* We will not get any invokedynamic in the current setting *) | InvokeNonVirtual (var_opt, obj, cn, ms, args) -> let instrs, sil_obj_expr, sil_obj_type = expression context pc obj in let callee_procname, call_instrs = @@ -1266,19 +1270,19 @@ let instruction (context : JContext.t) pc instr : translation = | Nop -> Skip | Formula _ -> - (* Sawja formulas are not generated with the current used + (* Sawja formulas are not generated with the current used flags '~formula:false' *) Skip | Check _ -> - (* Infer only considers 3 kinds of runtime error exceptions + (* Infer only considers 3 kinds of runtime error exceptions currently: NullPointer, ArrayBound, Cast. And only when Config.tracing=true. *) Skip | MayInit _ -> - (* Infer ignores Sawja MayInit instruction. This instruction - makes explicit the implicit Java mechanism of class static - initialization (the first time the VM encounters a class, - it runs code about it). This may remove inter-procedural + (* Infer ignores Sawja MayInit instruction. This instruction + makes explicit the implicit Java mechanism of class static + initialization (the first time the VM encounters a class, + it runs code about it). This may remove inter-procedural edges in Infer analyses *) Skip with Frontend_error s -> diff --git a/opam b/opam index a5901cb06..8aff00630 100644 --- a/opam +++ b/opam @@ -34,7 +34,7 @@ depends: [ "ctypes" {>="0.9.2"} "dune" {build & >="1.0"} "elina" {>="1.1"} - "javalib" {>="3.1"} + "javalib" {>="3.1.1"} "mtime" "ocaml" {>="4.06.0"} "ocamlfind" {build} @@ -43,7 +43,7 @@ depends: [ "parmap" {>="1.0-rc8"} "ppx_deriving" {>="4.1"} "ppx_fields_conv" {>="v0.12.0" & < "v0.13"} - "sawja" {>="1.5.4"} + "sawja" {>="1.5.7"} "sqlite3" "utop" {with-test} "xmlm" {>="1.2.0"} diff --git a/opam.locked b/opam.locked index e8e6444e3..e73e88e1f 100644 --- a/opam.locked +++ b/opam.locked @@ -1,6 +1,6 @@ opam-version: "2.0" name: "infer" -version: "0.16.0" +version: "0.17.0" synopsis: "A static analyzer for Java, C, C++, and Objective-C" maintainer: "the infer team" authors: "Facebook" @@ -36,7 +36,6 @@ depends: [ "bin_prot" {= "v0.12.0"} "biniou" {= "1.2.0"} "camlidl" {= "1.05"} - "camlp4" {= "4.07+1"} "camlzip" {= "1.08"} "cmdliner" {= "1.0.4"} "conf-autoconf" {= "0.1"} @@ -53,13 +52,14 @@ depends: [ "cppo" {= "1.6.6"} "ctypes" {= "0.14.0"} "dune" {= "1.10.0"} + "dune-configurator" {= "1.0.0"} "easy-format" {= "1.3.1"} "elina" {= "1.1"} "extlib" {= "1.7.5"} "fieldslib" {= "v0.12.0"} "integers" {= "0.2.2"} "jane-street-headers" {= "v0.12.0"} - "javalib" {= "3.1"} + "javalib" {= "3.1.1"} "jbuilder" {= "transition"} "jst-config" {= "v0.12.0"} "menhir" {= "20190626"} @@ -111,7 +111,7 @@ depends: [ "ppxlib" {= "0.8.0"} "re" {= "1.9.0"} "result" {= "1.4"} - "sawja" {= "1.5.6"} + "sawja" {= "1.5.7"} "seq" {= "base"} "sexplib" {= "v0.12.0"} "sexplib0" {= "v0.12.0"}