summaryrefslogtreecommitdiff
path: root/bcc/misc/test/opcmp.t
blob: 28bd1a2e0fd2feae02d34dee2a1c27297afd3765 (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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/* opcmp.t - test logical compare operations */

/* only doing chars, shorts, ints and unsigneds */
/* not doing longs, floats or doubles */

/* short = int, so only a few examples */
/* unsigned like int, so only a few examples */
/* all examples < */

op1()
{
	char c, *pc, **ppc, cfn();
	short s, *ps, **pps, sfn();
	int i, *pi, **ppi, ifn();
	unsigned u, *pu, **ppu, ufn();

	c < 0;
	0 < c;
	i < 0;
	0 < i;

	s < 0;
	0 < s;

	0 < u;
	u < 0;
	1 < u;
	u < 1;

	c < 1;
	1 < c;
	c < 500;
	500 < c;

	c < c;
	c < i;
	i < c;
	i < i;

	s < c;
	i < u;

	c < c++;
	c < i++;
	i < c++;
	i < i++;

	s < i++;
	c < u++;

	c++ < c;
	i++ < c;
	c++ < i;
	i++ < i;

	s++ < c;
	i++ < u;

	c < cfn();
	c < ifn();
	i < cfn();
	i < ifn();

	s < cfn();
	c < ufn();

	cfn() < c;
	ifn() < c;
	cfn() < i;
	ifn() < i;

	sfn() < c;
	ifn() < u;

	*pc < c++;
	*pc < i++;
	*pi < c++;
	*pi < i++;

	*ps < c++;
	*pi < u++;

	c++ < *pc;
	i++ < *pc;
	c++ < *pi;
	i++ < *pi;

	s++ < *pc;
	i++ < *pu;

	**ppc < c++;
	**ppc < i++;
	**ppi < c++;
	**ppi < i++;

	**pps < c++;
	**ppi < u++;

	c++ < **ppc;
	i++ < **ppc;
	c++ < **ppi;
	i++ < **ppi;

	s++ < **ppc;
	i++ < **ppu;
}