From b3aa6f4a9297e1265e808bbee6cba206f87a849b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bobot?= <francois.bobot@cea.fr> Date: Thu, 1 Oct 2020 12:35:15 +0200 Subject: [PATCH] Fix problem of linking ordering of OCaml modules remove Cil.set_dependencies_of_ast --- Makefile | 2 +- src/kernel_services/ast_data/ast.ml | 4 +++- src/kernel_services/ast_queries/cil.ml | 11 ++--------- src/kernel_services/ast_queries/cil.mli | 9 +-------- src/kernel_services/parsetree/cabshelper.ml | 1 - 5 files changed, 7 insertions(+), 20 deletions(-) diff --git a/Makefile b/Makefile index 2480471e21d..d8f4f803ea1 100644 --- a/Makefile +++ b/Makefile @@ -168,7 +168,7 @@ force-reconfigure: ############################################################################## .PHONY: tests clean-tests -TESTS=builtins callgraph cil constant_propagation float idct impact libc metrics misc occurrence pdg rte rte_manual scope slicing sparecode syntax test value jcdb journal +TESTS=builtins callgraph cil constant_propagation float idct impact libc metrics misc occurrence pdg rte rte_manual scope slicing sparecode syntax test value jcdb journal spec tests: config.sed find tests -name dune | grep -e "oracle.*/\|result.*/" | xargs --no-run-if-empty rm dune exec -- ptests/ptests.exe diff --git a/src/kernel_services/ast_data/ast.ml b/src/kernel_services/ast_data/ast.ml index 1ff587fce07..37093f443f8 100644 --- a/src/kernel_services/ast_data/ast.ml +++ b/src/kernel_services/ast_data/ast.ml @@ -87,7 +87,9 @@ let () = Cil_datatype.Varinfo.Hptset.self ]; add_monotonic_state Cil_datatype.Stmt.Hptset.self; add_monotonic_state Cil_datatype.Varinfo.Hptset.self; - Cil.set_dependencies_of_ast self; + State_dependency_graph.add_dependencies ~from:self + [Cabshelper.Comments.self;Cil.selfFormalsDecl; + Cil.Frama_c_builtins.self;Cil.switch_case_state_self]; Logic_env.init_dependencies self; exception Bad_Initialization of string diff --git a/src/kernel_services/ast_queries/cil.ml b/src/kernel_services/ast_queries/cil.ml index 04582c3557e..71a319595cd 100644 --- a/src/kernel_services/ast_queries/cil.ml +++ b/src/kernel_services/ast_queries/cil.ml @@ -70,11 +70,6 @@ let () = Log.set_current_source (fun () -> fst (CurrentLoc.get ())) let pp_thisloc fmt = Location.pretty fmt (CurrentLoc.get ()) -let set_dependencies_of_ast, dependency_on_ast = - let list_self = ref [] in - (fun ast -> State_dependency_graph.add_dependencies ~from:ast !list_self), - (fun state -> list_self := state :: !list_self) - let voidType = Cil_const.voidType let intType = TInt(IInt,[]) let uintType = TInt(IUInt,[]) @@ -698,7 +693,6 @@ module FormalsDecl = end) let selfFormalsDecl = FormalsDecl.self -let () = dependency_on_ast selfFormalsDecl let makeFormalsVarDecl ?ghost (n,t,a) = let vi = makeVarinfo ?ghost ~temp:false false true n t in @@ -4871,8 +4865,6 @@ module Frama_c_builtins = let size = 3 end) -let () = dependency_on_ast Frama_c_builtins.self - let is_builtin v = hasAttribute "FC_BUILTIN" v.vattr let is_unused_builtin v = is_builtin v && not v.vreferenced @@ -7165,7 +7157,8 @@ module Switch_cases = let dependencies = [] let size = 49 end) -let () = dependency_on_ast Switch_cases.self + +let switch_case_state_self = Switch_cases.self let separate_switch_succs = Switch_cases.memo separate_switch_succs class dropAttributes ?select () = object diff --git a/src/kernel_services/ast_queries/cil.mli b/src/kernel_services/ast_queries/cil.mli index df110d9e57e..52b030aafbe 100644 --- a/src/kernel_services/ast_queries/cil.mli +++ b/src/kernel_services/ast_queries/cil.mli @@ -2316,14 +2316,7 @@ val separate_if_succs: stmt -> stmt * stmt (**/**) -val dependency_on_ast: State.t -> unit -(** indicates that the given state depends on the AST. *) - -val set_dependencies_of_ast : State.t -> unit -(** Makes all states that have been marked as depending on the AST by - {!dependency_on_ast} depend on the given state. Should only be used - once when creating the AST state. -*) +val switch_case_state_self: State.t val pp_typ_ref: (Format.formatter -> typ -> unit) ref val pp_global_ref: (Format.formatter -> global -> unit) ref diff --git a/src/kernel_services/parsetree/cabshelper.ml b/src/kernel_services/parsetree/cabshelper.ml index 98bfca99fad..06e7abf6f1f 100644 --- a/src/kernel_services/parsetree/cabshelper.ml +++ b/src/kernel_services/parsetree/cabshelper.ml @@ -71,7 +71,6 @@ module Comments = let default () = MyTable.empty end) let self = MyState.self - let () = Cil.dependency_on_ast self (* What matters is the beginning of the comment. *) let add (first,last) comment = -- GitLab