| /// Unsigned expressions cannot be lesser than zero. Presence of |
| /// comparisons 'unsigned (<|<=) 0' often indicates a bug, |
| /// usually wrong type of variable. |
| /// |
| // Confidence: High |
| // Copyright: (C) 2015 Andrzej Hajda, Samsung Electronics Co., Ltd. GPLv2. |
| // URL: http://coccinelle.lip6.fr/ |
| |
| virtual org |
| virtual report |
| |
| @r_cmp depends on !(file in "ext")@ |
| position p; |
| typedef uint8_t, uint16_t, uint32_t, uint64_t; |
| {unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long, |
| size_t, uint8_t, uint16_t, uint32_t, uint64_t} v; |
| @@ |
| |
| (\( v@p < 0 \| v@p <= 0 \)) |
| |
| @script:python depends on org@ |
| p << r_cmp.p; |
| @@ |
| |
| msg = "WARNING: Unsigned expression compared with zero." |
| coccilib.org.print_todo(p[0], msg) |
| |
| @script:python depends on report@ |
| p << r_cmp.p; |
| @@ |
| |
| msg = "WARNING: Unsigned expression compared with zero." |
| coccilib.report.print_report(p[0], msg) |