katzdm wrote:

> I would suggest that the "rule" be: We allow template instantiation during 
> any evaluation which is mandated.

That sounds sane to me - thought due to the oddity of this case, I'd prefer to 
defer the change to narrowing conversions to a separate PR. Are you okay with 
that?

> I had seen compiler crashes due to running an inner constant evaluation (from 
> template instantiation) within another constant evaluation, which I guess the 
> code didn't expect.

Sorry! I forgot to mention, there _were_ some crashes that I could probably 
stand to do more careful analysis on. I think I know the ones that you mean; 
let me dig on those - especially since you mention re-entrance into the 
constant evaluator, which is an important use-case for reflection (but probably 
even with this PR).

> immediate instantiation

We spoke offline, and determined that the crux test-case that this related to 
was `SemaCXX/cxx2b-consteval-propagate.cpp`. I actually didn't dive much into 
this one, so let me do that now and find an explanation for the errors.

Thanks!

https://github.com/llvm/llvm-project/pull/205557
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to