aboutsummaryrefslogtreecommitdiffstats
path: root/cfrontend
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-03-11 09:04:23 +0100
committerBernhard Schommer <bernhardschommer@gmail.com>2015-03-11 09:04:23 +0100
commita6924f1a53c1ab2edeb4df4833cbc341e4f2d256 (patch)
tree0756e3a9caa6250186f1398b528b98f3936ee880 /cfrontend
parent7c154d856a6ac8d1b8db61a6e7825510ae03ea91 (diff)
parente00261d59ed14721c4b0baab6cd5fe12aeaa06c6 (diff)
downloadcompcert-kvx-a6924f1a53c1ab2edeb4df4833cbc341e4f2d256.tar.gz
compcert-kvx-a6924f1a53c1ab2edeb4df4833cbc341e4f2d256.zip
Merge branch 'master' into dwarf
Diffstat (limited to 'cfrontend')
-rw-r--r--cfrontend/C2C.ml4
1 files changed, 3 insertions, 1 deletions
diff --git a/cfrontend/C2C.ml b/cfrontend/C2C.ml
index 0ccf569b..2b9a54a4 100644
--- a/cfrontend/C2C.ml
+++ b/cfrontend/C2C.ml
@@ -365,8 +365,10 @@ a constant)"; Integers.Int.zero in
| _ -> error "ill-formed __builtin_memcpy_aligned (4th argument must be
a constant)"; Integers.Int.one in
(* to check: sz1 > 0, al1 divides sz1, al1 = 1|2|4|8 *)
+ (* Issue #28: must decay array types to pointer types *)
Ebuiltin(EF_memcpy(sz1, al1),
- Tcons(typeof dst, Tcons(typeof src, Tnil)),
+ Tcons(typeconv(typeof dst),
+ Tcons(typeconv(typeof src), Tnil)),
Econs(dst, Econs(src, Enil)), Tvoid)
| _ ->
assert false