db/fixup_kernel.sh: fix clear_user() handling
[smatch.git] / validation / bitwise-cast.c
blob0583461cb745493b5cae349c2f971fbdcb53f9d5
1 typedef unsigned int u32;
2 typedef u32 __attribute__((bitwise)) __be32;
4 /* Implicit casts of 0, legal */
5 static __be32 foo(void)
7 __be32 x = 0;
9 return 0;
12 /* Explicit cast of 0, legal */
13 static __be32 bar(void)
15 return (__be32)0;
18 /* Implicit casts of nonzero, bad */
19 static __be32 baz(void)
21 __be32 x = 0x2a;
23 return 99;
26 /* Explicit cast of nonzero, bad */
27 static __be32 quux(void)
29 return (__be32)1729;
32 /* Explicit case of nonzero forced, legal */
33 static __be32 quuy(void)
35 return (__attribute__((force)) __be32) 1730;
39 * check-name: conversions to bitwise types
40 * check-command: sparse -Wbitwise $file
41 * check-error-start
42 bitwise-cast.c:21:20: warning: incorrect type in initializer (different base types)
43 bitwise-cast.c:21:20: expected restricted __be32 [usertype] x
44 bitwise-cast.c:21:20: got int
45 bitwise-cast.c:23:16: warning: incorrect type in return expression (different base types)
46 bitwise-cast.c:23:16: expected restricted __be32
47 bitwise-cast.c:23:16: got int
48 bitwise-cast.c:29:17: warning: cast to restricted __be32
49 * check-error-end