Print this page
new smatch

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/validation/bitwise-cast.c
          +++ new/usr/src/tools/smatch/src/validation/bitwise-cast.c
↓ open down ↓ 21 lines elided ↑ open up ↑
  22   22  
  23   23          return 99;
  24   24  }
  25   25  
  26   26  /* Explicit cast of nonzero, bad */
  27   27  static __be32 quux(void)
  28   28  {
  29   29          return (__be32)1729;
  30   30  }
  31   31  
       32 +/* Explicit case of nonzero forced, legal */
       33 +static __be32 quuy(void)
       34 +{
       35 +        return (__attribute__((force)) __be32) 1730;
       36 +}
       37 +
  32   38  /*
  33   39   * check-name: conversions to bitwise types
  34   40   * check-command: sparse -Wbitwise $file
  35   41   * check-error-start
  36   42  bitwise-cast.c:21:20: warning: incorrect type in initializer (different base types)
  37   43  bitwise-cast.c:21:20:    expected restricted __be32 [usertype] x
  38   44  bitwise-cast.c:21:20:    got int
  39   45  bitwise-cast.c:23:16: warning: incorrect type in return expression (different base types)
  40   46  bitwise-cast.c:23:16:    expected restricted __be32
  41   47  bitwise-cast.c:23:16:    got int
  42   48  bitwise-cast.c:29:17: warning: cast to restricted __be32
  43   49   * check-error-end
  44   50   */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX