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