shafik accepted this revision.
shafik added a comment.
This revision is now accepted and ready to land.

LGTM



================
Comment at: clang/lib/AST/Interp/Interp.h:1301
   assert(S.Current->getFunction()->hasRVO());
+  if (S.checkingPotentialConstantExpression())
+    return false;
----------------
tbaeder wrote:
> shafik wrote:
> > Why did you add these checks calling `checkingPotentialConstantExpression` 
> > for?
> The RVO pointer needs to be on the stack when calling a function (much like 
> the `this` pointer). In the context of the `Run` call after compiling a 
> function, it cannot exist and so we can't return anything here. This is 
> similar to the pre-existing check in `This()` just above this function.
Ahhh that makes sense. Can you add some comments, not sure where the right 
place is b/c this feels very opaque and I am not sure how I would figure this 
out otherwise.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D140724

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

Reply via email to