OSDN Git Service

PR target/37283
authorjanis <janis@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Sep 2008 17:13:52 +0000 (17:13 +0000)
committerjanis <janis@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Sep 2008 17:13:52 +0000 (17:13 +0000)
* opts.c (decode_options): Handle more relationships among
unit-at-a-time, toplevel-reorder, and section-anchors.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140040 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/opts.c

index 60c89af..053b508 100644 (file)
@@ -1,3 +1,10 @@
+2008-09-05  Janis Johnson  <janis187@us.ibm.com>
+           Samuel Tardieu  <sam@rfc1149.net>
+
+       PR target/37283
+       * opts.c (decode_options): Handle more relationships among
+       unit-at-a-time, toplevel-reorder, and section-anchors.
+
 2008-09-05  David Daney  <ddaney@avtrex.com>
 
        * doc/install.texi (--enable-reduced-reflection): Document new option.
index 9bae6ea..080f8af 100644 (file)
@@ -1008,21 +1008,35 @@ decode_options (unsigned int argc, const char **argv)
 
   handle_options (argc, argv, lang_mask);
 
-  /* -fno-unit-at-a-time and -fno-toplevel-reorder handling.  */
+  /* Handle related options for unit-at-a-time, toplevel-reorder, and
+     section-anchors.  */
   if (!flag_unit_at_a_time)
     {
+      if (flag_section_anchors == 1)
+       error ("Section anchors must be disabled when unit-at-a-time "
+              "is disabled.");
       flag_section_anchors = 0;
+      if (flag_toplevel_reorder == 1)
+       error ("Toplevel reorder must be disabled when unit-at-a-time "
+              "is disabled.");
       flag_toplevel_reorder = 0;
     }
-  else if (!optimize && flag_toplevel_reorder == 2)
-    /* We disable toplevel reordering at -O0 to disable transformations that
-       might be surprising to end users and to get -fno-toplevel-reorder
-       tested, but we keep section anchors.  */
-    flag_toplevel_reorder = 0;
-  else if (!flag_toplevel_reorder)
+  if (!optimize)
+    {
+      /* Unless the user has asked for section anchors, we disable toplevel
+        reordering at -O0 to disable transformations that might be surprising
+        to end users and to get -fno-toplevel-reorder tested.  */
+      if (flag_toplevel_reorder == 2 && flag_section_anchors != 1)
+       {
+         flag_toplevel_reorder = 0;
+         flag_section_anchors = 0;
+       }
+    }
+  if (!flag_toplevel_reorder)
     {
       if (flag_section_anchors == 1)
-        error ("section anchors must be disabled when toplevel reorder is disabled");
+       error ("section anchors must be disabled when toplevel reorder"
+              " is disabled");
       flag_section_anchors = 0;
     }