https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103040
--- Comment #13 from hubicka at kam dot mff.cuni.cz --- > See above comments from Iain, even if that pre-initialization is removed it is > still miscompiled. And, the testcase fails not because of the padding bits > not > being zero, but because the address of self stored into one of the fields > isn't > there or modref thinks it can't be changed or set to that. But for > corresponding C++ it handles it ok. Perhaps TREE_ADDRESSABLE on the type which is being used to test whether return slot pointer may escape.