diff --git a/jbmc/regression/jbmc/nil-names/nil.class b/jbmc/regression/jbmc/nil-names/nil.class new file mode 100644 index 00000000000..4c76ef5936e Binary files /dev/null and b/jbmc/regression/jbmc/nil-names/nil.class differ diff --git a/jbmc/regression/jbmc/nil-names/nil.java b/jbmc/regression/jbmc/nil-names/nil.java new file mode 100644 index 00000000000..2a17b7227b4 --- /dev/null +++ b/jbmc/regression/jbmc/nil-names/nil.java @@ -0,0 +1,9 @@ +public class nil { + + int nil; + + public int getNil() { + return nil; + } + +} diff --git a/jbmc/regression/jbmc/nil-names/test.desc b/jbmc/regression/jbmc/nil-names/test.desc new file mode 100644 index 00000000000..0d4dcf5bd46 --- /dev/null +++ b/jbmc/regression/jbmc/nil-names/test.desc @@ -0,0 +1,8 @@ +CORE +nil.class +--function nil.getNil +^VERIFICATION SUCCESSFUL$ +^EXIT=0$ +^SIGNAL=0$ +-- +std::bad_cast diff --git a/jbmc/src/java_bytecode/java_bytecode_parse_tree.h b/jbmc/src/java_bytecode/java_bytecode_parse_tree.h index 99e03329b87..72d0c07aab4 100644 --- a/jbmc/src/java_bytecode/java_bytecode_parse_tree.h +++ b/jbmc/src/java_bytecode/java_bytecode_parse_tree.h @@ -352,7 +352,7 @@ class fieldref_exprt : public exprt template <> inline bool can_cast_expr(const exprt &base) { - return base.get(ID_class) != ID_nil && base.get(ID_component_name) != ID_nil; + return !base.get(ID_class).empty() && !base.get(ID_component_name).empty(); } #endif // CPROVER_JAVA_BYTECODE_JAVA_BYTECODE_PARSE_TREE_H