aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-common.c
diff options
context:
space:
mode:
authorAndrew Pinski <andrew_pinski@playstation.sony.com>2009-01-05 22:27:48 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2009-01-05 14:27:48 -0800
commite4e5261f2007b11c1136df16fee633caeeb10154 (patch)
tree71687dd989b69df6ba933cc02fd86a6983bf67fe /gcc/c-common.c
parent381009fe75fca1b2c0440e101fa46a2decdbb0fa (diff)
downloadgcc-e4e5261f2007b11c1136df16fee633caeeb10154.zip
gcc-e4e5261f2007b11c1136df16fee633caeeb10154.tar.gz
gcc-e4e5261f2007b11c1136df16fee633caeeb10154.tar.bz2
re PR c/34911 (ICE with vectors of bool)
2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com> PR c/34911 * c-common.c (handle_vector_size_attribute): Also reject BOOLEAN_TYPE types. 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com> PR c/34911 * gcc.dg/vector-3.c: New testcase. * g++.dg/ext/vector15.C: New test. From-SVN: r143099
Diffstat (limited to 'gcc/c-common.c')
-rw-r--r--gcc/c-common.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c
index d08a25b..b94ac1b 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -6544,7 +6544,8 @@ handle_vector_size_attribute (tree *node, tree name, tree args,
|| (!SCALAR_FLOAT_MODE_P (orig_mode)
&& GET_MODE_CLASS (orig_mode) != MODE_INT
&& !ALL_SCALAR_FIXED_POINT_MODE_P (orig_mode))
- || !host_integerp (TYPE_SIZE_UNIT (type), 1))
+ || !host_integerp (TYPE_SIZE_UNIT (type), 1)
+ || TREE_CODE (type) == BOOLEAN_TYPE)
{
error ("invalid vector type for attribute %qE", name);
return NULL_TREE;