Dealing with the incomplete type error of GCC