I have a simple RTOS that loads a few function pointers from FLASH and then runs them when needed. The problem is that using the previous WinAVR release I could compile the code using the -Os option. With the new WinAVR release, using the -Os option results in the code that's loaded into the FLASH table as well as any corresponding functions, being removed.
If I take a look at the .lst file for the module after being compiled, there's no code in it. I would have thought that the compiler would have still compiled the module, generated code and that the linker would have left it out as it didn't appear to the linker that the code was being called directly.
How can I prevent this problem and why does the .lst file not contain anything?