no casting of pointers really works.... unless I enable fpermissive