this needs to be a pointer, not a constant. why doesn't GCC tell us?