]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/37283 (Cannot build crtbegin.o for ARM)
authorSamuel Tardieu <sam@rfc1149.net>
Tue, 2 Sep 2008 16:23:29 +0000 (16:23 +0000)
committerSamuel Tardieu <sam@gcc.gnu.org>
Tue, 2 Sep 2008 16:23:29 +0000 (16:23 +0000)
    gcc/
PR target/37283
* opts.c (decode_options): Move processing of -fno-unit-at-a-time
and -fno-toplevel-reorder after handle_options.

From-SVN: r139892

gcc/ChangeLog
gcc/opts.c

index a80ef311cceefa0ceaef5c310daaf5920c89bf63..d3d045586ac798044a38d7d51fa0db1034d2108d 100644 (file)
@@ -1,3 +1,9 @@
+2008-09-02  Samuel Tardieu  <sam@rfc1149.net>
+
+       PR target/37283
+       * opts.c (decode_options): Move processing of -fno-unit-at-a-time
+       and -fno-toplevel-reorder after handle_options.
+
 2008-09-02  Paul Brook  <paul@codesourcery.com>
 
        * config/arm/arm.c (arm_tune_cortex_a9): Define.
index 0c0f0a3152bff7861a8b31ceb7152383441f1076..9bae6ea834904b9bbf6fcf8407f8d91994edbaf1 100644 (file)
@@ -870,39 +870,11 @@ decode_options (unsigned int argc, const char **argv)
        }
     }
   
-  if (!flag_unit_at_a_time)
-    {
-      flag_section_anchors = 0;
-      flag_toplevel_reorder = 0;
-    }
-  if (!flag_toplevel_reorder)
-    {
-      if (flag_section_anchors == 1)
-        error ("Section anchors must be disabled when toplevel reorder is disabled.");
-      flag_section_anchors = 0;
-    }
-
 #ifdef IRA_COVER_CLASSES
   /* Use IRA if it is implemented for the target.  */
   flag_ira = 1;
 #endif
 
-  /* Originally we just set the variables if a particular optimization level,
-     but with the advent of being able to change the optimization level for a
-     function, we need to reset optimizations.  */
-  if (!optimize)
-    {
-      flag_merge_constants = 0;
-
-      /* 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.  */
-      if (flag_toplevel_reorder == 2)
-        flag_toplevel_reorder = 0;
-    }
-  else
-    flag_merge_constants = 1;
-
   /* -O1 optimizations.  */
   opt1 = (optimize >= 1);
   flag_defer_pop = opt1;
@@ -918,6 +890,7 @@ decode_options (unsigned int argc, const char **argv)
   flag_if_conversion2 = opt1;
   flag_ipa_pure_const = opt1;
   flag_ipa_reference = opt1;
+  flag_merge_constants = opt1;
   flag_split_wide_types = opt1;
   flag_tree_ccp = opt1;
   flag_tree_dce = opt1;
@@ -1035,6 +1008,24 @@ decode_options (unsigned int argc, const char **argv)
 
   handle_options (argc, argv, lang_mask);
 
+  /* -fno-unit-at-a-time and -fno-toplevel-reorder handling.  */
+  if (!flag_unit_at_a_time)
+    {
+      flag_section_anchors = 0;
+      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 (flag_section_anchors == 1)
+        error ("section anchors must be disabled when toplevel reorder is disabled");
+      flag_section_anchors = 0;
+    }
+
   if (first_time_p)
     {
       if (flag_pie)