cor3ntin wrote:

@zygoloid I think we ended up concluding that

- The tooling situation will not change (When Sema is not available mutation 
can't happen and we provide a default no-op implementation of the mutation 
function)
- It's easy to check in `SemaProxyImpl` (or wherever it's called from ) that 
define class etc only happen in what P2996 calls a "plainly evaluated constant 
evaluated context" (constexpr initialization + consteval block as of the Poland 
meeting)

I initially was of the same opinion as you, but I think we would have to modify 
most call sites, and it's unclear that it would buy us anything (On the other 
hand, I'm not thrilled about a pointer to Sema being stashed in `ASTContext`, 
just because it  feels weird, but it's not an issue in practice)

PS: Note that it seems to still be unclear how we should handle try evaluation 
(destructors, vlas), when the evaluation fails after side effects are produced



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

Reply via email to