1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
/*
* Sparse used to get this wrong.
*
* When evaluating the argument to the inline function for the array, Sparse
* didn't properly demote the "char []" to a "char *", but instead it would
* follow the dereference and get a "struct hello".
*
* Which made no sense at all.
*/
static inline int deref(const char *s)
{
return *s;
}
struct hello {
char array[10];
};
static int test(struct hello *arg)
{
return deref(arg->array);
}
/*
* check-name: "char []" to "char *" demotion
*/
|