1*1f5207b7SJohn Levon #include "check_debug.h" 2*1f5207b7SJohn Levon 3*1f5207b7SJohn Levon int a, b; 4*1f5207b7SJohn Levon 5*1f5207b7SJohn Levon int frob(void); 6*1f5207b7SJohn Levon test(int size)7*1f5207b7SJohn Levonint test(int size) 8*1f5207b7SJohn Levon { 9*1f5207b7SJohn Levon a = 0; 10*1f5207b7SJohn Levon 11*1f5207b7SJohn Levon if (({switch (frob()) { 12*1f5207b7SJohn Levon case 1: 13*1f5207b7SJohn Levon a = 2; 14*1f5207b7SJohn Levon break; 15*1f5207b7SJohn Levon default: 16*1f5207b7SJohn Levon a = 3; 17*1f5207b7SJohn Levon } 18*1f5207b7SJohn Levon b;})) 19*1f5207b7SJohn Levon ; 20*1f5207b7SJohn Levon __smatch_implied(a); 21*1f5207b7SJohn Levon 22*1f5207b7SJohn Levon a = 4; 23*1f5207b7SJohn Levon 24*1f5207b7SJohn Levon if (({switch (2) { 25*1f5207b7SJohn Levon case 1: 26*1f5207b7SJohn Levon a = 5; 27*1f5207b7SJohn Levon break; 28*1f5207b7SJohn Levon case 2: 29*1f5207b7SJohn Levon a = 6; 30*1f5207b7SJohn Levon break; 31*1f5207b7SJohn Levon default: 32*1f5207b7SJohn Levon a = 7; 33*1f5207b7SJohn Levon } 34*1f5207b7SJohn Levon b;})) 35*1f5207b7SJohn Levon ; 36*1f5207b7SJohn Levon __smatch_implied(a); 37*1f5207b7SJohn Levon 38*1f5207b7SJohn Levon return 0; 39*1f5207b7SJohn Levon } 40*1f5207b7SJohn Levon 41*1f5207b7SJohn Levon /* 42*1f5207b7SJohn Levon * check-name: smatch: switch #3 43*1f5207b7SJohn Levon * check-command: smatch -I.. sm_switch3.c 44*1f5207b7SJohn Levon * 45*1f5207b7SJohn Levon * check-output-start 46*1f5207b7SJohn Levon sm_switch3.c:20 test() implied: a = '2-3' 47*1f5207b7SJohn Levon sm_switch3.c:36 test() implied: a = '6' 48*1f5207b7SJohn Levon * check-output-end 49*1f5207b7SJohn Levon */ 50