I've a little problem when I've tried to run my simple code in Frama-c.
I'm trying to create a valid pointer to an array structure and return this pointer from my function Stack_init
. I don't understand why Frama-c returns this error and doesn't prove my function:
[kernel] preprocessing with "gcc -C -E -I. /home/federico/Desktop/simple_main_v2.c"
[kernel] warning: Neither code nor specification for function malloc, generating default assigns from the prototype
[wp] Collecting axiomatic usage
[wp] warning: Missing RTE guards
Desktop/simple_main_v2.c:28:[wp] warning: Cast with incompatible pointers types (source: sint8*) (target: sint32*)
[wp] 0 goal scheduled
My intention is to create a function that returns a pointer, without precondition, where the postcondition is that the pointer is valid.
Can someone help me to understand where my error is?
/*
create_stack
Inputs: none
Outputs: S (a stack)
Preconditions: none
Postconditions: S is defined and empty
*/
/*@
ensures \valid(\result) && \result[0] == 0;
*/
int *Stack_Init()
{
int *stack = malloc (sizeof(int[100]));
stack[0] = 0;
return stack;
}