https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102766
--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> --- ... However, there is no effect when using -f(no-)var-tracking(-uninit), it has still an ICE in all cases. (Well, except that -fvar-tracking-uninit shows the following before the ICE: cc1: error: variable tracking requested, but not supported by this debug format [-Werror]) * * * And I observe that the following option is now set: 1511 if (!OPTION_SET_P (flag_var_tracking_uninit)) 1512 flag_var_tracking_uninit = flag_var_tracking; While the code before is entered and explicitly sets it to 0: (gdb) p debug_hooks->var_location == do_nothing_debug_hooks.var_location $5 = true 1481 /* We know which debug output will be used so we can set flag_var_tracking 1482 and flag_var_tracking_uninit if the user has not specified them. */ 1483 if (debug_info_level < DINFO_LEVEL_NORMAL 1484 || !dwarf_debuginfo_p () 1485 || debug_hooks->var_location == do_nothing_debug_hooks.var_location) 1486 { 1487 if ((OPTION_SET_P (flag_var_tracking) && flag_var_tracking == 1) 1488 || (OPTION_SET_P (flag_var_tracking_uninit) 1489 && flag_var_tracking_uninit == 1)) 1490 { 1491 if (debug_info_level < DINFO_LEVEL_NORMAL) 1492 warning_at (UNKNOWN_LOCATION, 0, 1493 "variable tracking requested, but useless unless " 1494 "producing debug info"); 1495 else 1496 warning_at (UNKNOWN_LOCATION, 0, 1497 "variable tracking requested, but not supported " 1498 "by this debug format"); 1499 } 1500 flag_var_tracking = 0; 1501 flag_var_tracking_uninit = 0; 1502 }