aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-08-12 21:04:03 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-08-12 21:05:50 +0200
commitfc064f991e3936dff22a986c5eec10484e27fa53 (patch)
treef0eedc85511e4f64989e0a46976cad5bd22361b0
parent65ba62230b88bcc2d570418b88f2dc0152822a36 (diff)
parent5d038837ebeab6bf7da664487bfcc372baef5176 (diff)
downloadsparse-fc064f991e3936dff22a986c5eec10484e27fa53.tar.gz
Merge branch 'fix-scalar'
* fouled types are scalars too (fix is_{scalar,integral}_type()
-rw-r--r--symbol.h2
-rw-r--r--validation/foul-scalar.c13
2 files changed, 15 insertions, 0 deletions
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
+ */