aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Schmidt <github@mschmidt.me>2023-01-13 12:27:36 +0100
committerXavier Leroy <xavier.leroy@college-de-france.fr>2023-01-23 18:18:21 +0100
commit856da72d4190b42a012043a745dddc07a36c60c0 (patch)
tree91bf461b1429108de05663cf3cdcca7afad58c28
parent3ebc2e9bd947aa213f2bc5eaf19fe9ffc8f9b5ca (diff)
downloadcompcert-856da72d4190b42a012043a745dddc07a36c60c0.tar.gz
compcert-856da72d4190b42a012043a745dddc07a36c60c0.zip
Don't discard argument of `__builtin_va_end`
Instead, evaluate it for the side effects it may contain. Fixes: #474
-rw-r--r--cfrontend/C2C.ml4
1 files changed, 2 insertions, 2 deletions
diff --git a/cfrontend/C2C.ml b/cfrontend/C2C.ml
index a23c3cdc..e709c082 100644
--- a/cfrontend/C2C.ml
+++ b/cfrontend/C2C.ml
@@ -930,8 +930,8 @@ let rec convertExpr env e =
| C.ECall({edesc = C.EVar {name = "__builtin_va_arg"}}, [arg1; arg2]) ->
make_builtin_va_arg env (convertTyp env e.etyp) (convertExpr env arg1)
- | C.ECall({edesc = C.EVar {name = "__builtin_va_end"}}, _) ->
- Ecast (ezero, Tvoid)
+ | C.ECall({edesc = C.EVar {name = "__builtin_va_end"}}, [arg]) ->
+ Ecast (convertExpr env arg, Tvoid)
| C.ECall({edesc = C.EVar {name = "__builtin_va_copy"}}, [arg1; arg2]) ->
let dst = convertExpr env arg1 in