From 9a0ff6bb768cb0a6e45c1c75727d1cd8199cb89e Mon Sep 17 00:00:00 2001 From: xleroy Date: Sat, 14 Sep 2013 10:36:25 +0000 Subject: Change the way arguments to __builtin_annot are converted. Use the same conventions as other variadic functions such as printf(). git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2325 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- cfrontend/C2C.ml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'cfrontend') diff --git a/cfrontend/C2C.ml b/cfrontend/C2C.ml index c347aba..20e00c8 100644 --- a/cfrontend/C2C.ml +++ b/cfrontend/C2C.ml @@ -522,7 +522,10 @@ let rec convertExpr env e = | C.ECall({edesc = C.EVar {name = "__builtin_annot"}}, args) -> begin match args with | {edesc = C.EConst(CStr txt)} :: args1 -> - let targs1 = convertTypList env (List.map (fun e -> e.etyp) args1) in + let targs1 = + convertTypList env + (List.map (fun e -> Cutil.default_argument_conversion env e.etyp) + args1) in Ebuiltin( EF_annot(intern_string txt, List.map (fun t -> AA_arg t) (typlist_of_typelist targs1)), @@ -535,7 +538,8 @@ let rec convertExpr env e = | C.ECall({edesc = C.EVar {name = "__builtin_annot_intval"}}, args) -> begin match args with | [ {edesc = C.EConst(CStr txt)}; arg ] -> - let targ = convertTyp env arg.etyp in + let targ = convertTyp env + (Cutil.default_argument_conversion env arg.etyp) in Ebuiltin(EF_annot_val(intern_string txt, typ_of_type targ), Tcons(targ, Tnil), convertExprList env [arg], ty) | _ -> -- cgit v1.2.3