http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47269
--- Comment #4 from Jack Howarth <howarth at nitro dot med.uc.edu> 2011-02-06 02:15:08 UTC --- Mike, I thought it was pretty clear in the man page... -gtoggle Turn off generation of debug info, if leaving out this option would have generated it, or turn it on at level 2 otherwise. The position of this argument in the command line does not matter, it takes effect after all other options are processed, and it does so only once, no matter how many times it is given. This is mainly intended to be used with -fcompare-debug. It inverts whatever the final status of debug code generation was. I think this is why you see it handled in toplev.c... if (flag_gtoggle) { if (debug_info_level == DINFO_LEVEL_NONE) { debug_info_level = DINFO_LEVEL_NORMAL; if (write_symbols == NO_DEBUG) write_symbols = PREFERRED_DEBUGGING_TYPE; } else debug_info_level = DINFO_LEVEL_NONE; } rather than in opts.c.