1// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
2
3/*
4 * BTF-to-C dumper test for topological sorting of dependent structs.
5 *
6 * Copyright (c) 2019 Facebook
7 */
8/* ----- START-EXPECTED-OUTPUT ----- */
9struct s1 {};
10
11struct s3;
12
13struct s4;
14
15struct s2 {
16	struct s2 *s2;
17	struct s3 *s3;
18	struct s4 *s4;
19};
20
21struct s3 {
22	struct s1 s1;
23	struct s2 s2;
24};
25
26struct s4 {
27	struct s1 s1;
28	struct s3 s3;
29};
30
31struct list_head {
32	struct list_head *next;
33	struct list_head *prev;
34};
35
36struct hlist_node {
37	struct hlist_node *next;
38	struct hlist_node **pprev;
39};
40
41struct hlist_head {
42	struct hlist_node *first;
43};
44
45struct callback_head {
46	struct callback_head *next;
47	void (*func)(struct callback_head *);
48};
49
50struct root_struct {
51	struct s4 s4;
52	struct list_head l;
53	struct hlist_node n;
54	struct hlist_head h;
55	struct callback_head cb;
56};
57
58/*------ END-EXPECTED-OUTPUT ------ */
59
60int f(struct root_struct *root)
61{
62	return 0;
63}
64