On 06/29/2010 04:16 AM, Tom Tromey wrote:
Ian> In Tom's interesting idea, we would write the mark function by hand for
Ian> each C++ type that we use GTY with.
I think we should be clear that the need to write a mark function for a
new type is a drawback of this approach. Perhaps gengtype could still
write the functions for ordinary types in GCC, just not (templatized)
containers.
Yes, gengtype would emit template specializations instead of its own
mangled function names, and it would just call the same function (e.g.
gt_mark) instead of using mangled names. The C++ front-end would pick
up the correct function.
For templated containers it would be the same, except that you'd have
overloading instead of full specialization, such as template<typename T>
mark(std::vector<typename T> v). gengtype logic can be simplified a
lot, if we accept that some of the error reporting will be deferred to
the compiler.
Paolo