This is useful information, I don't know why we forgot to add it there.
gcc doesn't like arithemetic on a pointer to a function or void*, so don't
print signedness info there. It doesn't matter anyway.
C says function pointers can be different... Though I guess our code isn't
prepared for that.
DISABLE_WARNING_TYPE_LIMITS;
+#define info_no_sign(t) \
+ printf("%s → %zu bits, %zu byte alignment\n", STRINGIFY(t), \
+ sizeof(t)*CHAR_BIT, \
+ __alignof__(t))
+
#define info(t) \
printf("%s → %zu bits%s, %zu byte alignment\n", STRINGIFY(t), \
sizeof(t)*CHAR_BIT, \
};
int main(void) {
+ int (*function_pointer)(void);
+
+ info_no_sign(function_pointer);
+ info_no_sign(void*);
+ info(char*);
+
info(char);
info(signed char);
info(unsigned char);