summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-10-08 13:57:50 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-10-09 18:24:58 +0200
commitf8620c949b50a824d17d8c7edd4d933cf390b2b4 (patch)
treeee963be2798c77b5a2d61236cc93524eafbe2ae3
parent0c6896f449e857baf10371301fe28dfb125a3208 (diff)
downloadsparse-f8620c949b50a824d17d8c7edd4d933cf390b2b4.tar.gz
builtin: teach sparse about __builtin_ia32_pause()
This builtin is used by Open vSwitch, so teach Sparse about it. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--target-x86.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/target-x86.c b/target-x86.c
index b7ff8f2a..9d82869a 100644
--- a/target-x86.c
+++ b/target-x86.c
@@ -1,6 +1,7 @@
#include "symbol.h"
#include "target.h"
#include "machine.h"
+#include "builtin.h"
static void predefine_i386(const struct target *self)
@@ -39,6 +40,11 @@ static void init_x86_common(const struct target *target)
}
}
+static const struct builtin_fn builtins_x86_common[] = {
+ { "__builtin_ia32_pause", &void_ctype, 0, },
+ { }
+};
+
static void init_i386(const struct target *target)
{
@@ -64,6 +70,7 @@ const struct target target_i386 = {
.init = init_i386,
.predefine = predefine_i386,
+ .builtins = builtins_x86_common,
};
@@ -159,4 +166,5 @@ const struct target target_x86_64 = {
.init = init_x86_64,
.predefine = predefine_x86_64,
+ .builtins = builtins_x86_common,
};