aboutsummaryrefslogtreecommitdiff
path: root/gcc/targhooks.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@redhat.com>2016-03-04 22:36:42 -0700
committerJeff Law <law@gcc.gnu.org>2016-03-04 22:36:42 -0700
commitb6b552fd01d723df6a9b71e3b11bff5c8965ea0e (patch)
treebd223937391def1d523dfcc565a4be8ee9bc67d7 /gcc/targhooks.c
parent201d49e91faff2a580e7e3efdf2458e5fe5a5bf9 (diff)
downloadgcc-b6b552fd01d723df6a9b71e3b11bff5c8965ea0e.zip
gcc-b6b552fd01d723df6a9b71e3b11bff5c8965ea0e.tar.gz
gcc-b6b552fd01d723df6a9b71e3b11bff5c8965ea0e.tar.bz2
re PR c/69973 (ICE on excessive attribute vector_size)
PR c/69973 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT. PR c/69973 * gcc.dg/pr69973.c: New test. From-SVN: r234002
Diffstat (limited to 'gcc/targhooks.c')
-rw-r--r--gcc/targhooks.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index 74af91a..a342277 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -1031,7 +1031,10 @@ tree default_mangle_decl_assembler_name (tree decl ATTRIBUTE_UNUSED,
HOST_WIDE_INT
default_vector_alignment (const_tree type)
{
- return tree_to_shwi (TYPE_SIZE (type));
+ HOST_WIDE_INT align = tree_to_shwi (TYPE_SIZE (type));
+ if (align > MAX_OFILE_ALIGNMENT)
+ align = MAX_OFILE_ALIGNMENT;
+ return align;
}
bool