From: Egas Ribeiro Date: Mon, 22 Dec 2025 21:41:00 +0000 (+0000) Subject: c-family: Fix ICE with -MD and -fdeps-format sharing output [PR121864] X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7b0a85ab6633f71e0488299b2b3a8e26b7cf7d78;p=thirdparty%2Fgcc.git c-family: Fix ICE with -MD and -fdeps-format sharing output [PR121864] When -MD, -fdeps-format=p1689r5 and -save-temps are used without explicit output files, they default to the same stream, which is invalid. The error message attempted to print fdeps_file, but this is NULL in this case, causing an ICE. Use out_fname as a fallback when fdeps_file is NULL to avoid the ICE and provide a meaningful error message. Fix suggested by Andrew Pinski. PR c++/121864 gcc/c-family/ChangeLog: * c-opts.cc (c_common_finish): Use out_fname as fallback when fdeps_file is NULL in error message. Signed-off-by: Egas Ribeiro Reviewed-by: Jason Merrill --- diff --git a/gcc/c-family/c-opts.cc b/gcc/c-family/c-opts.cc index 8da51759dfd..4ad5a0278c9 100644 --- a/gcc/c-family/c-opts.cc +++ b/gcc/c-family/c-opts.cc @@ -1490,7 +1490,7 @@ c_common_finish (void) } if (fdeps_stream == deps_stream && fdeps_stream != stdout) fatal_error (input_location, "%<-MF%> and %<-fdeps-file=%> cannot share an output file %s: %m", - fdeps_file); + fdeps_file ? fdeps_file : out_fname); } /* For performance, avoid tearing down cpplib's internal structures