rjmccall added inline comments.

================
Comment at: clang/lib/CodeGen/CodeGenModule.h:1482
+
+  struct KeepLazyEmiitedSymRAII {
+    std::unique_ptr<CodeGenModule> OldBuilder;
----------------
junaire wrote:
> rjmccall wrote:
> > I think a RAII object is an odd way to express this API; there's not really 
> > a natural reason you would scope this.  It would be better to just have a 
> > method on `CodeGenModule` that steals the internal lazy-emission state from 
> > a different instance.
> I don't have a better way to do this in mind, We need to restore the states 
> after resetting the `Builder` right? So I guess RAII should be fine? Can you 
> please provide some hints about how to do this more elegantly? Thx!
I don't know what you mean.  You're not restoring any old state, you're moving 
state into the new CGM.  The whole thing is an imperative operation, it's just 
being done in a destructor for no particular reason.

```
std::unique_ptr<CodeGenModule> newBuilder(new CodeGenModule(...));
Builder->moveLazyEmissionStateInto(newBuilder.get());
Builder = newBuilder;
```


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D126781

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

Reply via email to