diff --git a/src/kernel_services/ast_queries/file.ml b/src/kernel_services/ast_queries/file.ml index 213a01aa72e0f96f949d035b2793bb2151a65b44..8021b38c897f4a58823353ebb5f6d325c89602cb 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