diff options
author | Martin Liska <mliska@suse.cz> | 2018-02-20 11:04:13 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2018-02-20 10:04:13 +0000 |
commit | 5bbccd92506c4d260eca29d12fa30c75aaaee65b (patch) | |
tree | e8b704768df9cda9cb173b4b741372e31194f039 /gcc/final.c | |
parent | 0b2513e292a70d715affbe4a9b5af6672fcf99b3 (diff) | |
download | gcc-5bbccd92506c4d260eca29d12fa30c75aaaee65b.zip gcc-5bbccd92506c4d260eca29d12fa30c75aaaee65b.tar.gz gcc-5bbccd92506c4d260eca29d12fa30c75aaaee65b.tar.bz2 |
Add limit for maximal alignment options (PR c/84310).
2018-02-20 Martin Liska <mliska@suse.cz>
PR c/84310
PR target/79747
* final.c (shorten_branches): Build align_tab array with one
more element.
* opts.c (finish_options): Add alignment option limit check.
(MAX_CODE_ALIGN): Likewise.
(MAX_CODE_ALIGN_VALUE): Likewise.
* doc/invoke.texi: Document maximum allowed option value for
all -falign-* options.
2018-02-20 Martin Liska <mliska@suse.cz>
PR c/84310
PR target/79747
* gcc.target/i386/pr84310.c: New test.
* gcc.target/i386/pr84310-2.c: Likewise.
From-SVN: r257842
Diffstat (limited to 'gcc/final.c')
-rw-r--r-- | gcc/final.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/final.c b/gcc/final.c index 78a7503..d2c3cd8 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -911,7 +911,7 @@ shorten_branches (rtx_insn *first) char *varying_length; rtx body; int uid; - rtx align_tab[MAX_CODE_ALIGN]; + rtx align_tab[MAX_CODE_ALIGN + 1]; /* Compute maximum UID and allocate label_align / uid_shuid. */ max_uid = get_max_uid (); @@ -1016,7 +1016,7 @@ shorten_branches (rtx_insn *first) alignment of n. */ uid_align = XCNEWVEC (rtx, max_uid); - for (i = MAX_CODE_ALIGN; --i >= 0;) + for (i = MAX_CODE_ALIGN + 1; --i >= 0;) align_tab[i] = NULL_RTX; seq = get_last_insn (); for (; seq; seq = PREV_INSN (seq)) |