aboutsummaryrefslogtreecommitdiff
path: root/gcc
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
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')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/targhooks.c5
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gcc.dg/pr69973.c2
4 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d5fd0d3..7d2034b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
+ PR c/69973
+ * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
+
PR rtl-optimization/69941
* postreload.c (reload_combine_recognize_pattern): Ensure all uses of
the reg share its mode.
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
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d412efd..683585c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
+ PR c/69973
+ * gcc.dg/pr69973.c: New test.
+
PR rtl-optimization/69941
* gcc.dg/torture/pr69941.c: New test.
diff --git a/gcc/testsuite/gcc.dg/pr69973.c b/gcc/testsuite/gcc.dg/pr69973.c
new file mode 100644
index 0000000..648bc56
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr69973.c
@@ -0,0 +1,2 @@
+/* { dg-do compile } */
+typedef int v4si __attribute__ ((vector_size (1 << 29)));