dexonsmith added a comment.

I'm not sure a deep copy is entirely sound, due to odd ownership rules in 
"remapped buffers" (I forget the subclass that includes those). A few months 
ago I got most of the way to deleting those (lifting the logic up into the 
clang tooling that needed it)... maybe we need to push that work over the line 
before this is safe... or if this is in fact safe, can you explain why?

BTW, I may be responsible for the not-very-descriptive naming of 
`CompilerInvocationBase`... I could imagine new options coming along that get 
added to the wrong place in the future as well. Any thoughts on a good name to 
use instead?



================
Comment at: clang/include/clang/Frontend/CompilerInvocation.h:86
   CompilerInvocationBase(const CompilerInvocationBase &X);
-  CompilerInvocationBase &operator=(const CompilerInvocationBase &) = delete;
+  CompilerInvocationBase &operator=(CompilerInvocationBase X);
   ~CompilerInvocationBase();
----------------
I wonder if it would be better to signify this is a deep copy by naming the 
function, such as by calling it `clone()`. WDYT?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99568/new/

https://reviews.llvm.org/D99568

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to