From 5d038837ebeab6bf7da664487bfcc372baef5176 Mon Sep 17 00:00:00 2001 From: Luc Van Oostenryck Date: Tue, 11 Aug 2020 00:06:13 +0200 Subject: fix is_scalar_type(): fouled types are scalars too is_scalar_type() accept SYM_RESTRICT but not SYM_FOULED but both are for integer types (and only for them). So, let it accept SYM_FOULED too. Same for is_integral_type(). Signed-off-by: Luc Van Oostenryck --- symbol.h | 2 ++ validation/foul-scalar.c | 13 +++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 validation/foul-scalar.c diff --git a/symbol.h b/symbol.h index 873d69fc..a3ed9567 100644 --- a/symbol.h +++ b/symbol.h @@ -463,6 +463,7 @@ static inline int is_scalar_type(struct symbol *type) case SYM_BITFIELD: case SYM_PTR: case SYM_RESTRICT: // OK, always integer types + case SYM_FOULED: // idem return 1; default: break; @@ -483,6 +484,7 @@ static inline bool is_integral_type(struct symbol *type) case SYM_ENUM: case SYM_PTR: case SYM_RESTRICT: // OK, always integer types + case SYM_FOULED: // idem return 1; default: break; diff --git a/validation/foul-scalar.c b/validation/foul-scalar.c new file mode 100644 index 00000000..8e053b96 --- /dev/null +++ b/validation/foul-scalar.c @@ -0,0 +1,13 @@ +#define __bitwise __attribute__((bitwise)) + +typedef unsigned short __bitwise __be16; + +static void foo(__be16 x) +{ + if (~x) + ; +} + +/* + * check-name: foul-scalar + */ -- cgit 1.2.3-korg