Current code has some syntax tricks which have issue with C standard compliance. Please fix it. It's hard to merge all changes when this fix is not applied. Thanks.
The main issues are following:
1) implicit cast from void(*)() to void*
Proposed solutions:
explicit cast
use unnamed union to store void pointer or function pointer at the same memory, but with different field name
2) struct field initializers are not compatible with C standard
Proposed solution: use C standard struct field initializers:
Current code has some syntax tricks which have issue with C standard compliance. Please fix it. It's hard to merge all changes when this fix is not applied. Thanks.
The main issues are following:
1) implicit cast from
void(*)()
tovoid*
Proposed solutions:2) struct field initializers are not compatible with C standard Proposed solution: use C standard struct field initializers:
3) Binary constants are not supported in C standard. Proposed solutions:
#define b10001010 0x8A
fix is already done in the following two changesets: