aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cparser/Elab.ml5
1 files changed, 4 insertions, 1 deletions
diff --git a/cparser/Elab.ml b/cparser/Elab.ml
index 718261b4..8f27b2a0 100644
--- a/cparser/Elab.ml
+++ b/cparser/Elab.ml
@@ -535,8 +535,11 @@ let elab_attribute env = function
(List.flatten
(List.map (elab_gcc_attr loc env) l)))
| PACKED_ATTR (args, loc) ->
- enter_gcc_attr loc
+ begin try
+ enter_gcc_attr loc
(Attr("__packed__", List.map (elab_attr_arg loc env) args))
+ with Wrong_attr_arg -> error loc "ill-formed 'packed' attribute"; []
+ end
| ALIGNAS_ATTR ([a], loc) ->
warning loc Celeven_extension "'_Alignas' is a C11 extension";
begin match elab_attr_arg loc env a with