Warning flags are processed individually; PUSHO and POPO (re)store all the warning states.
-L is a Boolean flag option, so you specify 'OPT L' or 'OPT !L'.
Simplify the mess that was option setting (2 redundant variables !?) Move options to a separate file Have "modules" own their options, and OPT only access them (less redundancy) Simplify code, respect naming conventions better