Is this a BUG? GCC 7/8/9 - compile OK. CLANG 9.0.1 - compile OK.
typedef struct key_val_t{
char key[255];
char val[255];
} key_val_t;
int compare_str(const void* data1, const void* data2)
{
if(!data1 || !data2)
return -2;
const void* val1 = ((key_val_t*) val1)->key; // <------ What's is val1?
const void* val2 = data2;
return strncmp(val1, val2, strlen(val2));
}