aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssanames.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d448aae..a475c84 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-08-24 Aldy Hernandez <aldyh@redhat.com>
+
+ PR middle-end/81931
+ * tree-ssanames.c (get_nonzero_bits): Use element_precision
+ instead of TYPE_PRECISION.
+
2017-08-24 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
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);