[patch] PR debug/61013: Change -g so that it will override -g1 but not -g3
Cary Coutant
ccoutant@google.com
Wed May 14 21:36:00 GMT 2014
This patch partially reverts a change in how a bare -g option was parsed
in a previous commit. Originally, -g would set the debug level to 2
only if debug was off. The previous commit changed that so that -g
would set the debug level to 2 unconditionally. This patch changes
it so that -g sets the debug level to 2 if it was either off or at
level 1 before.
OK to commit?
-cary
2014-05-14 Cary Coutant <ccoutant@google.com>
gcc/
PR debug/61013
* opts.c (common_handle_option): Don't special-case "-g".
(set_debug_level): Default to at least level 2 with "-g".
Index: gcc/opts.c
===================================================================
--- gcc/opts.c (revision 210437)
+++ gcc/opts.c (working copy)
@@ -1814,13 +1814,8 @@ common_handle_option (struct gcc_options
break;
case OPT_g:
- /* -g by itself should force -g2. */
- if (*arg == '\0')
- set_debug_level (NO_DEBUG, DEFAULT_GDB_EXTENSIONS, "2", opts, opts_set,
- loc);
- else
- set_debug_level (NO_DEBUG, DEFAULT_GDB_EXTENSIONS, arg, opts, opts_set,
- loc);
+ set_debug_level (NO_DEBUG, DEFAULT_GDB_EXTENSIONS, arg, opts, opts_set,
+ loc);
break;
case OPT_gcoff:
@@ -2070,10 +2065,12 @@ set_debug_level (enum debug_info_type ty
opts_set->x_write_symbols = type;
}
- /* A debug flag without a level defaults to level 2. */
+ /* A debug flag without a level defaults to level 2.
+ If off or at level 1, set it to level 2, but if already
+ at level 3, don't lower it. */
if (*arg == '\0')
{
- if (!opts->x_debug_info_level)
+ if (opts->x_debug_info_level < DINFO_LEVEL_NORMAL)
opts->x_debug_info_level = DINFO_LEVEL_NORMAL;
}
else
More information about the Gcc-patches
mailing list