11f5207b7SJohn Levon #include "check_debug.h" 21f5207b7SJohn Levon frob(void)31f5207b7SJohn Levonvoid frob(void){} 41f5207b7SJohn Levon 51f5207b7SJohn Levon int x[10]; 61f5207b7SJohn Levon int offset; func(int * y)71f5207b7SJohn Levonvoid func(int *y) 81f5207b7SJohn Levon { 91f5207b7SJohn Levon if (({int test2 = !!(!y || !*y); frob(); frob(); frob(); test2;})) 101f5207b7SJohn Levon __smatch_value("y"); 111f5207b7SJohn Levon else 121f5207b7SJohn Levon __smatch_value("y"); 131f5207b7SJohn Levon 14*efe51d0cSJohn Levon if (({int test2 = !!(offset >= 10u || x[offset] == 1); frob(); frob(); frob(); test2;})) 151f5207b7SJohn Levon __smatch_value("offset"); 161f5207b7SJohn Levon else 171f5207b7SJohn Levon __smatch_value("offset"); 181f5207b7SJohn Levon 191f5207b7SJohn Levon } 201f5207b7SJohn Levon /* 211f5207b7SJohn Levon * check-name: smatch implied #10 221f5207b7SJohn Levon * check-command: smatch -I.. -m64 sm_implied10.c 231f5207b7SJohn Levon * 241f5207b7SJohn Levon * check-output-start 25*efe51d0cSJohn Levon sm_implied10.c:10 func() y = 0,4096-ptr_max 26*efe51d0cSJohn Levon sm_implied10.c:12 func() y = 4096-ptr_max 27*efe51d0cSJohn Levon sm_implied10.c:15 func() offset = s32min-s32max 281f5207b7SJohn Levon sm_implied10.c:17 func() offset = 0-9 291f5207b7SJohn Levon * check-output-end 301f5207b7SJohn Levon */ 31