From e9ed9f144252290831a4fff927110f8c8a7ed6ca Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Fri, 2 Jun 2023 11:53:05 +0200 Subject: [PATCH] [cpp] If cpp is clang, silence warning for redefined macro --- src/kernel_services/ast_queries/file.ml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/kernel_services/ast_queries/file.ml b/src/kernel_services/ast_queries/file.ml index 213a01aa72e..8021b38c897 100644 --- a/src/kernel_services/ast_queries/file.ml +++ b/src/kernel_services/ast_queries/file.ml @@ -441,6 +441,10 @@ let safe_remove_file (f : Datatype.Filepath.t) = if not (Kernel.is_debug_key_enabled Kernel.dkey_parser) then Extlib.safe_remove (f :> string) +let cpp_name cmd = + let cmd = List.hd (String.split_on_char ' ' cmd) in + Filename.basename cmd + let replace_in_cpp_cmd cmdl supp_args in_file out_file = (* using Filename.quote for filenames which contain space or shell metacharacters *) @@ -516,6 +520,12 @@ let build_cpp_cmd = function else [] in let fc_define_args = ["__FRAMAC__"] in + let clang_no_warn = + if cpp_name cmdl = "clang" then + ["-Wno-builtin-macro-redefined"] + else + [] + in let nostdinc_arg = if Kernel.FramaCStdLib.get() then add_if_gnu "-nostdinc" else [] @@ -537,7 +547,7 @@ let build_cpp_cmd = function in let supp_args = string_of_supp_args - (gnu_implicit_args @ + (gnu_implicit_args @ clang_no_warn @ extra_for_this_file @ (Kernel.CppExtraArgs.get ())) fc_include_args fc_define_args in -- GitLab