]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/alias.c
PR fortran/95090 - ICE: identifier overflow
[thirdparty/gcc.git] / gcc / alias.c
index d38e386d0e8ce6894c6602cdbc0aafe022c50441..49bd7b37966f1e836b601840328a77cdd4af61f5 100644 (file)
@@ -861,7 +861,7 @@ get_alias_set (tree t)
   alias_set_type set;
 
   /* We cannot give up with -fno-strict-aliasing because we need to build
-     proper type representation for possible functions which are build with
+     proper type representations for possible functions which are built with
      -fstrict-aliasing.  */
 
   /* return 0 if this or its type is an error.  */
@@ -920,9 +920,9 @@ get_alias_set (tree t)
       if (set != -1)
        return set;
       /* Handle structure type equality for pointer types, arrays and vectors.
-        This is easy to do, because the code bellow ignore canonical types on
+        This is easy to do, because the code below ignores canonical types on
         these anyway.  This is important for LTO, where TYPE_CANONICAL for
-        pointers cannot be meaningfuly computed by the frotnend.  */
+        pointers cannot be meaningfully computed by the frontend.  */
       if (canonical_type_used_p (t))
        {
          /* In LTO we set canonical types for all types where it makes
@@ -1031,9 +1031,9 @@ get_alias_set (tree t)
           || TREE_CODE (p) == VECTOR_TYPE;
           p = TREE_TYPE (p))
        {
-         /* Ada supports recusive pointers.  Instead of doing recrusion check
-            just give up once the preallocated space of 8 elements is up.
-            In this case just punt to void * alias set.  */
+         /* Ada supports recursive pointers.  Instead of doing recursion
+            check, just give up once the preallocated space of 8 elements
+            is up.  In this case just punt to void * alias set.  */
          if (reference.length () == 8)
            {
              p = ptr_type_node;
@@ -1048,7 +1048,7 @@ get_alias_set (tree t)
        }
       p = TYPE_MAIN_VARIANT (p);
 
-      /* In LTO for C++ programs we can turn in complete types to complete
+      /* In LTO for C++ programs we can turn incomplete types to complete
         using ODR name lookup.  */
       if (in_lto_p && TYPE_STRUCTURAL_EQUALITY_P (p) && odr_type_p (p))
        {
@@ -2005,6 +2005,9 @@ find_base_term (rtx x, vec<std::pair<cselib_val *,
       if (cselib_sp_based_value_p (val))
        return static_reg_base_value[STACK_POINTER_REGNUM];
 
+      if (visited_vals.length () > (unsigned) param_max_find_base_term_values)
+       return ret;
+
       f = val->locs;
       /* Reset val->locs to avoid infinite recursion.  */
       if (f)