From 3b6a054a9a2f54e9c351a4d343331499453c39c5 Mon Sep 17 00:00:00 2001 From: Michael Schmidt Date: Mon, 9 Apr 2018 13:51:43 +0200 Subject: Add diagnostic for illegal use of void (Bug 23342) --- cparser/Elab.ml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cparser/Elab.ml b/cparser/Elab.ml index 66078585..54021ee4 100644 --- a/cparser/Elab.ml +++ b/cparser/Elab.ml @@ -750,6 +750,8 @@ and elab_parameter keep_ty env (PARAM (spec, id, decl, attr, loc)) = if noret then error loc "'_Noreturn' can only appear on functions"; let id = match id with None -> "" | Some id -> id in + if id <> "" && is_void_type env1 ty then + error loc "argument '%s' may not have 'void' type" id; if id <> "" && redef Env.lookup_ident env id then error loc "redefinition of parameter '%s'" id; (* replace array and function types by pointer types *) -- cgit