]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
refactor: Simplify handling of --serialize-diagnostics
authorJoel Rosdahl <joel@rosdahl.net>
Tue, 4 Nov 2025 21:14:34 +0000 (22:14 +0100)
committerJoel Rosdahl <joel@rosdahl.net>
Wed, 12 Nov 2025 20:14:01 +0000 (21:14 +0100)
src/ccache/argprocessing.cpp
src/ccache/argsinfo.hpp
src/ccache/ccache.cpp
src/ccache/core/resultretriever.cpp

index 76807a8ed52eb5682fe1a7efbe7ce0d031cf2b8b..c1e16ba1adb4403cacbd529c71a07578c5e2de99 100644 (file)
@@ -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;
   }
index 283ad38a9b13e2238f22a2aaa8ab077e22093dbe..ee733d6124140d4d673d79986ff91c3a5723501b 100644 (file)
@@ -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;
 
index e48b54117a4f6d2bda5052d7027c292d1972af31..1dc48be88f642598032f1aafd9aae657f63d56fb 100644 (file)
@@ -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()) {
index bc1da47c813f751c52e5f0fdca8ebff515f2a678..e27798d53a9706d87d4642bbea2d7f24dacadd1d 100644 (file)
@@ -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