From 4c724de4872d90b2e949633959038babedbfcd91 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 22 Feb 2019 15:51:48 +0000 Subject: [PATCH] Java frontend: ignore CProver methods earlier We already tried to ignore org.cprover.CProver methods such as nondetInt, relying upon the front-end to supply stub bodies if desired based on their type. However, by creating symbols for them as for normal (non-stub) methods, but then refusing to provide a body or advertise them as normal methods, we failed to set up their type properly (specifically the parameter names), as they were neither set like a stub (upon symbol creation, upon discovery by a caller) or like a normal method (during java_bytecode_convert_method). By refusing to create the symbol at all, this treats the special CProver methods more like normal stubs: their symbols are now created on demand. It is also no longer necessary for java_bytecode_languaget::methods_provided to special case them, as they are not added to method_bytecodet either, again matching "real" stub methods more closely. --- jbmc/regression/jbmc/fake_stubs/Test.class | Bin 0 -> 292 bytes jbmc/regression/jbmc/fake_stubs/Test.java | 9 +++++++ jbmc/regression/jbmc/fake_stubs/test.desc | 11 ++++++++ .../fake_stubs/uses_cprover_start_thread.desc | 9 +++++++ .../java_bytecode_convert_class.cpp | 25 +++++++++++------- .../java_bytecode_convert_method.cpp | 24 ++++++++--------- .../java_bytecode/java_bytecode_language.cpp | 23 ---------------- 7 files changed, 57 insertions(+), 44 deletions(-) create mode 100644 jbmc/regression/jbmc/fake_stubs/Test.class create mode 100644 jbmc/regression/jbmc/fake_stubs/Test.java create mode 100644 jbmc/regression/jbmc/fake_stubs/test.desc create mode 100644 jbmc/regression/jbmc/fake_stubs/uses_cprover_start_thread.desc diff --git a/jbmc/regression/jbmc/fake_stubs/Test.class b/jbmc/regression/jbmc/fake_stubs/Test.class new file mode 100644 index 0000000000000000000000000000000000000000..53232913a6521276700cb30f21db1041c33fe935 GIT binary patch literal 292 zcmYLD!A=4(6r8s#RLUv{UOjLF5AMaI@j_xkV${S9_wLeQ3GAA(@L!%Z9QXh~$}lA{ zw#l36%)Ci|e)k6ecev7sk!YObLZPeB6SVGK>FNhTV>F%#;z>2Pg6@+m?elh>Tc4SH zMI~MvR|@o7we^L4bU|xpc2nOj&CVofqNQ+|ppOB=!4UL