From ea321b42a2a006c687ef3882cf1261cd54a769ed Mon Sep 17 00:00:00 2001 From: Nikos Gorogiannis Date: Tue, 15 Dec 2020 05:58:06 -0800 Subject: [PATCH] [buck] fix no-inline arguments order when doing a query Summary: D25495343 (https://github.com/facebook/infer/commit/72a59553d2b359386aab45ba7af1a876877faab5) mistakenly removed a rev_append and replaced it with @. Fix that and rename the variable so that it's clearer it needs to be reversed. Reviewed By: skcho Differential Revision: D25558030 fbshipit-source-id: c66f477f2 --- infer/src/base/Config.ml | 4 ++-- infer/src/base/Config.mli | 2 +- infer/src/integration/Buck.ml | 4 +++- infer/src/integration/BuckFlavors.ml | 2 +- infer/src/integration/BuckGenrule.ml | 2 +- infer/src/integration/BuckJavaFlavor.ml | 2 +- infer/src/integration/CaptureCompilationDatabase.ml | 4 ++-- 7 files changed, 11 insertions(+), 9 deletions(-) diff --git a/infer/src/base/Config.ml b/infer/src/base/Config.ml index 78447ad45..96d9d33e0 100644 --- a/infer/src/base/Config.ml +++ b/infer/src/base/Config.ml @@ -684,7 +684,7 @@ and buck_build_args = $(b,--buck-clang)." -and buck_build_args_no_inline = +and buck_build_args_no_inline_rev = CLOpt.mk_string_list ~long:"Xbuck-no-inline" ~in_help:InferCommand.[(Capture, manual_buck)] "Pass values as command-line arguments to invocations of $(i,`buck build`), don't inline any \ @@ -2736,7 +2736,7 @@ and buck_blacklist = !buck_blacklist and buck_build_args = !buck_build_args -and buck_build_args_no_inline = !buck_build_args_no_inline +and buck_build_args_no_inline_rev = !buck_build_args_no_inline_rev and buck_cache_mode = (!buck || !genrule_mode) && not !debug diff --git a/infer/src/base/Config.mli b/infer/src/base/Config.mli index 29b6c72d7..7f2435e4a 100644 --- a/infer/src/base/Config.mli +++ b/infer/src/base/Config.mli @@ -178,7 +178,7 @@ val buck_blacklist : string list val buck_build_args : string list -val buck_build_args_no_inline : string list +val buck_build_args_no_inline_rev : string list val buck_cache_mode : bool diff --git a/infer/src/integration/Buck.ml b/infer/src/integration/Buck.ml index 2f53510a9..ae5c0ee52 100644 --- a/infer/src/integration/Buck.ml +++ b/infer/src/integration/Buck.ml @@ -295,7 +295,9 @@ module Query = struct let bounded_args = store_args_in_file ~identifier:"buck_query_args" (buck_config @ buck_output_options @ [query]) in - let cmd = ["buck"; "query"] @ Config.buck_build_args_no_inline @ bounded_args in + let cmd = + "buck" :: "query" :: List.rev_append Config.buck_build_args_no_inline_rev bounded_args + in wrap_buck_call ~label:"query" cmd |> parse_query_output ?buck_mode end diff --git a/infer/src/integration/BuckFlavors.ml b/infer/src/integration/BuckFlavors.ml index d69fb297e..4e50c4bc6 100644 --- a/infer/src/integration/BuckFlavors.ml +++ b/infer/src/integration/BuckFlavors.ml @@ -115,7 +115,7 @@ let capture build_cmd = let all_args = List.rev_append rev_not_targets targets in let updated_buck_cmd = command - :: List.rev_append Config.buck_build_args_no_inline + :: List.rev_append Config.buck_build_args_no_inline_rev (Buck.store_args_in_file ~identifier:"clang_flavor_build" all_args) in L.debug Capture Quiet "Processed buck command '%a'@\n" (Pp.seq F.pp_print_string) diff --git a/infer/src/integration/BuckGenrule.ml b/infer/src/integration/BuckGenrule.ml index 2503f3f88..b781a3ff9 100644 --- a/infer/src/integration/BuckGenrule.ml +++ b/infer/src/integration/BuckGenrule.ml @@ -170,7 +170,7 @@ let capture buck_mode build_cmd = let updated_buck_cmd = (* make buck tell us where in buck-out are the capture directories for merging *) (prog :: command :: "--build-report" :: build_report_file :: Buck.config buck_mode) - @ List.rev_append Config.buck_build_args_no_inline + @ List.rev_append Config.buck_build_args_no_inline_rev (Buck.store_args_in_file ~identifier:"genrule_build" all_args) in L.(debug Capture Quiet) diff --git a/infer/src/integration/BuckJavaFlavor.ml b/infer/src/integration/BuckJavaFlavor.ml index bf66e286e..656ed2abe 100644 --- a/infer/src/integration/BuckJavaFlavor.ml +++ b/infer/src/integration/BuckJavaFlavor.ml @@ -25,7 +25,7 @@ let capture build_cmd = let updated_buck_cmd = (* make buck tell us where in buck-out are the capture directories for merging *) (prog :: command :: "--build-report" :: build_report_file :: Buck.config JavaFlavor) - @ List.rev_append Config.buck_build_args_no_inline + @ List.rev_append Config.buck_build_args_no_inline_rev (Buck.store_args_in_file ~identifier:"java_flavor_build" all_args) in L.(debug Capture Quiet) diff --git a/infer/src/integration/CaptureCompilationDatabase.ml b/infer/src/integration/CaptureCompilationDatabase.ml index 0cd7b8e90..d5bd99396 100644 --- a/infer/src/integration/CaptureCompilationDatabase.ml +++ b/infer/src/integration/CaptureCompilationDatabase.ml @@ -83,7 +83,7 @@ let get_compilation_database_files_buck db_deps ~prog ~args = | {command= "build" as command; rev_not_targets; targets} -> let targets_args = Buck.store_args_in_file ~identifier:"compdb_build_args" targets in let build_args = - (command :: List.rev_append rev_not_targets (List.rev Config.buck_build_args_no_inline)) + (command :: List.rev_append rev_not_targets (List.rev Config.buck_build_args_no_inline_rev)) @ (* Infer doesn't support C++ modules nor precompiled headers yet (T35656509) *) "--config" :: "*//cxx.pch_enabled=false" :: "--config" :: "*//cxx.modules_default=false" :: "--config" :: "*//cxx.modules=False" :: targets_args @@ -95,7 +95,7 @@ let get_compilation_database_files_buck db_deps ~prog ~args = prog :: "targets" :: List.rev_append (Buck.filter_compatible `Targets rev_not_targets) - (List.rev Config.buck_build_args_no_inline) + (List.rev Config.buck_build_args_no_inline_rev) @ ("--show-output" :: targets_args) in let on_target_lines = function