diff options
author | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2021-04-25 13:57:47 +0200 |
---|---|---|
committer | Xavier Leroy <xavierleroy@users.noreply.github.com> | 2021-05-02 18:06:32 +0200 |
commit | 320c55590cc30d4ef5b2c1a226f0f940a6bdb445 (patch) | |
tree | ed6ad57e251e164fec31c57a6f2162daabc8305d /cparser | |
parent | 38b0babd5a642cea8912524debc63edc67fda08b (diff) | |
download | compcert-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.ml | 6 |
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. |