5.7.7.1 O0: Level 0 Optimizations

The -O0 option performs only rudimentary optimization. This is the default optimization level if no -O option is specified.

With this optimization level selected, the compiler’s goal is to reduce the cost of compilation and to make debugging produce the expected results.

Statements are independent when compiling with this optimization level. If you stop the program with a breakpoint between statements, you can then assign a new value to any variable or change the program counter to any other statement in the function and get exactly the results you would expect from the source code.

The compiler only allocates variables declared register in registers.