Print this page
new smatch

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/validation/typeof-mods.c
          +++ new/usr/src/tools/smatch/src/validation/typeof-mods.c
↓ open down ↓ 35 lines elided ↑ open up ↑
  36   36          typeof(ptr) ptr2 = ptr;
  37   37          typeof(*ptr) var2 = obj;
  38   38          typeof(*ptr) *ptr3 = ptr;
  39   39          typeof(obj) *ptr4 = ptr;
  40   40          obj = obj;
  41   41          ptr = ptr;
  42   42          ptr = &obj;
  43   43          obj = *ptr;
  44   44  }
  45   45  
       46 +static void test_restrict(void)
       47 +{
       48 +        int *restrict obj, *restrict *ptr;
       49 +        typeof(obj) var = obj;
       50 +        typeof(ptr) ptr2 = ptr;
       51 +        typeof(*ptr) var2 = obj;
       52 +        typeof(*ptr) *ptr3 = ptr;
       53 +        typeof(obj) *ptr4 = ptr;
       54 +        obj = obj;
       55 +        ptr = ptr;
       56 +        ptr = &obj;
       57 +        obj = *ptr;
       58 +}
       59 +
       60 +static void test_atomic(void)
       61 +{
       62 +        int _Atomic obj, *ptr;
       63 +        typeof(obj) var = obj;
       64 +        typeof(ptr) ptr2 = ptr;
       65 +        typeof(*ptr) var2 = obj;
       66 +        typeof(*ptr) *ptr3 = ptr;
       67 +        typeof(obj) *ptr4 = ptr;
       68 +        obj = obj;
       69 +        ptr = ptr;
       70 +        ptr = &obj;
       71 +        obj = *ptr;
       72 +}
       73 +
  46   74  static void test_bitwise(void)
  47   75  {
  48   76          typedef int __bitwise type_t;
  49   77          type_t obj, *ptr;
  50   78          typeof(obj) var = obj;
  51   79          typeof(ptr) ptr2 = ptr;
  52   80          typeof(*ptr) var2 = obj;
  53   81          typeof(*ptr) *ptr3 = ptr;
  54   82          typeof(obj) *ptr4 = ptr;
  55   83          obj = obj;
↓ open down ↓ 53 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX