common.opt (fvar-tracking-uninit): Document.
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 12 Nov 2012 22:59:37 +0000 (22:59 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 12 Nov 2012 22:59:37 +0000 (22:59 +0000)
* common.opt (fvar-tracking-uninit): Document.
* toplev.c (process_options): Fix handling of flag_var_tracking_uninit.
* config/darwin.c (darwin_override_options): Likewise.

From-SVN: r193456

gcc/ChangeLog
gcc/common.opt
gcc/config/darwin.c
gcc/toplev.c

index dfea1b6c0382b6b0b9fd7227f3bafd206121ec1b..c1904afeeea1b7fcef16985607893da48f94339a 100644 (file)
@@ -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.
index 6088d1a7fec11a827661a7575003fb552dba7b83..9ad7df98b51ab388d0a856ade303c4d161c3c08e 100644 (file)
@@ -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
index 5a9f50a9fdbf497547ea245cfa582bcd3bcddbf6..e56205b511370a87392d241101223aead74cd274 100644 (file)
@@ -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)
     {
index 8911ca3e24175d635ca739a07aa8f103557faf28..7c0cef58ae3c6430a181a6bfcb4a8afe8889d4ed 100644 (file)
@@ -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);