new file mode 100644
@@ -0,0 +1,13 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+struct pgm_slist_t
+{
+ struct pgm_slist_t *__restrict next;
+};
+
+void
+fn1 (struct pgm_slist_t p1)
+{
+
+}
@@ -5767,6 +5767,12 @@ check_for_overlaps (vec<fieldoff_s> fieldstack)
return false;
}
+/* Hash set used to register structs traversed in create_variable_info_for_1
+ by following restrict pointers. This is needed to prevent infinite
+ recursion. */
+
+hash_set<tree> *handled_struct_type = NULL;
+
A bitmap indexed by TYPE_UID would be cheaper I guess? Maybe not.
At least a hash_set<unsigned> would be ;)