1 #include "check_debug.h"
   2 
   3 void frob();
   4 
   5 int test, test2;
   6 
   7 int x;
   8 void func (void)
   9 {
  10         if (({int test = !!x; frob(); frob(); frob(); test;}))
  11                 __smatch_value("x");
  12         else
  13                 __smatch_value("x");
  14         if (test)
  15                 __smatch_value("x");
  16         if (({test2 = !(x == 3); frob(); frob(); frob(); test2;}))
  17                 __smatch_value("x");
  18         else
  19                 __smatch_value("x");
  20         test = !!(x == 10);
  21         if (!test)
  22                 __smatch_value("x");
  23         __smatch_value("x");
  24 }
  25 /*
  26  * check-name: smatch implied #8
  27  * check-command: smatch -I.. sm_implied8.c
  28  *
  29  * check-output-start
  30 sm_implied8.c:11 func() x = s32min-(-1),1-s32max
  31 sm_implied8.c:13 func() x = 0
  32 sm_implied8.c:15 func() x = s32min-(-1),1-s32max
  33 sm_implied8.c:17 func() x = s32min-2,4-s32max
  34 sm_implied8.c:19 func() x = 3
  35 sm_implied8.c:22 func() x = s32min-9,11-s32max
  36 sm_implied8.c:23 func() x = s32min-s32max
  37  * check-output-end
  38  */