summaryrefslogtreecommitdiff
path: root/cparser/Cabshelper.ml
diff options
context:
space:
mode:
authorGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2014-05-12 08:20:14 +0000
committerGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2014-05-12 08:20:14 +0000
commit951bf7bdb208f500c86e8d45c45247cd25adb4ab (patch)
tree164a59b4eba4f1ede5ec37bc357b4d7238eb3828 /cparser/Cabshelper.ml
parent3a9359e3d89f41d8003b1ea4e01254bb38ea534d (diff)
Incorrect conversion of K&R functions. Example of problem:
void * foo(s, u) ... git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2491 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'cparser/Cabshelper.ml')
-rw-r--r--cparser/Cabshelper.ml7
1 files changed, 7 insertions, 0 deletions
diff --git a/cparser/Cabshelper.ml b/cparser/Cabshelper.ml
index 7f411ad..35aa0c4 100644
--- a/cparser/Cabshelper.ml
+++ b/cparser/Cabshelper.ml
@@ -78,3 +78,10 @@ let string_of_cabsloc l =
let format_cabsloc pp l =
Format.fprintf pp "%s:%d" l.filename l.lineno
+
+let rec append_decltype dt1 dt2 =
+ match dt1 with
+ | JUSTBASE -> dt2
+ | ARRAY(dt, attr, sz) -> ARRAY(append_decltype dt dt2, attr, sz)
+ | PTR(attr, dt) -> PTR(attr, append_decltype dt dt2)
+ | PROTO(dt, params) -> PROTO(append_decltype dt dt2, params)