Hello All,
I observed in http://gcc.gnu.org/ml/gcc/2010-07/msg00248.html that sometimes mark_hook-s are not working (and MELT needs them strongly). Actually, the following test case shows that mark hooks are not emitted when indirectly inside a union member. To be specific, with the following file tmarkh.h /* file tmarkh.h */ #define MYUTAG 1 union GTY ((desc("%0.u_int"))) myutest_un { int GTY((skip)) u_int; struct mytest_st GTY ((tag("MYUTAG"))) u_mytest; }; static GTY(()) union myutest_un *myutestptr; static inline void mymarker(struct mytest_st*s) { s->myflag = 1; } /* eof tmarkh.h */ when running gengtype (the one from the trunk, or the gcc-4.7 one) with gengtype -D -v -r gtype.state -P _g-tmarkh.h tmarkh.h you can observe that the generated _g-tmarkh.h don't contain any call to mymarker. If the static variable (here myutestptr) is declared with the struct mytest_st* type, the marker is emitted. I'm investigating that bug and hope to submit a patch soon. Regards. -- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359 8, rue de la Faiencerie, 92340 Bourg La Reine, France *** opinions {are only mines, sont seulement les miennes} ***