aboutsummaryrefslogtreecommitdiffstats
path: root/cparser
diff options
context:
space:
mode:
Diffstat (limited to 'cparser')
-rw-r--r--cparser/Elab.ml5
-rw-r--r--cparser/Lexer.mll3
-rw-r--r--cparser/Machine.ml7
-rw-r--r--cparser/Machine.mli3
4 files changed, 13 insertions, 5 deletions
diff --git a/cparser/Elab.ml b/cparser/Elab.ml
index e822dfcb..46163104 100644
--- a/cparser/Elab.ml
+++ b/cparser/Elab.ml
@@ -2901,7 +2901,10 @@ let elab_definition (for_loop: bool) (local: bool) (nonstatic_inline: bool)
(* pragma *)
| PRAGMA(s, loc) ->
- emit_elab env loc (Gpragma s);
+ if local then
+ warning loc Unnamed "pragmas are ignored inside functions"
+ else
+ emit_elab env loc (Gpragma s);
([], env)
(* static assertion *)
diff --git a/cparser/Lexer.mll b/cparser/Lexer.mll
index f5e8edb3..d20ac50e 100644
--- a/cparser/Lexer.mll
+++ b/cparser/Lexer.mll
@@ -96,7 +96,8 @@ let () =
(* We can ignore the __extension__ GCC keyword. *)
ignored_keywords := SSet.add "__extension__" !ignored_keywords
-let init_ctx = SSet.singleton "__builtin_va_list"
+let init_ctx = SSet.of_list (List.map fst CBuiltins.builtins.C.builtin_typedefs)
+
let types_context : SSet.t ref = ref init_ctx
let _ =
diff --git a/cparser/Machine.ml b/cparser/Machine.ml
index 73b71ea0..36a6c023 100644
--- a/cparser/Machine.ml
+++ b/cparser/Machine.ml
@@ -183,12 +183,12 @@ let x86_32 =
struct_passing_style = SP_split_args;
struct_return_style = SR_ref}
-let x86_32_macosx =
+let x86_32_macos =
{x86_32 with struct_passing_style = SP_split_args;
struct_return_style = SR_int1248 }
let x86_32_bsd =
- x86_32_macosx
+ x86_32_macos
let x86_64 =
{ i32lpll64 with name = "x86_64"; char_signed = true;
@@ -283,6 +283,9 @@ let aarch64 =
struct_passing_style = SP_ref_callee; (* Wrong *)
struct_return_style = SR_ref } (* Wrong *)
+let aarch64_apple =
+ { aarch64 with char_signed = true }
+
(* Add GCC extensions re: sizeof and alignof *)
let gcc_extensions c =
diff --git a/cparser/Machine.mli b/cparser/Machine.mli
index 54436758..5bf95bb6 100644
--- a/cparser/Machine.mli
+++ b/cparser/Machine.mli
@@ -73,7 +73,7 @@ val ilp32ll64 : t
val i32lpll64 : t
val il32pll64 : t
val x86_32 : t
-val x86_32_macosx : t
+val x86_32_macos : t
val x86_32_bsd : t
val x86_64 : t
val win32 : t
@@ -90,6 +90,7 @@ val rv32 : t
val rv64 : t
val kvx : t
val aarch64 : t
+val aarch64_apple : t
val gcc_extensions : t -> t
val compcert_interpreter : t -> t