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

--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
The following should fix it.

diff --git a/gcc/builtins.c b/gcc/builtins.c
index 20515e7..08bf148 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -3025,7 +3025,8 @@ get_size_range (tree exp, tree range[2])
       return true;
     }

-  if (TREE_CODE (exp) == SSA_NAME)
+  tree type = TREE_TYPE (exp);
+  if (TREE_CODE (exp) == SSA_NAME && INTEGRAL_TYPE_P (type))
     {
       wide_int min, max;
       enum value_range_type range_type = get_range_info (exp, &min, &max);
@@ -3033,8 +3034,8 @@ get_size_range (tree exp, tree range[2])
       if (range_type == VR_RANGE)
    {
      /* Interpret the bound in the variable's type.  */
-     range[0] = wide_int_to_tree (TREE_TYPE (exp), min);
-     range[1] = wide_int_to_tree (TREE_TYPE (exp), max);
+     range[0] = wide_int_to_tree (type, min);
+     range[1] = wide_int_to_tree (type, max);
      return true;
    }
       else if (range_type == VR_ANTI_RANGE)

Reply via email to