summaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/bpf/progs/btf_dump_test_case_namespacing.c
blob: 92a4ad428710e71b9ebda616039abe90b2dc9b03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)

/*
 * BTF-to-C dumper test validating no name versioning happens between
 * independent C namespaces (struct/union/enum vs typedef/enum values).
 *
 * Copyright (c) 2019 Facebook
 */
/* ----- START-EXPECTED-OUTPUT ----- */
struct S {
	int S;
	int U;
};

typedef struct S S;

union U {
	int S;
	int U;
};

typedef union U U;

enum E {
	V = 0,
};

typedef enum E E;

struct A {};

union B {};

enum C {
	A = 1,
	B = 2,
	C = 3,
};

struct X {};

union Y {};

enum Z;

typedef int X;

typedef int Y;

typedef int Z;

/*------ END-EXPECTED-OUTPUT ------ */

int 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;
} *_)
{
	return 0;
}