You can see the full list of compiler options in the gcc manpage
It's not unusual for some experimental options to generate code that won't run, but the compile will usually succeed.
When a kernel module fails to compile, the first thing to try is re-issuing the make command. If that works, then you probably have a fault in your RAM or cache memory (which caused the original build to fail). This is because gcc uses lots of pointers internally, and so is very prone to fail if even one bit gets flipped.
If you still have problems compiling a module, then make sure that you ran make mrproper
before compiling, otherwise please post specific details of the problem in a new thread.