Index: toplev.c =================================================================== --- toplev.c (revision 193322) +++ toplev.c (working copy) @@ -1416,12 +1416,15 @@ process_options (void) /* If the user specifically requested variable tracking with tagging uninitialized variables, we need to turn on variable tracking. (We already determined above that variable tracking is feasible.) */ - if (flag_var_tracking_uninit) + if (flag_var_tracking_uninit == 1) flag_var_tracking = 1; if (flag_var_tracking == AUTODETECT_VALUE) flag_var_tracking = optimize >= 1; + if (flag_var_tracking_uninit == AUTODETECT_VALUE) + flag_var_tracking_uninit = flag_var_tracking; + if (flag_var_tracking_assignments == AUTODETECT_VALUE) flag_var_tracking_assignments = flag_var_tracking && !(flag_selective_scheduling || flag_selective_scheduling2); Index: common.opt =================================================================== --- common.opt (revision 193322) +++ common.opt (working copy) @@ -2189,6 +2189,10 @@ fvar-tracking-assignments-toggle Common Report Var(flag_var_tracking_assignments_toggle) Optimization Toggle -fvar-tracking-assignments +; Positive if we should track uninitialized variables, negative if +; we should run the var-tracking pass only to discard debug +; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it +; will be set according to flag_var_tracking. fvar-tracking-uninit Common Report Var(flag_var_tracking_uninit) Optimization Perform variable tracking and also tag variables that are uninitialized Index: config/darwin.c =================================================================== --- config/darwin.c (revision 193322) +++ config/darwin.c (working copy) @@ -3038,12 +3038,12 @@ darwin_override_options (void) darwin_emit_branch_islands = true; } - if (flag_var_tracking + if (flag_var_tracking_uninit == 0 && generating_for_darwin_version >= 9 && (flag_gtoggle ? (debug_info_level == DINFO_LEVEL_NONE) : (debug_info_level >= DINFO_LEVEL_NORMAL)) && write_symbols == DWARF2_DEBUG) - flag_var_tracking_uninit = 1; + flag_var_tracking_uninit = flag_var_tracking; if (MACHO_DYNAMIC_NO_PIC_P) {