https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114574
--- Comment #10 from uecker at gcc dot gnu.org --- Yes, this makes sense. I will try this. (I tried this approach already but I did not get this work, probably because something I missed). Otherwise one could try setting TYPE_CANONICAL only based on the tag, which would then never need to change, but this would lose a lot of information. What consequences does it have to have the wrong TYPE_CANONICAL on pointers? I am asking because the current behavior also seems wrong because now TYPE_CANONICAL for complete and incomplete types may turn out to be different. Or am I missing something?