Hi Richard, on 2022/12/7 17:16, Richard Sandiford wrote: > "Kewen.Lin" <li...@linux.ibm.com> writes: >> Hi, >> >> In the recent discussion on how to make some built-in type only valid for >> some target features efficiently[1], Andrew mentioned this patch which he >> made previously (Thanks!). I confirmed it can help rs6000 related issue, >> and noticed PR99657 is still opened, so I think we still want this to >> be reviewed. > > But does it work for things like: > > void f(foo_t *x, foo_t *y) { *x = *y; } > > where no variables are being created with foo_t type? >
I think it can work for this case as it touches build_indirect_ref. > That's not to say we shouldn't have the patch. I'm just not sure > it can be the complete solution. I'm not sure about that either, maybe Andrew have more insights. But as you pointed out in [1], I doubted trying to find all invalid uses of a built-in type is worthwhile, it seems catching those usual cases is enough and practical. So if this verify_type_context framework can cover the most of uses, maybe it's a good direction to go and extend. [1] https://gcc.gnu.org/pipermail/gcc/2022-December/240218.html BR, Kewen