1*c85f09ccSJohn Levon struct s {
2*c85f09ccSJohn Levon 	volatile int a;
3*c85f09ccSJohn Levon };
4*c85f09ccSJohn Levon 
5*c85f09ccSJohn Levon struct s s;
6*c85f09ccSJohn Levon 
foo(void)7*c85f09ccSJohn Levon void foo(void)
8*c85f09ccSJohn Levon {
9*c85f09ccSJohn Levon 	s;
10*c85f09ccSJohn Levon 	s.a;
11*c85f09ccSJohn Levon }
12*c85f09ccSJohn Levon 
13*c85f09ccSJohn Levon /*
14*c85f09ccSJohn Levon  * check-name: load-semi-volatile
15*c85f09ccSJohn Levon  * check-command: test-linearize -Wno-decl $file
16*c85f09ccSJohn Levon  *
17*c85f09ccSJohn Levon  * check-output-ignore
18*c85f09ccSJohn Levon  * check-output-pattern(1): load
19*c85f09ccSJohn Levon  *
20*c85f09ccSJohn Levon  * check-description:
21*c85f09ccSJohn Levon  *	The load at line 9 must be removed.
22*c85f09ccSJohn Levon  *	The load at line 10 is volatile and thus
23*c85f09ccSJohn Levon  *	must not be removed.
24*c85f09ccSJohn Levon  */
25