aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2008-09-02 16:23:29 +0000
committerSamuel Tardieu <sam@gcc.gnu.org>2008-09-02 16:23:29 +0000
commit57b08d04c67ff8db02f6b95e564432841384661b (patch)
tree99f189fd6d946be4d1a2672501a9fcb381ff46ac /gcc
parent7612f14d074019d388035a3ab6ee509a0acd4e17 (diff)
downloadgcc-57b08d04c67ff8db02f6b95e564432841384661b.zip
gcc-57b08d04c67ff8db02f6b95e564432841384661b.tar.gz
gcc-57b08d04c67ff8db02f6b95e564432841384661b.tar.bz2
re PR target/37283 (Cannot build crtbegin.o for ARM)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/opts.c47
2 files changed, 25 insertions, 28 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a80ef31..d3d0455 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/opts.c b/gcc/opts.c
index 0c0f0a3..9bae6ea 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -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)