11f5207b7SJohn Levon #include "check_debug.h"
21f5207b7SJohn Levon 
zero(void)31f5207b7SJohn Levon int zero(void)
41f5207b7SJohn Levon {
51f5207b7SJohn Levon 	return 0;
61f5207b7SJohn Levon }
71f5207b7SJohn Levon 
81f5207b7SJohn Levon 
main(unsigned int x,unsigned int y)91f5207b7SJohn Levon int main(unsigned int x, unsigned int y)
101f5207b7SJohn Levon {
111f5207b7SJohn Levon 	if (zero())
121f5207b7SJohn Levon 		__smatch_states("register_impossible_return");
131f5207b7SJohn Levon 	else
141f5207b7SJohn Levon 		__smatch_states("register_impossible_return");
151f5207b7SJohn Levon }
161f5207b7SJohn Levon 
171f5207b7SJohn Levon /*
181f5207b7SJohn Levon  * check-name: smatch impossible #1
191f5207b7SJohn Levon  * check-command: smatch -I.. sm_impossible1.c
201f5207b7SJohn Levon  *
211f5207b7SJohn Levon  * check-output-start
22*6523a3aaSJohn Levon sm_impossible1.c:12 main() [register_impossible_return] impossible = 'impossible'
231f5207b7SJohn Levon sm_impossible1.c:14 main() register_impossible_return: no states
241f5207b7SJohn Levon  * check-output-end
251f5207b7SJohn Levon  */
26