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 }