Skip to content

UTBot generate incorrect stubs name for function pointer [BUG] #406

Closed
@ladisgin

Description

@ladisgin

Description
UTBot generate incorrect stubs name for pointer to function inside subclass/subunion
For file:

#include <stddef.h>

struct obstack
{
  int s;
  struct ff {
    void *(*plain) (size_t);
    void *(*extra) (void *, size_t);
  } chunkfun;
};


int foo(struct obstack ob){
    return ob.s;
}

int main(void) {
    return 0;
}

UTBot generate build/main_klee_temp.c which contains:

static void * obstack::ff_extra_stub(void * param1, size_t param2) {
    return NULL;
}

static void * obstack::ff_plain_stub(size_t param1) {
    return NULL;
}

int klee_entry__main_foo__wrapped(int utbot_argc, char ** utbot_argv, char ** utbot_envp) {
    struct obstack ob;
    klee_make_symbolic(&ob, sizeof(ob), "ob");
    klee_prefer_cex(&ob, ob.s >= -10  & ob.s <= 10);
    ob.chunkfun.plain = *obstack::ff_plain_stub;
    ob.chunkfun.extra = *obstack::ff_extra_stub;
    //////////////////////////////////////////// 
    int utbot_result;
    klee_make_symbolic(&utbot_result, sizeof(utbot_result), "utbot_result");
    int utbot_tmp = foo(ob);
    klee_assume(utbot_tmp == utbot_result);
    return 0;
}

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingc-syntaxRelated to generation tests for C

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions