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        }

Reply via email to