aboutsummaryrefslogtreecommitdiff
path: root/gcc/final.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2018-02-20 11:04:13 +0100
committerMartin Liska <marxin@gcc.gnu.org>2018-02-20 10:04:13 +0000
commit5bbccd92506c4d260eca29d12fa30c75aaaee65b (patch)
treee8b704768df9cda9cb173b4b741372e31194f039 /gcc/final.c
parent0b2513e292a70d715affbe4a9b5af6672fcf99b3 (diff)
downloadgcc-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.c4
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))