diff options
author | janis <janis@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-09-05 17:13:52 +0000 |
---|---|---|
committer | janis <janis@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-09-05 17:13:52 +0000 |
commit | 91bfa5c631a7e3927825bbb0fa0b7a0d3683a589 (patch) | |
tree | 2f14761ac8f7045e029191d17abb04401fb2d3ee /gcc/opts.c | |
parent | 3a4d362a80dfcd16e50ac425037c05e814c2d1f1 (diff) | |
download | gcc-91bfa5c631a7e3927825bbb0fa0b7a0d3683a589.tar.gz |
PR target/37283
* 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
Diffstat (limited to 'gcc/opts.c')
-rw-r--r-- | gcc/opts.c | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/gcc/opts.c b/gcc/opts.c index 9bae6ea8349..080f8afbb18 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -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; } |