summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-12 22:59:37 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-12 22:59:37 +0000
commit3e1cce9389ffe074467f3364e1e5a032e3954127 (patch)
treed3ae766be91adbe5f135e31a725f3fee8fb91bb5
parent4567b72a777e67838b7c5cff26761705d27dcf5c (diff)
downloadgcc-3e1cce9389ffe074467f3364e1e5a032e3954127.tar.gz
* common.opt (fvar-tracking-uninit): Document.
* toplev.c (process_options): Fix handling of flag_var_tracking_uninit. * config/darwin.c (darwin_override_options): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193456 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/common.opt4
-rw-r--r--gcc/config/darwin.c4
-rw-r--r--gcc/toplev.c5
4 files changed, 16 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dfea1b6c038..c1904afeeea 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2012-11-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * common.opt (fvar-tracking-uninit): Document.
+ * toplev.c (process_options): Fix handling of flag_var_tracking_uninit.
+ * config/darwin.c (darwin_override_options): Likewise.
+
2012-11-12 Steven Bosscher <steven@gcc.gnu.org>
* sched-vis.c (print_pattern): Handle NULL patterns.
diff --git a/gcc/common.opt b/gcc/common.opt
index 6088d1a7fec..9ad7df98b51 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -2193,6 +2193,10 @@ fvar-tracking-assignments-toggle
Common Report Var(flag_var_tracking_assignments_toggle) Optimization
Toggle -fvar-tracking-assignments
+; Positive if we should track uninitialized variables, negative if
+; we should run the var-tracking pass only to discard debug
+; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it
+; will be set according to flag_var_tracking.
fvar-tracking-uninit
Common Report Var(flag_var_tracking_uninit) Optimization
Perform variable tracking and also tag variables that are uninitialized
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index 5a9f50a9fdb..e56205b5113 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -3038,12 +3038,12 @@ darwin_override_options (void)
darwin_emit_branch_islands = true;
}
- if (flag_var_tracking
+ if (flag_var_tracking_uninit == 0
&& generating_for_darwin_version >= 9
&& (flag_gtoggle ? (debug_info_level == DINFO_LEVEL_NONE)
: (debug_info_level >= DINFO_LEVEL_NORMAL))
&& write_symbols == DWARF2_DEBUG)
- flag_var_tracking_uninit = 1;
+ flag_var_tracking_uninit = flag_var_tracking;
if (MACHO_DYNAMIC_NO_PIC_P)
{
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 8911ca3e241..7c0cef58ae3 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1421,12 +1421,15 @@ process_options (void)
/* If the user specifically requested variable tracking with tagging
uninitialized variables, we need to turn on variable tracking.
(We already determined above that variable tracking is feasible.) */
- if (flag_var_tracking_uninit)
+ if (flag_var_tracking_uninit == 1)
flag_var_tracking = 1;
if (flag_var_tracking == AUTODETECT_VALUE)
flag_var_tracking = optimize >= 1;
+ if (flag_var_tracking_uninit == AUTODETECT_VALUE)
+ flag_var_tracking_uninit = flag_var_tracking;
+
if (flag_var_tracking_assignments == AUTODETECT_VALUE)
flag_var_tracking_assignments = flag_var_tracking
&& !(flag_selective_scheduling || flag_selective_scheduling2);