From: Joel Rosdahl Date: Tue, 4 Nov 2025 21:14:34 +0000 (+0100) Subject: refactor: Simplify handling of --serialize-diagnostics X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=40add4093f9fa7b5fc18f76284c7860662c7ab22;p=thirdparty%2Fccache.git refactor: Simplify handling of --serialize-diagnostics --- diff --git a/src/ccache/argprocessing.cpp b/src/ccache/argprocessing.cpp index 76807a8e..c1e16ba1 100644 --- a/src/ccache/argprocessing.cpp +++ b/src/ccache/argprocessing.cpp @@ -1089,8 +1089,9 @@ process_option_arg(const Context& ctx, LOG("Missing argument to {}", args[i]); return Statistic::bad_compiler_arguments; } - args_info.generating_diagnostics = true; - args_info.output_dia = core::make_relative_path(ctx, args[i + 1]); + state.add_compiler_only_arg(args[i]); + state.add_compiler_only_arg_no_hash(args[i + 1]); + args_info.output_dia = args[i + 1]; i++; return Statistic::none; } diff --git a/src/ccache/argsinfo.hpp b/src/ccache/argsinfo.hpp index 283ad38a..ee733d61 100644 --- a/src/ccache/argsinfo.hpp +++ b/src/ccache/argsinfo.hpp @@ -106,10 +106,6 @@ struct ArgsInfo // -fcallgraph-info bool generating_callgraphinfo = false; - // Is the compiler being asked to generate diagnostics - // (--serialize-diagnostics)? - bool generating_diagnostics = false; - // Are we generating a pch file (msvc -Yc)? bool generating_pch = false; diff --git a/src/ccache/ccache.cpp b/src/ccache/ccache.cpp index e48b5411..1dc48be8 100644 --- a/src/ccache/ccache.cpp +++ b/src/ccache/ccache.cpp @@ -1029,7 +1029,7 @@ write_result(Context& ctx, LOG("IPA clones file {} missing", ctx.args_info.output_ipa); return false; } - if (ctx.args_info.generating_diagnostics + if (!ctx.args_info.output_dia.empty() && !serializer.add_file(core::result::FileType::diagnostic, ctx.args_info.output_dia)) { LOG("Diagnostics file {} missing", ctx.args_info.output_dia); @@ -1202,11 +1202,6 @@ to_cache(Context& ctx, util::remove_nfs_safe(ctx.args_info.output_obj, util::LogFailure::no); } - if (ctx.args_info.generating_diagnostics) { - args.push_back("--serialize-diagnostics"); - args.push_back(ctx.args_info.output_dia); - } - if (ctx.args_info.seen_double_dash) { args.push_back("--"); } @@ -2865,7 +2860,7 @@ do_cache_compilation(Context& ctx) if (ctx.args_info.generating_callgraphinfo) { LOG("Callgraph info file: {}", ctx.args_info.output_ci); } - if (ctx.args_info.generating_diagnostics) { + if (!ctx.args_info.output_dia.empty()) { LOG("Diagnostics file: {}", ctx.args_info.output_dia); } if (!ctx.args_info.output_dwo.empty()) { diff --git a/src/ccache/core/resultretriever.cpp b/src/ccache/core/resultretriever.cpp index bc1da47c..e27798d5 100644 --- a/src/ccache/core/resultretriever.cpp +++ b/src/ccache/core/resultretriever.cpp @@ -175,10 +175,7 @@ ResultRetriever::get_dest_path(FileType file_type) const break; case FileType::diagnostic: - if (m_ctx.args_info.generating_diagnostics) { - return m_ctx.args_info.output_dia; - } - break; + return m_ctx.args_info.output_dia; case FileType::dwarf_object: if (m_ctx.args_info.seen_split_dwarf