11f5207b7SJohn Levon #include "check_debug.h" 21f5207b7SJohn Levon 31f5207b7SJohn Levon struct foo { 41f5207b7SJohn Levon int x; 51f5207b7SJohn Levon }; 61f5207b7SJohn Levon 71f5207b7SJohn Levon void *frob(); 81f5207b7SJohn Levon 91f5207b7SJohn Levon struct foo *foo; 101f5207b7SJohn Levon 111f5207b7SJohn Levon int x; 121f5207b7SJohn Levon ad_agg_selection_logic(void)131f5207b7SJohn Levonstatic void ad_agg_selection_logic(void) 141f5207b7SJohn Levon { 151f5207b7SJohn Levon int a; 161f5207b7SJohn Levon 171f5207b7SJohn Levon 181f5207b7SJohn Levon if (x) { 191f5207b7SJohn Levon if (foo && foo->x) 201f5207b7SJohn Levon a = 1; 211f5207b7SJohn Levon else 221f5207b7SJohn Levon a = 0; 231f5207b7SJohn Levon 241f5207b7SJohn Levon if (frob()) 251f5207b7SJohn Levon a = frob(); 261f5207b7SJohn Levon 271f5207b7SJohn Levon if (a) 281f5207b7SJohn Levon __smatch_implied(foo); 291f5207b7SJohn Levon } 301f5207b7SJohn Levon } 311f5207b7SJohn Levon /* 321f5207b7SJohn Levon * check-name: smatch implied #12 331f5207b7SJohn Levon * check-command: smatch -I.. -m64 sm_implied12.c 341f5207b7SJohn Levon * 351f5207b7SJohn Levon * check-output-start 36*efe51d0cSJohn Levon sm_implied12.c:28 ad_agg_selection_logic() implied: foo = '0,4096-ptr_max' 371f5207b7SJohn Levon * check-output-end 381f5207b7SJohn Levon */ 39