================
@@ -492,8 +492,23 @@ static std::string getModuleContextHash(const ModuleDeps 
&MD,
   auto &FSOpts = const_cast<FileSystemOptions &>(CI.getFileSystemOpts());
   if (CWD && !IgnoreCWD)
     HashBuilder.add(*CWD);
-  else
+  else {
     FSOpts.WorkingDir.clear();
+    auto &CGOpts = const_cast<CodeGenOptions &>(CI.getCodeGenOpts());
----------------
jansvoboda11 wrote:

Please don't use `const_cast` here. This breaks invariants of 
`CowCompilerInvocation` that relies on clients using `getMut*Opts()` which 
create a copy behind the scenes whenever the `CodeGenOptions` instance is 
shared with other compiler invocation instances. I think a better place to do 
this mutation is in `makeCommonInvocationForModuleBuild()` (unless I'm missing 
some nuance here).

https://github.com/llvm/llvm-project/pull/128446
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to