From a5a106c83a0970c92c0027a01b01797cd654c29e Mon Sep 17 00:00:00 2001 From: Jules Villard Date: Thu, 5 Jul 2018 03:55:39 -0700 Subject: [PATCH] [cli] create missing directory Summary: The captured/ directory is not guaranteed to exist when the capture was run without debug mode, but the analysis assumes it will be. So, this crashes infer: ``` infer -- clang -c examples/hello.c infer -g ``` There's no need for `DB.Results_dir.init` to create infer-out and infer-out/specs/ since this is now done in `ResultsDir`. Reviewed By: jeremydubreil Differential Revision: D8732739 fbshipit-source-id: aaac902 --- infer/src/backend/InferAnalyze.ml | 1 + infer/src/base/DB.ml | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/infer/src/backend/InferAnalyze.ml b/infer/src/backend/InferAnalyze.ml index 2fd3f392e..53b084c49 100644 --- a/infer/src/backend/InferAnalyze.ml +++ b/infer/src/backend/InferAnalyze.ml @@ -19,6 +19,7 @@ let clear_caches () = (** Create tasks to analyze an execution environment *) let analyze_source_file : SourceFile.t Tasks.doer = fun source_file -> + DB.Results_dir.init source_file ; let exe_env = Exe_env.mk () in L.(debug Analysis Medium) "@\nProcessing '%a'@." SourceFile.pp source_file ; (* clear cache for each source file to avoid it growing unboundedly *) diff --git a/infer/src/base/DB.ml b/infer/src/base/DB.ml index 743dc4ca4..6037a6c04 100644 --- a/infer/src/base/DB.ml +++ b/infer/src/base/DB.ml @@ -180,8 +180,6 @@ module Results_dir = struct (** initialize the results directory *) let init source = if SourceFile.is_invalid source then L.(die InternalError) "Invalid source file passed" ; - Utils.create_dir Config.results_dir ; - Utils.create_dir specs_dir ; if Config.html || Config.debug_mode || Config.frontend_tests then ( Utils.create_dir (path_to_filename Abs_root [Config.captured_dir_name]) ; Utils.create_dir (path_to_filename (Abs_source_dir source) []) )