https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108375
--- Comment #11 from Martin Uecker <muecker at gwdg dot de> --- Yes, for C this is fixed on trunk. This change seems to also fix PR102939. There is only one place in c-common/ left where middle-end function is used, so we could easily separate the C FE understanding of VM-types from the one of the middle-end. I think for C++ it would also be no problem (it even more restrictive). Ada I have no idea. But I suspect that different languages might also have a different idea about this, and it would therefor make sense to decouple this. So the question is: What is the middle-end's idea of a variably modified type? Why does it even have to know? In contrast to types with variable size I think a variably modified type is something which could be a FE only thing. If LTO does not work with lang hooks (what happens? are they just removed?), should we just remove the call to it? (which might require the change in c-/common).