diff --git a/clangml-transforms/dune b/clangml-transforms/dune index 1e7db3fbf252c80ba82f4fff62013fe7833883c9..0301488639fbcee1d33183caf6914974cf315801 100644 --- a/clangml-transforms/dune +++ b/clangml-transforms/dune @@ -3,4 +3,4 @@ (public_name clangml-transforms) (wrapped false) (preprocess (staged_pps override)) - (libraries clangml clangml.lift dolog)) + (libraries clangml clangml.lift dolog clangml_visitors)) diff --git a/clangml-transforms/for_memcad.ml b/clangml-transforms/for_memcad.ml index c5d3af08994df4b4d62e43c0106e3e7c9397db79..b75279242fc4188b3b289c1998d0f8129d05b080 100644 --- a/clangml-transforms/for_memcad.ml +++ b/clangml-transforms/for_memcad.ml @@ -87,14 +87,14 @@ let close_node ((stmt, _stmts) as node) = let rec name_anonymous_fields (decl : Clang.Ast.decl list) = match decl with | [] -> [] - | { desc = RecordDecl { keyword; name = ""; fields; bases }; _} as record :: + | { desc = RecordDecl { keyword; name = ""; fields; bases; final }; _} as record :: ({ desc = Field { name; qual_type = { desc = Elaborated { keyword = keyword'; named_type = { desc = Record (Ident ""); _ } as named_type}; _} as qual_type; bitwidth; init }; _} as field) :: tail when keyword = keyword' -> { record with - desc = Clang.Ast.RecordDecl { keyword; name = "anon"; fields; bases }} :: + desc = Clang.Ast.RecordDecl { keyword; name = "anon"; fields; bases; final }} :: { field with desc = Field { name; bitwidth; init; qual_type = { qual_type with desc = Elaborated { keyword; named_type = { named_type with desc = Record (Ident "anon") }}}}} :: diff --git a/visitors/clangml_visitors.ml b/visitors/clangml_visitors.ml index a0d8ece65fcf8552fac7b0b2a704ff8a48870a14..ec4931465792e16a493e9be3c356a3e2f86e76a0 100644 --- a/visitors/clangml_visitors.ml +++ b/visitors/clangml_visitors.ml @@ -5,6 +5,8 @@ module%import Clang__bindings = struct type cxcursor = Clang__.Clang__bindings.cxcursor [@opaque] [@@rewrite] [@@remove] + type cxtype = + Clang__.Clang__bindings.cxtype [@opaque] [@@rewrite] [@@remove] type cxcursorkind = Clang__.Clang__bindings.cxcursorkind [@opaque] [@@rewrite] [@@remove] type clang_ext_declkind = @@ -61,7 +63,8 @@ module%import Ast = struct type concrete_location = _ type source_location = _ - type 'qual_type open_decoration = _ and co + type 'qual_type open_decoration = _ + type ('a, 'qual_type) open_node = _ end] [@@deriving visitors { variety = "iter"; name = "base_iter"; polymorphic = true },