summaryrefslogtreecommitdiff
path: root/cfrontend
diff options
context:
space:
mode:
authorGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2013-09-14 10:36:25 +0000
committerGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2013-09-14 10:36:25 +0000
commit9a0ff6bb768cb0a6e45c1c75727d1cd8199cb89e (patch)
tree18a490a5d3573c26d33f1221cb9c771bd290e12c /cfrontend
parent7da3ab1d22658e0328cc26ef595438905e8124d5 (diff)
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
Diffstat (limited to 'cfrontend')
-rw-r--r--cfrontend/C2C.ml8
1 files changed, 6 insertions, 2 deletions
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)
| _ ->