From 791971d203068a032477c7627cc97c06fac95da2 Mon Sep 17 00:00:00 2001 From: Bernhard Schommer Date: Thu, 18 Oct 2018 16:49:34 +0200 Subject: Catch exception from elab_attr_arg. Catch the exception from a non constant argument of a packed attribute and print an error. Bug 24748 --- cparser/Elab.ml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'cparser/Elab.ml') 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 -- cgit