fails with "warning: illegal combination of pointer and integer" at the __builtin_offset

interestingly, if the declaration is "int *bar[]" then it succeeds.. is the field type tainting the result?

Description

So, compiling the following code
struct foo {
int *a;
};
int bar[] = {
__builtin_offsetof(struct foo, a),
};
fails with "warning: illegal combination of pointer and integer" at the __builtin_offset
interestingly, if the declaration is "int *bar[]" then it succeeds.. is the field type tainting the result?