compiler flags explanation