udem-dlteam/pnut

:barf array of struct and struct value type are not supported in shell backend. Use a reference type instead.

Closed this issue · 1 comments

/*
Function computing the sum of an array
/
struct foo
{
int a;
int b;
}barf;
int sum(int
a, struct foo
) {
int i, sum = 0;
for (i = 0; i < foo.a; i += 1) {
*b += a[i];
}
return *b;
}

:barf array of struct and struct value type are not supported in shell backend. Use a reference type instead.

maybe should mention that in your caveats too, whats a reference type?

The shell backend does not support using structs directly, either as a function parameter or as a local variable. This is documented in the Known Issues section of the README.

Aggregate types (arrays and structures) cannot be stack-allocated, passed by value or nested in a structure.

In your example, the sum function could take a pointer to a foo structure and it should work.