efriedma-quic wrote: ActOnCXXExitDeclInitializer does three things:
- Some scope handling which isn't relevant in this context. - Does some special handling for variables, to compute whether the variable's initializer is manifestly constant-evaluated. - Calls PopExpressionEvaluationContext The special handling for variables is specifically relevant for variables... I don't see why we'd need it anywhere else? Except, hmm... I guess we need the same handling if we're instantiating a template, like: ``` struct B { const void* p; consteval B() : p{this} {} }; template<typename T> T x{}; B* y = &x<B>; ``` But I can't think of anything else. Any suggestions for how to refactor? https://github.com/llvm/llvm-project/pull/144970 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits