summaryrefslogtreecommitdiff
path: root/gcc/convert.c
diff options
context:
space:
mode:
authorglisse <glisse@138bc75d-0d04-0410-961f-82ee72b054a4>2013-05-10 11:15:14 +0000
committerglisse <glisse@138bc75d-0d04-0410-961f-82ee72b054a4>2013-05-10 11:15:14 +0000
commit432dd330807c633428562eb7d66ede067fd87262 (patch)
tree28b2392d93f8ced83cd8e4d51d5232f6883088da /gcc/convert.c
parent287e36142a3337a665099426864c94af017a535a (diff)
downloadgcc-432dd330807c633428562eb7d66ede067fd87262.tar.gz
2013-05-10 Marc Glisse <marc.glisse@inria.fr>
gcc/ * stor-layout.c (element_precision): New function. * machmode.h (element_precision): Declare it. * tree.c (build_minus_one_cst): New function. (element_precision): Likewise. * tree.h (build_minus_one_cst): Declare new function. (element_precision): Likewise. * fold-const.c (operand_equal_p): Use element_precision. (fold_binary_loc): Handle vector types. * convert.c (convert_to_integer): Use element_precision. * gimple.c (iterative_hash_canonical_type): Handle complex and vectors separately. gcc/c-family/ * c-common.c (vector_types_convertible_p): No TYPE_PRECISION for vectors. gcc/testsuite/ * gcc.dg/vector-shift.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198772 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/convert.c')
-rw-r--r--gcc/convert.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/convert.c b/gcc/convert.c
index e124e7a7d47..62ff224b566 100644
--- a/gcc/convert.c
+++ b/gcc/convert.c
@@ -355,8 +355,8 @@ convert_to_integer (tree type, tree expr)
{
enum tree_code ex_form = TREE_CODE (expr);
tree intype = TREE_TYPE (expr);
- unsigned int inprec = TYPE_PRECISION (intype);
- unsigned int outprec = TYPE_PRECISION (type);
+ unsigned int inprec = element_precision (intype);
+ unsigned int outprec = element_precision (type);
/* An INTEGER_TYPE cannot be incomplete, but an ENUMERAL_TYPE can
be. Consider `enum E = { a, b = (enum E) 3 };'. */