aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
-rw-r--r--linearize.c7
-rw-r--r--validation/context-unreachable.c1
-rw-r--r--validation/linear/builtin_unreachable0.c1
-rw-r--r--validation/linear/builtin_unreachable1.c1
4 files changed, 7 insertions, 3 deletions
diff --git a/linearize.c b/linearize.c
index bda831ce..b040d345 100644
--- a/linearize.c
+++ b/linearize.c
@@ -2536,12 +2536,19 @@ struct entrypoint *linearize_symbol(struct symbol *sym)
* Builtin functions
*/
+static pseudo_t linearize_unreachable(struct entrypoint *ep, struct expression *exp)
+{
+ add_unreachable(ep);
+ return VOID;
+}
+
static struct sym_init {
const char *name;
pseudo_t (*linearize)(struct entrypoint *, struct expression*);
struct symbol_op op;
} builtins_table[] = {
// must be declared in builtin.c:declare_builtins[]
+ { "__builtin_unreachable", linearize_unreachable },
{ }
};
diff --git a/validation/context-unreachable.c b/validation/context-unreachable.c
index 3e330403..8664962e 100644
--- a/validation/context-unreachable.c
+++ b/validation/context-unreachable.c
@@ -12,5 +12,4 @@ static void foo(void)
/*
* check-name: context-unreachable
- * check-known-to-fail
*/
diff --git a/validation/linear/builtin_unreachable0.c b/validation/linear/builtin_unreachable0.c
index f9703079..911ed7f9 100644
--- a/validation/linear/builtin_unreachable0.c
+++ b/validation/linear/builtin_unreachable0.c
@@ -8,7 +8,6 @@ int foo(int p)
/*
* check-name: builtin_unreachable0
* check-command: test-linearize -Wno-decl $file
- * check-known-to-fail
*
* check-output-start
foo:
diff --git a/validation/linear/builtin_unreachable1.c b/validation/linear/builtin_unreachable1.c
index 4dedfaba..70f6674c 100644
--- a/validation/linear/builtin_unreachable1.c
+++ b/validation/linear/builtin_unreachable1.c
@@ -12,7 +12,6 @@ int foo(int c)
* check-name: builtin_unreachable1
* check-command: test-linearize -Wno-decl $file
*
- * check-known-to-fail
* check-output-start
foo:
.L0: