https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81931

--- Comment #10 from Segher Boessenkool <segher at gcc dot gnu.org> ---
(In reply to Aldy Hernandez from comment #9)
> (In reply to Richard Biener from comment #7)
> Fixes testcase.  Untested otherwise.
> 
> diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c
> index 676c806..04a30b8 100644
> --- a/gcc/tree-ssanames.c
> +++ b/gcc/tree-ssanames.c
> @@ -470,7 +470,7 @@ get_nonzero_bits (const_tree name)
>    if (TREE_CODE (name) == INTEGER_CST)
>      return name;
>  
> -  unsigned int precision = TYPE_PRECISION (TREE_TYPE (name));
> +  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);

Tested on powerpc64-linux {-m32,-m64}; it fixes everything.  Thanks!

Reply via email to