Three compiler issues

1. For loops allow delaration of loop control variable in for statement.
2. gcc doesn't allow indexing in void * like clang.
3. more play with macros.