aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssanames.c
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2017-08-24 11:40:55 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2017-08-24 11:40:55 +0000
commite4f22d970ec86797c202c327ff3fffdb56a4b6a3 (patch)
tree3dd30de9e33bcf8e9619f3822cd30027a4a622c7 /gcc/tree-ssanames.c
parentdc0c1e44766b850cf7418badc99a97a044681409 (diff)
downloadgcc-e4f22d970ec86797c202c327ff3fffdb56a4b6a3.zip
gcc-e4f22d970ec86797c202c327ff3fffdb56a4b6a3.tar.gz
gcc-e4f22d970ec86797c202c327ff3fffdb56a4b6a3.tar.bz2
re PR middle-end/81931 (r251260 breaks many tests on powerpc64)
PR middle-end/81931 * tree-ssanames.c (get_nonzero_bits): Use element_precision instead of TYPE_PRECISION. From-SVN: r251328
Diffstat (limited to 'gcc/tree-ssanames.c')
-rw-r--r--gcc/tree-ssanames.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c
index 676c806..e48d086 100644
--- a/gcc/tree-ssanames.c
+++ b/gcc/tree-ssanames.c
@@ -470,7 +470,9 @@ get_nonzero_bits (const_tree name)
if (TREE_CODE (name) == INTEGER_CST)
return name;
- unsigned int precision = TYPE_PRECISION (TREE_TYPE (name));
+ /* Use element_precision instead of TYPE_PRECISION so complex and
+ vector types get a non-zero precision. */
+ unsigned int precision = element_precision (TREE_TYPE (name));
if (POINTER_TYPE_P (TREE_TYPE (name)))
{
struct ptr_info_def *pi = SSA_NAME_PTR_INFO (name);