Goblint version: nightly sha256 68ef67776c7533bf4e89251efc5855c313dc92d7c257a7f357791595c8a8d7db
When analyzing the following snippet with Goblint in default configuration:
extern int strcmp(const char *, const char *);
static int hello_read(const char *path) {
return strcmp(path, "Hello");
}
static const struct ops {
int (*read)(const char *);
} hello_oper = {
.read = hello_read,
};
extern int main_real(const struct ops *);
int main() {
return main_real(&hello_oper);
}
it fails with
Fatal error: exception Failure("String function: not an address")
where one would expect Function definition missing for .... The issue is configuration-dependent. In particular with conf/svcomp25.json, the error message becomes
Fatal error: exception Invalid_argument("option is None")
Changing strcmp to non-special function or providing a body for main_real mitigates the issue. The issue occurred when trying to analyze libfuse examples.