@@ -1686,8 +1686,11 @@ tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
data->anon_field = !DECL_NAME (s1);
data->pointedto = false;
+ const struct tagged_tu_seen_cache *cache = data->cache;
data->cache = &entry;
- if (!comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2), data))
+ bool ret = comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2), data);
+ data->cache = cache;
+ if (!ret)
return false;
tree st1 = TYPE_SIZE (TREE_TYPE (s1));
new file mode 100644
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-std=c23" } */
+
+struct s1 {
+ int f1;
+};
+struct s2 {
+ int f2;
+};
+struct s1 f(struct s2 *);
+
+struct s1 {
+ int f1;
+};
+struct s2 {
+ int f2;
+};
+struct s1 f(struct s2 *);