diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2014-05-12 08:20:14 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2014-05-12 08:20:14 +0000 |
commit | 951bf7bdb208f500c86e8d45c45247cd25adb4ab (patch) | |
tree | 164a59b4eba4f1ede5ec37bc357b4d7238eb3828 /cparser/Cabshelper.ml | |
parent | 3a9359e3d89f41d8003b1ea4e01254bb38ea534d (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.ml | 7 |
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) |