aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2014-05-14 21:48:47 +0000
committerCary Coutant <ccoutant@gcc.gnu.org>2014-05-14 14:48:47 -0700
commitbc91b0e0869c090d093ade248feaae54ca45550d (patch)
tree85d6b02ec6b3b63f2df6520db9aa013275cfc641
parent5f35dde552bfb56e7517e4e0fd0b90acad08347a (diff)
downloadgcc-bc91b0e0869c090d093ade248feaae54ca45550d.zip
gcc-bc91b0e0869c090d093ade248feaae54ca45550d.tar.gz
gcc-bc91b0e0869c090d093ade248feaae54ca45550d.tar.bz2
Change -g so that it will override -g1 but not -g3.
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". From-SVN: r210442
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/opts.c15
2 files changed, 12 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 228f0e9..85a8cd4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-05-14 Cary Coutant <ccoutant@google.com>
+
+ PR debug/61013
+ * opts.c (common_handle_option): Don't special-case "-g".
+ (set_debug_level): Default to at least level 2 with "-g".
+
2014-05-14 DJ Delorie <dj@redhat.com>
* config/msp430/msp430.c (msp430_builtin): Add
diff --git a/gcc/opts.c b/gcc/opts.c
index 269cd93..5f4b2e3 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -1814,13 +1814,8 @@ common_handle_option (struct gcc_options *opts,
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 type, int extended, const char *arg,
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