Why is the compiler removing some of my code?
If optimizations are enabled in the compiler settings, then the compiler may remove certain types of code. This is generally code which the compiler thinks has no impact on the execution or end value of the program. It may include software delays which the compiler thinks is not doing useful work. It may also include vital code related to managing hardware that the compiler also doesn't understand.
- Try disabling optimization to see if the code re-appears, if it does, then that is the cause.
- Using the 'volatile' qualifier with variable definitions tells the compiler not to assume anything about the use of the variable and may avoid optimization for code using it.