xref: /illumos-gate/usr/src/tools/smatch/src/validation/optim/kill-casts.c (revision c85f09cc92abd00c84e58ec9f0f5d942906cb713)
1*c85f09ccSJohn Levon extern void __abort(void);
2*c85f09ccSJohn Levon 
3*c85f09ccSJohn Levon struct s {
4*c85f09ccSJohn Levon 	int elem:3;
5*c85f09ccSJohn Levon };
6*c85f09ccSJohn Levon 
7*c85f09ccSJohn Levon void foo(struct s *x);
foo(struct s * x)8*c85f09ccSJohn Levon void foo(struct s *x)
9*c85f09ccSJohn Levon {
10*c85f09ccSJohn Levon 	if (x->elem == 0) {
11*c85f09ccSJohn Levon 		if (x->elem != 0 && x->elem != 1)
12*c85f09ccSJohn Levon 			__abort();
13*c85f09ccSJohn Levon 	}
14*c85f09ccSJohn Levon }
15*c85f09ccSJohn Levon 
16*c85f09ccSJohn Levon /*
17*c85f09ccSJohn Levon  * check-name: kill-casts
18*c85f09ccSJohn Levon  * check-command: test-linearize $file
19*c85f09ccSJohn Levon  *
20*c85f09ccSJohn Levon  * check-output-ignore
21*c85f09ccSJohn Levon  * check-output-excludes: cast\\.
22*c85f09ccSJohn Levon  * check-output-excludes: fcvt[us]\\.
23*c85f09ccSJohn Levon  * check-output-excludes: utptr\\.
24*c85f09ccSJohn Levon  * check-output-excludes: ptrtu\\.
25*c85f09ccSJohn Levon  * check-output-excludes: [sz]ext\\.
26*c85f09ccSJohn Levon  * check-output-excludes: trunc\\.
27*c85f09ccSJohn Levon  */
28