aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-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
+ */