aboutsummaryrefslogtreecommitdiffstats
path: root/cparser
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@college-de-france.fr>2021-04-25 13:57:47 +0200
committerXavier Leroy <xavierleroy@users.noreply.github.com>2021-05-02 18:06:32 +0200
commit320c55590cc30d4ef5b2c1a226f0f940a6bdb445 (patch)
treeed6ad57e251e164fec31c57a6f2162daabc8305d /cparser
parent38b0babd5a642cea8912524debc63edc67fda08b (diff)
downloadcompcert-kvx-320c55590cc30d4ef5b2c1a226f0f940a6bdb445.tar.gz
compcert-kvx-320c55590cc30d4ef5b2c1a226f0f940a6bdb445.zip
Support __builtin_unreachable
Not yet used for optimizations.
Diffstat (limited to 'cparser')
-rw-r--r--cparser/Cflow.ml6
1 files changed, 5 insertions, 1 deletions
diff --git a/cparser/Cflow.ml b/cparser/Cflow.ml
index cc257189..8a2a3fe4 100644
--- a/cparser/Cflow.ml
+++ b/cparser/Cflow.ml
@@ -23,8 +23,12 @@ open Cutil
module StringSet = Set.Make(String)
(* Functions declared noreturn by the standard *)
+(* We also add our own "__builtin_unreachable" function because, currently,
+ it is difficult to attach attributes to a built-in function. *)
+
let std_noreturn_functions =
- ["longjmp";"exit";"_exit";"abort";"_Exit";"quick_exit";"thrd_exit"]
+ ["longjmp";"exit";"_exit";"abort";"_Exit";"quick_exit";"thrd_exit";
+ "__builtin_unreachable"]
(* Statements are abstracted as "flow transformers":
functions from possible inputs to possible outcomes.