1 // SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
2 
3 /*
4  * BTF-to-C dumper test validating no name versioning happens between
5  * independent C namespaces (struct/union/enum vs typedef/enum values).
6  *
7  * Copyright (c) 2019 Facebook
8  */
9 /* ----- START-EXPECTED-OUTPUT ----- */
10 struct S {
11 	int S;
12 	int U;
13 };
14 
15 typedef struct S S;
16 
17 union U {
18 	int S;
19 	int U;
20 };
21 
22 typedef union U U;
23 
24 enum E {
25 	V = 0,
26 };
27 
28 typedef enum E E;
29 
30 struct A {};
31 
32 union B {};
33 
34 enum C {
35 	A = 1,
36 	B = 2,
37 	C = 3,
38 };
39 
40 struct X {};
41 
42 union Y {};
43 
44 enum Z;
45 
46 typedef int X;
47 
48 typedef int Y;
49 
50 typedef int Z;
51 
52 /*------ END-EXPECTED-OUTPUT ------ */
53 
f(struct{ struct S _1; S _2; union U _3; U _4; enum E _5; E _6; struct A a; union B b; enum C c; struct X x; union Y y; enum Z *z; X xx; Y yy; Z zz; } * _)54 int f(struct {
55 	struct S _1;
56 	S _2;
57 	union U _3;
58 	U _4;
59 	enum E _5;
60 	E _6;
61 	struct A a;
62 	union B b;
63 	enum C c;
64 	struct X x;
65 	union Y y;
66 	enum Z *z;
67 	X xx;
68 	Y yy;
69 	Z zz;
70 } *_)
71 {
72 	return 0;
73 }
74